-
TECHNISCHES FELD
-
Ausführungsformen der Erfindung betreffen allgemein Speicher-Untersysteme und beziehen sich insbesondere auf eine unabhängige Ebenenarchitektur in einer Speichervorrichtung eines Speicher-Untersystems.
-
HINTERGRUND
-
Ein Speicher-Untersystem kann eine oder mehrere Speichervorrichtungen enthalten, um Daten zu speichern. Bei den Speichervorrichtungen kann es sich beispielsweise um nichtflüchtige Speichervorrichtungen und flüchtige Speichervorrichtungen handeln. Allgemein kann ein Host-System ein Speicher-Untersystem verwenden, um Daten in den Speichervorrichtungen zu speichern und um Daten aus den Speichervorrichtungen abzurufen.
-
Figurenliste
-
Die vorliegende Erfindung wird anhand der nachstehenden detaillierten Beschreibung und der beigefügten Zeichnungen verschiedener Ausführungsformen der Erfindung besser verständlich.
- 1 zeigt ein Beispiel eines Computersystems, das ein Speicher-Untersystem gemäß einigen Ausführungsformen der vorliegenden Erfindung enthält.
- 2 ist ein Blockdiagramm einer Speichervorrichtung in Kommunikation mit einem Speicher-Untersystem-Controller eines Speicher-Untersystems gemäß einer Ausführungsform.
- 3 ist ein Blockdiagramm, das eine Mehrebenen-Speichervorrichtung zeigt, die für gleichzeitige Seiten-Cache-Ressourcen-Zugriffe gemäß einigen Ausführungsformen der vorliegenden Erfindung ausgestaltet ist.
- 4 ist ein Blockdiagramm, das eine unabhängige Ebenenarchitektur in einer Speichervorrichtung gemäß einigen Ausführungsformen der vorliegenden Erfindung darstellt.
- 5 ist eine Darstellung, die die gleichzeitige Ausführung von Speicherzugriffsoperationen in einer Speichervorrichtung mit einer unabhängigen Ebenenarchitektur gemäß einigen Ausführungsformen der vorliegenden Erfindung veranschaulicht.
- 6 ist ein Flussdiagramm eines beispielhaften Verfahrens von Energiesparoperationen in einer Speichervorrichtung mit unabhängiger Ebenenarchitektur gemäß einigen Ausführungsformen der vorliegenden Erfindung.
- 7 ist ein Blockdiagramm eines beispielhaften Computersystems, in dem Ausführungsformen der vorliegenden Erfindung ausgeführt werden können.
-
DETAILLIERTE BESCHREIBUNG
-
Aspekte der vorliegenden Offenbarung beziehen sich auf eine unabhängige Ebenenarchitektur in einer Speichervorrichtung eines Speicher-Untersystems. Ein Speicher-Untersystem kann eine Speichervorrichtung, ein Speichermodul oder ein Hybrid aus einer Speichervorrichtung und einem Speichermodul sein. Beispiele für Speichervorrichtungen und Speichermodule werden nachfolgend in Verbindung mit 1 beschrieben. Allgemein kann ein Host-System ein Speicher-Untersystem verwenden, das eine oder mehrere Komponenten enthält, wie zum Beispiel Speichervorrichtungen, um Daten zu speichern. Das Host-System kann Daten zur Verfügung stellen, die in dem Speicher-Untersystem gespeichert werden sollen, und kann Daten anfordern, die aus dem Speicher-Untersystem abgerufen werden sollen.
-
Ein Speicher-Untersystem kann nichtflüchtige Speichervorrichtungen mit hoher Dichte enthalten, bei denen die Daten erhalten bleiben sollen, wenn die Speichervorrichtung nicht mit Strom versorgt wird. Ein Beispiel für nichtflüchtige Speicherbausteine ist ein Negativ-Und-Speichervorrichtung (NAND-Speichervorrichtung). Andere Beispiele für nichtflüchtige Speichervorrichtungen werden nachfolgend in Verbindung mit 1 beschrieben. Eine nichtflüchtige Speichervorrichtung ist ein Paket aus einem oder mehreren Dies (Halbleiter-Elementen bzw. Halbleiter-Chips). Jedes Die kann eine oder mehrere Ebenen haben. Bei einigen Typen von nichtflüchtigen Speichervorrichtungen (z.B. NAND-Vorrichtungen) umfasst jede Ebene einen Satz von physischen Blöcken. Jeder Block enthält einen Satz von Seiten. Jede Seite enthält einen Satz von Speicherzellen („Zellen“). Eine Zelle ist eine elektronische Schaltung, die Informationen speichert. Je nach Zellentyp kann eine Zelle ein oder mehrere Bits an binären Informationen speichern und hat verschiedene logische Zustände, die mit der Anzahl an gespeicherten Bits korrelieren. Die logischen Zustände können durch binäre Werte, wie zum Beispiel „0“ und „1“, oder Kombinationen solcher Werte dargestellt werden.
-
Eine Speichervorrichtung kann Bits aufweisen, die in einem zweidimensionalen oder dreidimensionalen Gitter angeordnet sind. Die Speicherzellen sind auf einen Silizium-Wafer in einem Array aus Spalten (nachfolgend auch als Bitleitungen bezeichnet) und Zeilen (nachfolgend auch als Wortleitungen bezeichnet) geätzt. Eine Wortleitung kann sich auf eine oder mehrere Reihen von Speicherzellen einer Speichervorrichtung beziehen, die mit einer oder mehreren Bitleitungen verwendet werden, um die Adresse von jeder der Speicherzellen zu erzeugen. Der Schnittpunkt zwischen einer Bitleitung und einer Wortleitung bildet die Adresse der Speicherzelle. Ein Block bezieht sich im Folgenden auf eine Einheit der Speichervorrichtung, die zum Speichern von Daten verwendet wird, und eine Gruppe von Speicherzellen, eine Wortleitungsgruppe, eine Wortleitung oder einzelne Speicherzellen umfassen kann. Ein oder mehrere Blöcke können zusammen gruppiert werden, um eine Ebene der Speichervorrichtung zu bilden, um zu ermöglichen, dass auf jeder Ebene gleichzeitige Operationen stattfinden können. Die Speichervorrichtung kann Schaltungen enthalten, die das Durchführen gleichzeitiger Speicherseitenzugriffe auf zwei oder mehr Speicherebenen ermöglichen. Zum Beispiel kann die Speichervorrichtung mehrere Zugriffsleitungs-Treiberschaltungen und Stromversorgungsschaltungen enthalten, die von den Ebenen der Speichervorrichtung gemeinsam genutzt werden können, um den gleichzeitigen Zugriff auf Seiten von zwei oder mehr Speicherebenen, einschließlich unterschiedlicher Typen von Seiten, zu erleichtern. Zur Vereinfachung der Beschreibung können diese Schaltungen allgemein als unabhängige Ebenen-Treiberschaltungen bezeichnet werden.
-
In bestimmten Mehrebenen-Speichervorrichtungen ist ein bestimmtes Speicher-Die (Speicher-Halbleiter-Element) darauf beschränkt, zu einem Zeitpunkt jeweils nur eine einzige Programmieroperation auszuführen. Es können verschiedene Typen von Programmieroperationen durchgeführt werden (z.B. Einzelseiten-Programmieroperationen, Mehrseiten-Programmieroperationen), aber unabhängig vom Typ kann zu einem Zeitpunkt jeweils nur eine Operation durchgeführt werden. Bei einer Einzelseiten-Programmieroperation wird die zu programmierende Datenseite empfangen (z.B. von einem Speicher-Untersystem-Controller oder einem Host-System), und die Programmieroperation wird auf einer einzigen Ebene der Mehrebenen-Speichervorrichtung durchgeführt. Während einer Einzelseiten-Programmieroperation sind die übrigen Ebenen der Speichervorrichtungen für den Speicher-Untersystem-Controller und für das Host-System nicht zugreifbar (d.h., alle Ebenen erscheinen „besetzt“, obwohl tatsächlich nur eine einzige Ebene genutzt wird). Bei einer Mehrseiten-Programmieroperation werden mehrere Datenseiten empfangen, und sobald alle der mehreren Seiten empfangen sind, wird die Programmieroperation auf mehreren Ebenen der Mehrebenen-Speichervorrichtung durchgeführt. Daher können sowohl bei einer Einzelseiten-Programmieroperation als auch bei einer Mehrebenen-Programmieroperation keine anderen Speicherzugriffsoperationen (z.B. Programmier-, Lese- oder Löschoperationen) gleichzeitig auf der Speichervorrichtung durchgeführt werden.
-
Bei bestimmten Speichervorrichtungen wird versucht, die Leistung zu verbessern, indem ermöglicht wird, dass gleichzeitige Speicherzugriffsoperationen asynchron durchgeführt werden. Dadurch kann die Dienstqualität (Quality of Service) bei gemischten Arbeitslasten (z.B. eine Mischung aus Programmier- und Leseoperationen) verbessert, der Schreibdurchsatz der Speichervorrichtung erhöht, die Schreibgranularität erhöht (z.B. kleinere Blockgröße) und der Pufferbedarf verringert werden (d.h., da zur Durchführung einer Programmieroperation eine geringere Datenmenge verwendet wird). Um gleichzeitige Speicherzugriffsoperationen zu ermöglichen, verwenden bestimmte Speichervorrichtungen mehrere Speicher-Dies in einem Speicher-Untersystem, so dass separate Speicherzugriffsoperationen asynchron auf jedem Speicher-Die durchgeführt werden können. Durch einen solcher Ansatz wird die Fläche der Speichervorrichtung vergrößert (und damit erhöhen sich die Kosten), ein höherer Stromverbrauch für die vielen erforderlichen Schaltungselemente bewirkt, und außerdem ergeben sich Beschränkungen hinsichtlich des Gehäuses. Bei anderen Speichervorrichtungen wird versucht, separate Speichervorrichtungen auf einem einzigen Die zu implementieren, aber auch dieser Ansatz hat den Nachteil einer erhöhten Leistungsaufnahme.
-
Durch Aspekte der vorliegenden Erfindung werden die obigen und andere Mängel behoben, indem in einer Speichervorrichtung eines Speicher-Untersystems eine unabhängigen Ebenen-Architektur zur Verfügung gestellt wird. In einer Ausführungsform ist die Speichervorrichtung eine Mehrebenen-Speichervorrichtung mit mehreren Speicherebenen. In einer Ausführungsform sind die mehreren Speicherebenen logisch und physikalisch in zwei oder mehr unabhängige Ebenengruppen unterteilt, wobei jede unabhängige Ebenengruppe einen separaten Satz von einer oder mehreren Speicherebenen enthält. In einer Ausführungsform verfügt jede unabhängige Ebenengruppe über eine entsprechende analoge Treiberschaltung (oder einen Satz von analogen Treiberschaltungen), die dazu dient, den Speicherebenen in den entsprechenden unabhängigen Ebenengruppen Spannungssignale zuzuführen. In einer Ausführungsform teilen sich die zwei oder mehr unabhängigen Ebenengruppen auch eine gemeinsame analoge Schaltung (oder einen Satz gemeinsamer analoger Schaltungen), um den Stromverbrauch und den Flächenbedarf in der Speichervorrichtung zu verringern. In einer Ausführungsform hat jede der unabhängigen Ebenengruppen einen entsprechenden Medien-Controller. Jeder Controller ist ausgestaltet, um Speicherzugriffsoperationen auf den Speicherebenen in der entsprechenden unabhängigen Ebenengruppe auszuführen (z.B. die entsprechende jeweilige analoge Treiberschaltung zu veranlassen, ein von der gemeinsamen analogen Schaltung empfangenes Spannungssignal an eine bestimmte Speicherebene oder an bestimmte Speicherebenen der entsprechenden unabhängigen Ebenengruppe anzulegen). In einer Ausführungsform wird der mit einer unabhängigen Ebenengruppe in Beziehung stehende Medien-Controller als „Haupt“-Controller bezeichnet, während die mit den anderen unabhängigen Ebenengruppen in Beziehung stehenden Medien-Controller als „Sekundär“-Controller bezeichnet werden. Unter bestimmten Umständen kann (können) der (die) Sekundär-Controller aus Gründen des Stromverbrauchs deaktiviert werden, und der Haupt-Controller kann Operationen auf den Speicherebenen mehrerer unabhängiger Ebenengruppen durchführen. Bei einer mobilen Vorrichtung, bei der Energieeinsparungen wichtiger sind, und, wenn sequenzielle Schreibvorgänge durchgeführt werden, können sich die Vorteile eines gleichzeitigen Zugriffs auf unabhängige Ebenengruppen möglicherweise nicht lohnen, so dass die Sekundär-Controller deaktiviert werden können und die Speichervorrichtung in einem Legacy-Modus arbeiten kann. Wenn jedoch die Sekundär-Controller aktiviert sind, kann die Speichervorrichtung mit der hier beschriebenen unabhängigen Ebenenarchitektur asynchrone Speicherzugriffsoperationen auf den Speicherebenen jeder unabhängigen Ebenengruppe gleichzeitig (z.B. zumindest teilweise zeitlich überlappend) durchführen.
-
Zu den Vorteilen dieses Ansatzes gehört, aber nicht hierauf beschränkt, eine verbesserte Performance in dem Speicher-Untersystem. Die unabhängige Ebenenarchitektur führt zu einer besseren Dienstqualität bei gemischten Schreib- und Lese-Arbeitslasten, führt zu einer Verbesserung des Schreibdurchsatzes, indem ermöglicht wird, dass gleichzeitige Schreibvorgänge auf separaten Ebenengruppen durchgeführt werden können, ermöglicht eine erhöhte SchreibGranularität (d.h. durch Verwendung einer kleineren Blockgröße) und verringert die Puffer-Anforderungen für den Speicher-Untersystem-Controller, da während einer Schreiboperation eine geringere Datenmenge gehalten werden muss. Die Möglichkeit, die Sekundär-Controller in der Speichervorrichtung zu deaktivieren, führt zu einer Verringerung des Stromverbrauchs für Legacy-Operationen, wenn nur ein einziger Medien-Controller aktiviert ist. Darüber hinaus werden durch die unabhängige Ebenen-Architektur Störungen reduziert, die durch gleichzeitige laute und empfindliche Operationen verursacht werden, indem eine angemessene Trennung der Stromversorgung bewirkt wird.
-
1 zeigt ein beispielhaftes Computersystem 100, das ein Speicher-Untersystem 110 gemäß einigen Ausführungsformen der vorliegenden Erfindung enthält. Das Speicher-Untersystem 110 kann Medien enthalten, wie zum Beispiel eine oder mehrere flüchtige Speichervorrichtungen (z.B. Speichervorrichtung 140), eine oder mehrere nichtflüchtige Speichervorrichtungen (z.B. Speichervorrichtung 130) oder eine Kombination davon.
-
Ein Speicher-Untersystem 110 kann eine Speichervorrichtung, ein Speichermodul oder eine Mischung aus einer Speichervorrichtung und einem Speichermodul sein. Beispiele für eine Speichervorrichtung sind ein Solid-State-Laufwerk (SSD), ein Flash-Laufwerk, ein USB-Flash-Laufwerk (Universal Serial Bus Flash-Laufwerk), ein eMMC-Laufwerk (Embedded Multi-Media Controller Laufwerk), ein UFS-Laufwerk (Universal Flash Storage Laufwerk), ein SD-Laufwerk (Secure Digital Laufwerk) und ein Festplattenlaufwerk (HDD). Beispiele für Speichermodule sind ein Dual In-Line Speicher-Modul (DIMM), ein Small Outline DIMM (SO-DIMM) und verschiedene Typen von nichtflüchtigen Dual In-Line Speicher-Modulen (NVDIMM).
-
Das Computersystem 100 kann eine Computervorrichtung sein, wie zum Beispiel ein Desktop-Computer, ein Laptop-Computer, ein Netzwerk-Server, eine mobile Vorrichtung, ein Fahrzeug (z.B. ein Flugzeug, eine Drohne, ein Zug, ein Auto oder ein anderes Transportmittel), eine Internet der Dinge fähige Vorrichtung (loT-fähige Vorrichtung), ein eingebetteter Computer (z.B. ein solcher, wie er in einem Fahrzeug, in einer Industrieanlage oder in einer vernetzten kommerziellen Vorrichtung enthalten ist) oder eine solche Computervorrichtung, die einen Speicher und eine Verarbeitungsvorrichtung enthält.
-
Das Computersystem 100 kann ein Host-System 120 umfassen, das mit einem oder mehreren Speicher-Untersystemen 110 gekoppelt ist. In einigen Ausführungsformen ist das Host-System 120 mit verschiedenen Typen von Speicher-Untersystemen 110 gekoppelt. 1 zeigt ein Beispiel für ein Host-System 120, das mit einem Speicher-Untersystem 110 gekoppelt ist. Wie hier verwendet, bezieht sich „gekoppelt an“ oder „gekoppelt mit“ allgemein auf eine Verbindung zwischen Komponenten, die eine indirekte kommunikative Verbindung oder eine direkte kommunikative Verbindung (z.B. ohne zwischengeschaltete Komponenten) sein kann, ob verdrahtet oder drahtlos, einschließlich Verbindungen, wie z.B. elektrische, optische, magnetische usw. Verbindungen.
-
Das Host-System 120 kann einen Prozessor-Chipsatz und einen Software-Stapel enthalten, der von dem Prozessor-Chipsatz ausgeführt wird. Der Prozessor-Chipsatz kann einen oder mehrere Kerne, einen oder mehrere Caches, einen Speicher-Controller (z.B. NVDIMM-Controller) und einen Speicherprotokoll-Controller (z.B. PCle-Controller, SATA-Controller) enthalten. Das Host-System 120 verwendet das Speicher-Untersystem 110, um beispielsweise Daten in das Speicher-Untersystem 110 zu schreiben und um Daten aus dem Speicher-Untersystem 110 zu lesen.
-
Das Host-System 120 kann über eine physische Host-Schnittstelle mit dem Speicher-Untersystem 110 gekoppelt sein. Beispiele für eine physische Host-Schnittstelle sind unter anderem eine SATA-Schnittstelle (Serial Advanced Technology Attachment Schnittstelle), eine PCle-Schnittstelle (Peripheral Component Interconnect Express Schnittstelle), eine USB-Schnittstelle (Universal Serial Bus Schnittstelle), ein Fibre Channel, ein SAS (Serial Attached SCSI), ein DDR-Speicherbus (Double Data Rate Speicherbus), ein SCSI (Small Computer System Interface), eine DIMM-Schnittstelle (Dual In-Line Memory Module Schnittstelle) (z.B. eine DIMM-Sockelschnittstelle, die Double Data Rate (DDR) unterstützt), usw. Die physische Host-Schnittstelle kann zur Datenübertragung zwischen dem Host-System 120 und dem Speicher-Untersystem 110 verwendet werden. Das Host-System 120 kann ferner eine NVM Express Schnittstelle (NVMe-Schnittstelle), eine Open NAND Flash Interface Schnittstelle (ONFI-Schnittstelle) oder eine andere Schnittstelle für den Zugriff auf Komponenten (z.B. Speichervorrichtungen 130) verwenden, wenn das Speicher-Untersystem 110 über die physische Host-Schnittstelle (z.B. PCIe-Bus) mit dem Host-System 120 gekoppelt ist. Die physische Host-Schnittstelle kann eine Schnittstelle für die Weiterleitung von Steuersignalen, Adressensignalen, Datensignalen und anderen Signalen zwischen dem Speicher-Untersystem 110 und dem Host-System 120 bereitstellen. In 1 ist ein Speicher-Untersystem 110 als Beispiel dargestellt. Allgemein kann das Host-System 120 auf mehrere Speicher-Untersysteme über eine gemeinsame Kommunikationsverbindung, mehrere separate Kommunikationsverbindungen und/oder eine Kombination von Kommunikationsverbindungen zugreifen.
-
Die Speichervorrichtungen 130, 140 können eine beliebige Kombination der verschiedenen Typen von nichtflüchtigen Speichervorrichtungen und/oder flüchtigen Speichervorrichtungen umfassen. Bei den flüchtigen Speichervorrichtungen (z.B. Speichervorrichtung 140) kann es sich um Direktzugriffsspeicher (RAM), wie zum Beispiel dynamische Direktzugriffsspeicher (DRAM) und synchrone dynamische Direktzugriffsspeicher (SDRAM), handeln, aber nicht hierauf beschränkt.
-
Einige Beispiele für nichtflüchtige Speichervorrichtungen (z.B. Speichervorrichtung 130) umfassen Flash-Speicher vom Negativ-Und-Typ (NAND-Typ) und Write-in-Place-Speicher, wie z.B. eine dreidimensionale Kreuzpunkt-Speichervorrichtung („3D-Kreuzpunkt“-Speichervorrichtung), die ein Kreuzpunkt-Array aus nichtflüchtigen Speicherzellen ist. Ein Kreuzpunkt-Array aus nichtflüchtigen Speicherzellen kann eine Bitspeicherung auf Basis einer Änderung des Bahn-Widerstands in Verbindung mit einem stapelbaren Kreuzgitter-Datenzugriffsarray durchführen. Darüber hinaus kann ein nichtflüchtiger Kreuzpunkt-Speicher, im Gegensatz zu vielen Flash-Speichern, eine Write-in-Place-Operation durchführen, bei der eine nichtflüchtige Speicherzelle programmiert werden kann, ohne dass die nichtflüchtige Speicherzelle zuvor gelöscht wurde. Flash-Speicher vom NAND-Typ umfassen beispielsweise zweidimensionalen NAND (2D NAND) und dreidimensionalen NAND (3D NAND).
-
Jede der Speichervorrichtungen 130 kann ein oder mehrere Arrays aus Speicherzellen enthalten. Ein Typ von Speicherzellen, wie zum Beispiel Single-Level-Zellen (SLCs), kann ein Bit pro Zelle speichern. Andere Typen von Speicherzellen, wie zum Beispiel Multi-Level-Zellen (MLCs), Triple-Level-Zellen (TLCs), Quad-Level-Zellen (QLCs) und Penta-Level-Zellen (PLCs), können mehrere Bits pro Zelle speichern. In einigen Ausführungsformen kann jede der Speichervorrichtungen 130 ein oder mehrere Arrays von Speicherzellen enthalten, wie zum Beispiel SLCs, MLCs, TLCs, QLCs oder eine beliebige Kombination davon. In einigen Ausführungsformen kann eine bestimmte Speichervorrichtung einen SLC-Bereich und einen MLC-Bereich, einen TLC-Bereich, einen QLC-Bereich oder einen PLC-Bereich von Speicherzellen enthalten. Die Speicherzellen der Speichervorrichtungen 130 können als Seiten gruppiert werden, die sich auf eine logische Einheit der zum Speichern von Daten verwendeten Speichervorrichtung beziehen können. Bei einigen Speichertypen (z.B. NAND) können Seiten gruppiert werden, um Blöcke zu bilden.
-
Obwohl nichtflüchtige Speicherkomponenten, wie zum Beispiel 3D-Kreuzpunkt-Arrays aus nichtflüchtiger Speicherzellen und Flash-Speicher vom NAND-Typ (z.B. 2D NAND, 3D NAND), beschrieben werden, kann die Speichervorrichtung 130 auf jedem anderen Typ von nichtflüchtigen Speichern basieren, wie zum Beispiel Festwertspeicher (ROM), Phasenänderungsspeicher (PCM), selbstselektierende Speicher, andere Chalcogenid-basierte Speicher, ferroelektrische Transistor-Direktzugriffsspeicher (FeTRAM), ferroelektrische Direktzugriffsspeicher (FeRAM), Magneto-Direktzugriffsspeicher (MRAM), Spin Transfer Torque RAM (STT-MRAM), Conductive Bridging RAM (CBRAM), Resistive Direktzugriffsspeicher (RRAM), Oxid-basierte RRAM (OxRAM), Negativ-Oder-Flash-Speicher (NOR-Flash-Speicher) und elektrisch löschbare programmierbare Festwertspeicher (EEPROM).
-
Ein Speicher-Untersystem-Controller 115 (oder der Einfachheit halber: Controller 115) kann mit den Speichervorrichtungen 130 kommunizieren, um Operationen, wie zum Beispiel Lesen von Daten, Schreiben von Daten oder Löschen von Daten in den Speichervorrichtungen 130, und andere solche Operationen durchzuführen. Der Speicher-Untersystem-Controller 115 kann Hardware, wie zum Beispiel eine oder mehrere integrierte Schaltungen und/oder diskrete Komponenten, einen Pufferspeicher oder eine Kombination davon enthalten. Die Hardware kann eine digitale Schaltung mit dedizierter (d.h. hartkodierter) Logik enthalten, um die hier beschriebenen Operationen durchzuführen. Der Speicher-Untersystem-Controller 115 kann ein Mikrocontroller, eine spezielle Logikschaltung (z.B. ein feldprogrammierbares Gate-Array (FPGA), eine anwendungsspezifische integrierte Schaltung (ASIC), etc.) oder ein anderer geeigneter Prozessor sein.
-
Der Speicher-Untersystem-Controller 115 kann ein Verarbeitungsvorrichtung sein, das einen oder mehrere Prozessoren (z.B. Prozessor 117) umfasst, die ausgestaltet sind, um in einem lokalen Speicher 119 gespeicherte Instruktionen auszuführen. In dem gezeigten Beispiel umfasst der lokale Speicher 119 des Speicher-Untersystem-Controllers 115 einen eingebetteten Speicher, der ausgestaltet ist, um Instruktionen zur Durchführung verschiedener Prozesse, Operationen, logischer Abläufe und Routinen zu speichern, die den Betrieb des Speicher-Untersystems 110 steuern, einschließlich der Handhabung von Kommunikationen zwischen dem Speicher-Untersystem 110 und dem Host-System 120.
-
In einigen Ausführungsformen kann der lokale Speicher 119 Speicherregister zum Speichern von Speicherzeigern, abgerufenen Daten, usw. enthalten. Der lokale Speicher 119 kann auch einen Festwertspeicher (ROM) zum Speichern von Mikro-Code enthalten. Obwohl das beispielhafte Speicher-Untersystem 110 in 1 so dargestellt ist, dass es den Speicher-Untersystem-Controller 115 enthält, kann ein Speicher-Untersystem 110 in einer anderen Ausführungsform der vorliegenden Erfindung keinen Speicher-Untersystem-Controller 115 enthalten und stattdessen auf einer externen Steuerung basieren (bereitgestellt z.B. durch einen externen Host oder durch einen von dem Speicher-Untersystem separaten Prozessor oder Controller).
-
Allgemein kann der Speicher-Untersystem-Controller 115 Befehle oder Operationen vom Host-System 120 empfangen und die Befehle oder Operationen in Instruktionen oder geeignete Befehle umwandeln, um die gewünschten Zugriffe auf die Speichervorrichtungen 130 zu erreichen. Der Speicher-Untersystem-Controller 115 kann für andere Operationen verantwortlich sein, wie zum Beispiel für Abnutzungsausgleichsoperationen, Speicherbereinigungsoperationen, Fehlererfassungs- und Fehler-Korrektur-Code-Operationen (ECC-Operationen), Verschlüsselungsoperationen, Cache-Operationen und Adressenübersetzungen zwischen einer logischen Adresse (z.B. logische Blockadresse (LBA), Namespace) und einer physischen Adresse (z.B. physikalische Blockadresse), die mit den Speichervorrichtungen 130 in Beziehung stehen. Der Speicher-Untersystem-Controller 115 kann außerdem eine Host-Schnittstellenschaltung enthalten, um mit dem Host-System 120 über die physische Host-Schnittstelle zu kommunizieren. Die Host-Schnittstellenschaltung kann die vom Host-System empfangenen Befehle in Befehlsinstruktionen umwandeln, um auf die Speichervorrichtungen 130 zuzugreifen, und um die mit den Speichervorrichtungen 130 in Beziehung stehenden Antworten in Informationen für das Host-System 120 umzuwandeln.
-
Das Speicher-Untersystem 110 kann auch zusätzliche Schaltungen oder Komponenten enthalten, die nicht dargestellt sind. In einigen Ausführungsformen kann das Speicher-Untersystem 110 einen Cache oder Puffer (z.B. DRAM) und Adressenschaltungen (z.B. einen Zeilendekodierer und einen Spaltendekodierer) enthalten, die eine Adresse vom Speicher-Untersystem-Controller 115 empfangen und die Adresse dekodieren können, um auf die Speichervorrichtungen 130 zuzugreifen.
-
In einigen Ausführungsformen enthalten die Speichervorrichtungen 130 lokale Medien-Controller 135, die in Verbindung mit dem Speicher-Untersystem-Controller 115 arbeiten, um Operationen bezüglich einer oder mehrerer Speicherzellen der Speichervorrichtungen 130 durchzuführen. Ein externer Controller (z.B. der Speicher-Untersystem-Controller 115) kann die Speichervorrichtung 130 extern verwalten (z.B. Medienverwaltungsoperationen an der Speichervorrichtung 130 durchführen). In einigen Ausführungsformen ist das Speicher-Untersystem 110 eine verwaltete Speichervorrichtung, die eine Rohspeichervorrichtung 130 mit Steuerlogik (z.B. lokaler Medien-Controller 135) auf dem Die und einen Controller (z.B. Speicher-Untersystem-Controller 115) für die Medienverwaltung innerhalb desselben Speichervorrichtungspakets umfasst. Ein Beispiel für eine verwaltete Speichervorrichtung ist eine verwaltete NAND-Vorrichtung (MNAND).
-
In einer Ausführungsform umfasst das Speicher-Untersystem 110 eine Speicherschnittstellenkomponente 113. Die Speicherschnittstellenkomponente 113 ist für die Handhabung von Interaktionen des Speicher-Untersystem-Controllers 115 mit den Speichervorrichtungen des Speicher-Untersystems 110, wie zum Beispiel der Speichervorrichtung 130, verantwortlich. Beispielsweise kann die Speicherschnittstellenkomponente 113 Speicherzugriffsbefehle, die vom Host-System 120 empfangenen Anforderungen entsprechend, an die Speichervorrichtung 130 senden, wie zum Beispiel Programmierbefehle, Lesebefehle oder andere Befehle. Darüber hinaus kann die Speicherschnittstellenkomponente 113 Daten von der Speichervorrichtung 130 empfangen, wie beispielsweise Daten, die als Reaktion auf einen Lesebefehl abgerufen wurden, oder eine Bestätigung, dass ein Programmierbefehl erfolgreich ausgeführt wurde. In einigen Ausführungsformen umfasst der Speicher-Untersystem-Controller 115 zumindest einen Bereich der Speicherschnittstelle 113. Beispielsweise kann die Speicher-Untersystem-Controller 115 einen Prozessor 117 (z.B. eine Verarbeitungsvorrichtung) enthalten, der ausgestaltet ist, um in dem lokalen Speicher 119 gespeicherte Befehle auszuführen, um die hier beschriebenen Operationen durchzuführen. In einigen Ausführungsformen ist die Speicherschnittstellenkomponente 113 ein Teil des Host-Systems 110, einer Anwendung oder eines Betriebssystems.
-
In einer Ausführungsform ist die Speichervorrichtung 130 ein Speicher-Array (nicht dargestellt) mit mehreren Ebenen, die in einer Anzahl von unabhängigen Ebenengruppen angeordnet sind. Die Speichervorrichtung 130 enthält außerdem einen lokalen Medien-Controller 135 und eine Schaltung für eine unabhängige Ebenenarchitektur (IPA) 150. In einer Ausführungsform enthält die Schaltung 150 eine Anzahl unabhängiger analoger Treiberschaltungen, die mit dem Speicher-Array gekoppelt sind, wobei jede jeweilige unabhängige analoge Treiberschaltung mit einer entsprechenden unabhängigen Ebenengruppe in Beziehung steht (d.h. eine Eins-zu-Eins-Beziehung), sowie eine gemeinsame analoge Schaltung, die mit dem Speicher-Array gekoppelt ist, wobei die gemeinsame analoge Schaltung von allen unabhängigen analogen Treiberschaltungen und unabhängigen Ebenengruppen gemeinsam genutzt wird. In einer Ausführungsform sind die unabhängigen analogen Treiberschaltungen ausgestaltet, um ausgewählte analoge Spannungsreferenzen, die von der gemeinsamen analogen Schaltung empfangen werden, an Speicherebenen der unabhängigen Ebenengruppen zu liefern, um Speicherzugriffsoperationen auf Anweisung des lokalen Medien-Controllers 135 durchzuführen.
-
In einer Ausführungsform kann der lokale Medien-Controller 135 eine Anzahl von separaten Medien-Controllern darstellen. Zum Beispiel kann jede unabhängige Ebenengruppe des Speicher-Arrays einen entsprechenden Medien-Controller enthalten. Jeder Medien-Controller ist ausgestaltet, um Speicherzugriffsoperationen bezüglich der Speicherebenen in der entsprechenden unabhängigen Ebenengruppe auszuführen (z.B. die entsprechende jeweilige analoge Treiberschaltung zu veranlassen, ein von der gemeinsamen analogen Schaltung empfangenes Spannungssignal an eine bestimmte Speicherebene oder an bestimmte Speicherebenen der entsprechenden unabhängigen Ebenengruppe zu liefern). In einer Ausführungsform wird der mit einer unabhängigen Ebenengruppe in Beziehung stehende Medien-Controller als „Haupt“-Controller bezeichnet, während die mit den anderen unabhängigen Ebenengruppen in Beziehung stehenden Medien-Controller als „Sekundär“-Controller bezeichnet werden. Unter bestimmten Umständen kann (können) der (die) Sekundär-Controller aus Gründen des Stromverbrauchs deaktiviert werden, und der primäre Controller (Haupt-Controller) kann Operationen auf den Speicherebenen der mehreren unabhängigen Ebenengruppen ausführen. Weitere Details bezüglich der Operationen des lokalen Medien-Controllers 135 und der IPA-Schaltung 150 (Independent Plane Architecture) werden nachfolgend beschrieben.
-
2 ist ein vereinfachtes Blockdiagramm gemäß einer Ausführungsform von einem ersten Gerät in Form einer Speichervorrichtung 130, das mit einem zweiten Gerät in Form eines Speicher-Untersystem-Controllers 115 eines Speicher-Untersystems (z.B. das Speicher-Untersystem 110 aus 1) kommuniziert. Einige Beispiele für elektronische Systeme sind Personal Computer, Personal Digital Assistants (PDAs), Digitalkameras, digitale Medien-Abspielgeräte, digitale Aufnahmegeräte, Spiele, Anwendungen, Fahrzeuge, drahtlose Vorrichtungen, Mobiltelefone und dergleichen. Der Speicher-Untersystem-Controller 115 (z.B. ein Controller außerhalb der Speichervorrichtung 130) kann ein Speicher-Controller oder eine andere externe Host-Vorrichtung sein.
-
Die Speichervorrichtung 130 enthält ein Array aus Speicherzellen 250, die in Zeilen und Spalten logisch angeordnet sind. Die Speicherzellen einer logischen Zeile sind typischerweise mit derselben Zugriffsleitung (z.B. einer Wortleitung) verbunden, während die Speicherzellen einer logischen Spalte typischerweise selektiv mit derselben Datenleitung (z.B. einer Bitleitung) verbunden sind. Eine einzelne Zugriffsleitung kann mit mehr als einer logischen Zeile von Speicherzellen in Beziehung stehen, und eine einzelne Datenleitung kann mit mehr als einer logischen Spalte in Beziehung stehen. Speicherzellen (in 2 nicht dargestellt) von mindestens einem Bereich des Arrays aus Speicherzellen 250 können auf einen von mindestens zwei Zieldatenzuständen programmiert werden.
-
Eine Zeilendekodiererschaltung 208 und eine Spaltendekodiererschaltung 210 sind vorgesehen, um Adressensignale zu dekodieren. Adressensignale werden empfangen und dekodiert, um auf das Array aus Speicherzellen 250 zuzugreifen. Die Speichervorrichtung 130 umfasst außerdem eine Eingabe/Ausgabe-Steuerschaltung (I/O-Steuerschaltung) 212, um Eingaben von Befehlen, Adressen und Daten in die Speichervorrichtung 130 sowie die Ausgaben von Daten und Statusinformationen aus der Speichervorrichtung 130 zu verwalten. Ein Adressenregister 214 steht mit der I/O-Steuerschaltung 212 und der Zeilendekodiererschaltung 208 und der Spaltendekodiererschaltung 210 in Verbindung, um die Adressensignale vor dem Dekodieren zu verriegeln (zwischenspeichern). Ein Befehlsregister 224 steht mit der I/O-Steuerschaltung 212 und dem lokalen Medien-Controller 135 in Verbindung, um eingehende Befehle zu verriegeln.
-
Ein Controller (z.B. der lokale Medien-Controller 135 innerhalb der Speichervorrichtung 130) steuert Zugriffe auf das Array aus Speicherzellen 250 in Reaktion auf die Befehle und erzeugt Statusinformationen für den externen Speicher-Untersystem-Controller 115, d.h. der lokale Medien-Controller 135 ist ausgestaltet, um Zugriffsoperationen (z.B. Leseoperationen, Programmieroperationen und/oder Löschoperationen) bezüglich des Arrays aus Speicherzellen 250 durchzuführen. Der lokale Medien-Controller 135 steht mit der Zeilendekodiererschaltung 208 und der Spaltendekodiererschaltung 210 in Verbindung, um die Zeilendekodiererschaltung 208 und die Spaltendekodiererschaltung 210 in Reaktion auf die Adressen zu steuern.
-
Der lokale Medien-Controller 135 steht außerdem mit einem Seiten-Cache 240 in Verbindung, der ein Cache-Register 242 und ein Datenregister 244 enthält. Das Cache-Register 242 speichert entweder eingehende oder ausgehende Daten gemäß den Anweisungen des lokalen Medien-Controllers 135, um Daten vorübergehend zu speichern, während das Array aus Speicherzellen 250 mit dem Schreiben bzw. Lesen anderer Daten beschäftigt ist. Während einer Programmieroperation (z.B. Schreiboperation) können Daten vom Cache-Register 242 an das Datenregister 244 zur Übertragung an das Array aus Speicherzellen 250 weitergeleitet werden; anschließend können neue Daten von der I/O-Steuerschaltung 212 im Cache-Register 242 zwischengespeichert werden. Während einer Leseoperation können Daten vom Cache-Register 242 an die I/O-Steuerschaltung 212 zur Ausgabe an den Speicher-Untersystem-Controller 115 weitergeleitet werden; anschließend können neue Daten vom Datenregister 244 an das Cache-Register 242 weitergeleitet werden. Das Cache-Register 242 und/oder das Datenregister 244 können den Seiten-Cache 240 (z.B. einen Teil davon) der Speichervorrichtung 130 bilden. Der Seiten-Cache 240 kann außerdem Erfassungsvorrichtungen (in 2 nicht dargestellt) enthalten, um einen Datenzustand einer Speicherzelle des Arrays aus Speicherzellen 250 zu erfassen, z.B. durch Erfassen eines Zustands einer Datenleitung, die mit dieser Speicherzelle verbunden ist. Ein Statusregister 222 kann mit der I/O-Steuerschaltung 212 und mit dem lokalen Speicher-Controller 135 in Verbindung stehen, um die Statusinformationen zur Ausgabe an den Speicher-Untersystem-Controller 115 zu speichern (zwischenspeichern).
-
Die Speichervorrichtung 130 enthält außerdem eine IPA-Schaltung (Schaltung für unabhängige Ebenenarchitektur) 150. In einer Ausführungsform enthält die IPA-Schaltung 150 eine Anzahl unabhängiger analoger Treiberschaltungen, die mit dem Speicher-Array 250 gekoppelt sind, wobei jede jeweilige unabhängige analoge Treiberschaltung mit einer entsprechenden unabhängigen Ebenengruppe in Beziehung steht, sowie eine gemeinsame analoge Schaltung, die mit dem Speicher-Array gekoppelt ist, wobei die gemeinsame analoge Schaltung von allen unabhängigen analogen Treiberschaltungen und unabhängigen Ebenengruppen gemeinsam genutzt wird. In einer Ausführungsform sind die unabhängigen analogen Treiberschaltungen ausgestaltet, um ausgewählte analoge Spannungsreferenzen, die sie von der gemeinsamen analogen Schaltung erhalten werden, an Speicherebenen der unabhängigen Ebenengruppen zu liefern, um auf Anweisung des lokalen Medien-Controllers 135 Speicherzugriffsoperationen durchzuführen. Weitere Details bezüglich der IPA-Schaltung 150 werden nachfolgend unter Bezugnahme auf 4 beschrieben.
-
Die Speichervorrichtung 130 empfängt Steuersignale an dem Speicher-Untersystem-Controller 115 von dem lokalen Medien-Controller 135 über eine Steuerverbindung 232. Die Steuersignale können beispielsweise ein Chip-Enable-Signal CE#, ein Befehls-Latch-Enable-Signal CLE, ein Adressen-Latch-Enable-Signal ALE, ein Schreib-Enable-Signal WE#, ein Lese-Enable-Signal RE# und ein Schreib-Protect-Signal WP# umfassen. Zusätzliche oder alternative Steuersignale (nicht dargestellt) können je nach Art der Speichervorrichtung 130 über die Steuerverbindung 232 empfangen werden. In einer Ausführungsform empfängt die Speichervorrichtung 130 Befehlssignale (die Befehle darstellen), Adressensignale (die Adressen darstellen) und Datensignale (die Daten darstellen) vom Speicher-Untersystem-Controller 115 über einen gemultiplexten Eingabe/Ausgabe-Bus (I/O-Bus) 234 und gibt Daten über den I/O-Bus 234 an den Speicher-Untersystem-Controller 115 aus.
-
Zum Beispiel können die Befehle über die Eingabe/Ausgabe-Pins (I/O-Pins) [7:0] des I/O-Buss 234 an der I/O-Steuerschaltung 212 empfangen werden und können anschließend in das Befehlsregister 224 geschrieben werden. Die Adressen können über die Eingabe/Ausgabe-Pins (I/O-Pins) [7:0] des I/O-Buss 234 an der I/O-Steuerschaltung 212 empfangen und können anschließend in das Adressenregister 214 geschrieben werden. Die Daten können über die Eingabe/Ausgabe-Pins (I/O-Pins) [7:0] für eine 8-Bit-Vorrichtung oder die Eingabe/Ausgabe-Pins (I/O-Pins) [15:0] für eine 16-Bit-Vorrichtung an der I/O-Steuerschaltung 212 empfangen und anschließend in das Cache-Register 242 geschrieben werden. Die Daten können anschließend in das Datenregister 244 geschrieben werden, um das Array aus Speicherzellen 250 zu programmieren.
-
In einer Ausführungsform kann das Cache-Register 242 weggelassen werden, und die Daten können direkt in das Datenregister 244 geschrieben werden. Die Daten können auch über die Eingabe/Ausgabe-Pins (I/O-Pins) [7:0] für eine 8-Bit-Vorrichtung oder die Eingabe/Ausgabe-Pins (I/O-Pins) [15:0] für eine 16-Bit-Vorrichtung ausgegeben werden. Obwohl auf I/O-Pins Bezug genommen wird, können sie irgendeinen leitenden Knoten umfassen, um eine elektrische Verbindung mit der Speichervorrichtung 130 durch eine externe Vorrichtung (z.B. den Speicher-Untersystem-Controller 115) zu ermöglicht, wie zum Beispiel leitende Pads oder leitende Höcker (Bumps), die üblicherweise verwendet werden.
-
Fachleute werden verstehen, dass zusätzliche Schaltungen und Signale vorgesehen werden können und dass die Speichervorrichtung 130 aus 2 vereinfacht worden ist. Es sollte offensichtlich sein, dass die Funktionalität der verschiedenen Blockkomponenten, die unter Bezugnahme auf 2 beschrieben wurden, nicht notwendigerweise auf verschiedene Komponenten oder Komponententeile einer integrierten Schaltungsvorrichtung aufgeteilt werden müssen. Beispielsweise kann eine einzelne Komponente oder ein Komponentenbereich einer integrierten Schaltungsvorrichtung ausgestaltet sein, um die Funktionalität von mehr als einer Blockkomponente aus 2 zu erfüllen. Alternativ können eine oder mehrere Komponenten oder Komponentenbereiche einer integrierten Schaltungsvorrichtung kombiniert werden, um die Funktionalität einer einzelnen Blockkomponente aus 2 zu erfüllen. Obwohl gemäß den gängigen Konventionen für das Empfangen und Ausgeben verschiedener Signale spezielle I/O-Pins beschrieben werden, wird außerdem darauf hingewiesen, dass in den verschiedenen Ausführungsformen andere Kombinationen oder Anzahlen von I/O-Pins (oder andere I/O-Knotenstrukturen) verwendet werden können.
-
3 ist ein Blockdiagramm, das eine Mehrebenen-Speichervorrichtung 130 zeigt, die gemäß einigen Ausführungsformen der vorliegenden Erfindung für gleichzeitige Seiten-Cache-Ressourcen-Zugriffe ausgestaltet ist. Die Speicherebenen 372(0)-372(3) können jeweils in Datenblöcke unterteilt sein, wobei während der Speicherzugriffsoperationen gleichzeitig auf einen anderen relativen Datenblock von zwei oder mehr der Speicherebenen 372(0)-372(3) zugegriffen werden kann. Beispielsweise kann während Speicherzugriffsoperationen auf zwei oder mehr Datenblöcke 382 der Speicherebene 372(0), auf Datenblock 383 der Speicherebene 372(1), auf Datenblock 384 der Speicherebene 372(2) und auf Datenblock 385 der Speicherebene 372(3) jeweils gleichzeitig zugegriffen werden.
-
Die Speichervorrichtung 130 umfasst ein Speicher-Array 250, das in Speicherebenen 372(0)-372(3) unterteilt ist, die jeweils eine entsprechende Anzahl von Speicherzellen enthalten. Die Mehrebenen-Speichervorrichtung 130 kann außerdem lokale Medien-Controller 135(0)-135(1) umfassen, die mit dem Speicher-Array 250 gekoppelt sind. Bei den Speicherzellen kann es sich um nichtflüchtige Speicherzellen handeln, wie zum Beispiel NAND-Flash-Zellen, oder allgemein um jeden beliebigen Typ von Speicherzellen. In einer Ausführungsform enthält jede der Speicherebenen 372(0)-372(3) ein entsprechendes Speicher-Array aus Speicherzellen. In einer Ausführungsform kann jede der Speicherebenen 372(0)-372(3) zwei oder mehr unabhängige Speicher-Arrays aus Speicherzellen enthalten.
-
Jede der Speicherebenen 372(0)-372(3) kann mit einem entsprechenden Seitenpuffer 240(0)-240(3) verbunden sein. Jeder Seitenpuffer 240(0)-240(3) kann ausgestaltet sein, um Daten an die jeweilige Speicherebene 372(0)-372(3) zu liefern oder von dieser zu empfangen. Die Seitenpuffer 240(0)-240(3) können durch lokalen Medien-Controller 135(0)-135(1) gesteuert werden. Die von der jeweiligen Speicherebene 372(0)-372(3) empfangenen Daten können jeweils in den Seitenpuffern 240(0)-240(3) zwischengespeichert, von den lokalen Medien-Controllern 135(0)-135(1) abgerufen werden, und über die NVMe-Schnittstelle an den Speicher-Untersystem-Controller 115 weitergeleitet werden.
-
In einer Ausführungsform können die Speicherebenen 372(0)-372(3) des Speicher-Arrays 250 in mehreren unabhängigen Ebenengruppen angeordnet sein. Zum Beispiel könnten die Speicherebenen 372(0)-372(1) Teil einer ersten unabhängigen Ebenengruppe sein, und die Speicherebenen 372(2)-372(3) könnten Teil einer zweiten unabhängigen Ebenengruppe sein. Dies ist nur ein Beispiel, und es ist offensichtlich, dass andere Anordnungen möglich sind, einschließlich einer anderen Anzahl von Gruppen und/oder einer anderen Anzahl von Ebenen in jeder Gruppe. In einer Ausführungsform sind die Speicherebenen von jeder unabhängigen Ebenengruppe mit einer entsprechenden Zugriffstreiberschaltung 374(0)-374(1) gekoppelt, wie zum Beispiel einer Zugriffsleitungstreiberschaltung. In einer Ausführungsform sind die Treiberschaltungen 374(0)-374(1) Teil der unabhängige Ebenenzugriffsschaltung 150. Die Treiberschaltungen 374(0)-374(1) können ausgestaltet sein, um eine Seite eines jeweiligen Blocks einer zugehörigen Speicherebene 372(0)-372(3) für eine Speicherzugriffsoperation zu konditionieren, wie zum Beispiel Programmieren von Daten (d.h. Schreiben von Daten), Lesen von Daten oder Löschen von Daten. Jede der Treiberschaltungen 374(0)-374(1) kann mit jeweiligen globalen Zugriffsleitungen gekoppelt sein, die einer jeweiligen Speicherebene 372(0)-372(3) zugeordnet sind. Jede der globalen Zugriffsleitungen kann während einer Speicherzugriffsoperation, die mit einer Seite innerhalb des Blocks in Beziehung steht, selektiv mit jeweiligen lokalen Zugriffsleitungen innerhalb eines Blocks einer Ebene gekoppelt werden. Die Treiberschaltungen 374(0)-374(1) können auf Basis von Signalen von lokalen Medien-Controllern 135(0)-135(1) gesteuert werden. Jede der Treiberschaltungen 374(0)-374(1) kann eine entsprechende Leistungsschaltung umfassen oder mit einer solchen gekoppelt sein, und kann Spannungen für die jeweiligen Zugriffsleitungen bereitstellen, und zwar auf Basis von Spannungen, die von der jeweiligen Leistungsschaltung bereitgestellt werden. Die von den Leistungsschaltungen bereitgestellten Spannungen können auf Signalen basieren, die von den lokalen Medien-Controllern 135(0)-135(1) empfangen werden. In einer Ausführungsform umfasst die unabhängige Ebenenzugriffsschaltung ferner eine gemeinsame analoge Schaltung 375, die von allen unabhängigen analogen Treiberschaltungen 374(0)-374(1) und unabhängigen Ebenengruppen gemeinsam genutzt wird.
-
Die lokalen Medien-Controller 135(0)-135(1) können die Treiberschaltungen 374(0)-374(1) und die Seiten-Caches 240(0)-240(3) steuern, um gleichzeitig Speicherzugriffsoperationen durchzuführen, die mit jeder Gruppe von Speicherbefehls- und Adressenpaaren in Beziehung stehen (z.B. empfangen vom Speicher-Untersystem-Controller 115). Zum Beispiel kann der lokale Medien-Controller 135(0) die Treiberschaltung 374(0) steuern, und der lokale Medien-Controller 135(1) kann die Treiberschaltung 374(1) steuern, um die gleichzeitigen Speicherzugriffsoperationen durchzuführen. Die lokalen Medien-Controller 135(0)-135(1) können eine Leistungssteuerschaltung, die zwei oder mehr der Treiberschaltungen 374(0)-374(3) für die gleichzeitigen Speicherzugriffsoperationen seriell konfiguriert, und eine Zugriffssteuerschaltung enthalten, die ausgestaltet ist, um zwei oder mehr der Puffer 240(0)-240(3) zu steuern, um Daten von den jeweiligen Speicherebenen 372(0)-372(3) zu erfassen und zwischenzuspeichern, oder um Daten in die jeweiligen Speicherebenen 372(0)-372(3) zu programmieren, um die gleichzeitigen Speicherzugriffsoperationen durchzuführen.
-
Im Betrieb können die lokalen Medien-Controller 135(0)-135(1) eine Gruppe von Speicherbefehls- und Adressenpaaren über den ONFI-Bus empfangen, wobei jedes Paar parallel oder seriell eintrifft. In einigen Beispielen kann die Gruppe von Speicherbefehls- und Adressenpaaren jeweils verschiedenen jeweiligen Speicherebenen 372(0)-372(3) des Speicher-Arrays 250 zugeordnet werden. Der lokale Medien-Controller 135 kann ausgestaltet sein, um als Reaktion auf die Gruppe von Speicherbefehls- und Adresspaaren gleichzeitige Speicherzugriffsoperationen (z.B. Leseoperationen oder Programmieroperationen) für die verschiedenen Speicherebenen 372(0)-372(3) des Speicher-Arrays 250 durchzuführen. Beispielsweise kann die Leistungssteuerschaltung der lokalen Medien-Controller 135(0)-135(1) die Treiberschaltungen 374(0)-374(1) für zwei oder mehr Speicherebenen 372(0)-372(3), die mit der Gruppe von Speicherbefehls- und Adressenpaaren in Beziehung stehen, für die gleichzeitigen Speicherzugriffsoperationen auf Basis des jeweiligen Seitentyps (z.B. UP-, MP-, LP-, XP-, SLC/MLC/TLC/QLC-Seite) seriell konfigurieren. Nachdem die Zugriffsleitungstreiberschaltungen 374(0)-374(1) konfiguriert worden sind, kann die Zugriffssteuerschaltung des lokalen Medien-Controllers 135 gleichzeitig die Seiten-Caches 240(0)-240(3) steuern, um auf die jeweiligen Seiten von jeder der zwei oder mehr Speicherebenen 372(0)-372(3) zuzugreifen, die mit der Gruppe von Speicherbefehls- und Adressenpaaren verbunden sind, wie zum Beispiel das Abrufen von Daten oder das Schreiben von Daten während der gleichzeitigen Speicherzugriffsoperationen. Beispielsweise kann die Zugriffssteuerschaltung gleichzeitig (z.B. parallel und/oder gleichzeitig) die Seiten-Caches 240(0)-240(3) steuern, um Bitleitungen zu laden/entladen, um Daten von den zwei oder mehr Speicherebenen 372(0)-372(3) zu erfassen und/oder um die Daten zwischenzuspeichern.
-
Basierend auf den Signalen, die von den lokalen Medien-Controllern 135(0)-135(1) empfangen werden, können die Treiberschaltungen 374(0)-374(1), die mit den Speicherebenen 372(0)-372(3) gekoppelt sind, die mit der Gruppe von Speicherbefehls- und Adressenbefehlspaaren in Beziehung stehen, Blöcke von Speicher oder Speicherzellen aus der zugeordneten Speicherebene 372(0)-372(3) für Speicheroperationen, wie zum Beispiel Lese-, Programmier- und/oder Löschoperationen, auswählen. Die Treiberschaltungen 374(0)-374(1) können verschiedene jeweilige globale Zugriffsleitungen ansteuern, die mit einer jeweiligen Speicherebene 372(0)-372(3) in Beziehung stehen. Beispielsweise kann die Treiberschaltung 374(0) eine erste Spannung auf einer ersten globalen Zugriffsleitung treiben, die mit der Speicherebene 372(0) und/oder 372(1) in Beziehung steht, und die Treiberschaltung 374(1) kann eine zweite Spannung auf einer dritten globalen Zugriffsleitung treiben, die mit der Speicherebene 372(2) und/oder 372(3) in Beziehung steht. In einigen Beispielen können Durchlassspannungen auf allen Zugriffsleitungen zur Verfügung gestellt werden, mit Ausnahme einer Zugriffsleitung, die mit einer Seite einer Speicherebene 372(0)-372(3) in Beziehung steht, auf die zugegriffen werden soll. Die lokalen Medien-Controller 135(0)-135(1), die Treiberschaltungen 374(0)-374(1) können verschiedene jeweilige Seiten ermöglichen, und die Seiten-Caches 240(0)-240(3) innerhalb verschiedener jeweiliger Blöcke von Speicherzellen, auf die gleichzeitig zugegriffen werden sollen. Zum Beispiel kann auf eine erste Seite eines ersten Blocks einer ersten Speicherebene gleichzeitig mit einer zweiten Seite eines zweiten Blocks einer zweiten Speicherebene zugegriffen werden, unabhängig vom Typ der Seite.
-
Die Seiten-Caches 240(0)-240(3) können während der Speicherzugriffsoperationen Daten an die lokalen Medien-Controller 135(0)-135(1) liefern oder von diesen Daten empfangen, und zwar als Reaktion auf Signale von den lokalen Medien-Controllern 135(0)-135(1) und den jeweiligen Speicherebenen 372(0)-372(3). Die lokalen Medien-Controller 135(0)-135(1) können die empfangenen Daten an den Speicher-Untersystem-Controller 115 liefern.
-
Es ist offensichtlich, dass die Speichervorrichtung 130 mehr oder weniger als vier Speicherebenen, Treiberschaltungen und Seiten-Caches enthalten kann. Es ist ferner offensichtlich, dass die jeweiligen globalen Zugriffsleitungen 8, 16, 32, 64, 128, usw. globale Zugriffsleitungen umfassen können. Die lokalen Medien-Controller 135(0)-135(1) und die Treiberschaltungen 374(0)-374(1) können gleichzeitig auf verschiedene jeweilige Seiten innerhalb verschiedener jeweiliger Blöcke verschiedener Speicherebenen zugreifen, wenn die verschiedenen jeweiligen Seiten von einem unterschiedlichen Seitentyp sind.
-
4 ist ein Blockdiagramm, das eine unabhängige Ebenenarchitektur in einer Speichervorrichtung 130 gemäß einigen Ausführungsformen der vorliegenden Erfindung zeigt. Wie dargestellt, umfasst die Speichervorrichtung 130 eine Anzahl von Speicherebenen (d.h. Ebene0-Ebene5), die in zwei unabhängigen Ebenengruppen (IPGs) 450 und 452 angeordnet sind. In anderen Ausführungsformen kann es eine beliebige Anzahl von Speicherebenen und/oder eine beliebige andere Anzahl von unabhängigen Ebenengruppen geben. Jede der Speicherebenen kann ein Array aus Speicherzellen enthalten, die an den Schnittpunkten von Wortleitungen und Bitleitungen gebildet sind. In einer Ausführungsform sind die Speicherzellen in Blöcken gruppiert, die wiederum in Unterblöcke unterteilt sein können, wobei eine bestimmte Wortleitung beispielsweise von einer Anzahl von Unterblöcken gemeinsam genutzt wird. In einer Ausführungsform entspricht jeder Unterblock einer separaten Ebene in dem Speicher-Array. Die Gruppe von Speicherzellen, die mit einer Wortleitung innerhalb eines Unterblocks in Beziehung stehen, wird als physische Seite bezeichnet. Jede physische Seite in einem der Unterblöcke kann mehrere Seitentypen enthalten. Eine physische Seite, die aus Single-Level-Zellen (SLCs) gebildet ist, hat beispielsweise einen einzigen Seitentyp, der als eine untere logische Seite (LP) bezeichnet wird. Physische Seitentypen mit Multi-Level-Zellen (MLC) können LPs und obere logische Seiten (UPs) umfassen, physische Seitentypen mit TLC sind LPs, UPs und zusätzliche logische Seiten (XPs), und physische Seitentypen von QLC sind LPs, UPs, XPs und obere logische Seiten (TPs). Eine physische Seite, die aus Speicherzellen des QLC-Speichertyps gebildet ist, kann zum Beispiel insgesamt vier logische Seiten haben, wobei jede logische Seite Daten speichern kann, die sich von den Daten unterscheiden, die in den anderen logischen Seiten gespeichert sind, die mit dieser physischen Seite in Beziehung stehen. Abhängig vom verwendeten Programmierschema kann jede logische Seite einer Speicherzelle in einem separaten Programmierdurchgang programmiert werden, oder es können mehrere logische Seiten zusammen programmiert werden. So kann beispielsweise bei einer physischen QLC-Seite die LP in einem Durchgang programmiert werden, und die UP, XP und TP können in einem zweiten Durchgang programmiert werden. Andere Programmierschemen sind möglich.
-
In einer Ausführungsform hat jede der unabhängigen Ebenengruppen 450 und 452 eine zugehörige unabhängige analoge Treiberschaltung 460 und 462. Die unabhängigen analogen Treiberschaltungen 460 und 462 können repräsentativ für die Treiber 374(0)-374(1) aus 3 sein. In einer Ausführungsform gibt es eine gemeinsame analoge Schaltung 470. Die gemeinsame analoge Schaltung 470 kann der gemeinsamen Schaltung 375 aus 3 entsprechen. Zusammen bilden die unabhängigen analogen Treiberschaltungen 460 und 462 und die gemeinsame analoge Schaltung 470 die unabhängige Ebenenarchitekturschaltung 150. Je nach Ausführungsform kann die unabhängigen Ebenenarchitekturschaltung 150 zusätzliche und/oder andere Komponenten enthalten. In einer Ausführungsform enthält die Speichervorrichtung außerdem einen gemeinsamen Datenpfad 490, der von den unabhängigen Ebenengruppen 450 und 452 gemeinsam genutzt wird, und eine gemeinsame Befehlsschnittstelle 495. In einer Ausführungsform sind die unabhängigen analogen Treiberschaltungen 460 und 462 ausgestaltet, um ausgewählte analoge Spannungsreferenzen, die von der gemeinsamen analogen Schaltung 470 erhalten werden, an Speicherebenen der unabhängigen Ebenengruppen 450 und 452 zu liefern, um Speicherzugriffsoperationen durchzuführen. Beispielsweise kann die gemeinsame analoge Schaltung 470 eine Reihe von analogen Referenzen enthalten, die Referenzen erster Ordnung (z.B. Bandgap, Seitenpufferreferenzen, Thermometer) und andere Referenzen zweiter Ordnung für die separaten analogen Treiberschaltungen 460 und 462 darstellen. Die gemeinsame analoge Schaltung 470 kann ferner Leistung-Ein/Leistung-Aus-Detektoren enthalten, um zu bestimmen, wann das Speicher-Die eingeschaltet werden muss oder wann ein Stromausfall vorliegt, sowie alle anderen Komponenten, die gemeinsam genutzt werden können (z.B. nur einmal ausgeführt werden, um Strom zu sparen). Die unabhängigen analogen Treiberschaltungen 460 und 462 können jedoch auch andere Komponenten (z.B. Gleichstromwandler, X- und Y-Pad-Treiber) enthalten, die unabhängig von anderen unabhängigen Ebenengruppen arbeiten.
-
In einer Ausführungsform kann jede unabhängige Ebenengruppe 450 und 460 der Speichervorrichtung 130 einen entsprechenden jeweiligen Medien-Controller haben. Zum Beispiel kann die primäre Steuerlogik 480 mit der unabhängigen Ebenengruppe 450 in Beziehung stehen, und die sekundäre Steuerlogik 482 kann mit der unabhängigen Ebenengruppe 452 in Beziehung stehen. Die primäre Steuerlogik 480 und die sekundäre Steuerlogik 482 können für die Medien-Controller 135(0)-135(1) aus 3 stehen. Jeder Medien-Controller ist ausgestaltet, um Speicherzugriffsoperationen auf den Speicherebenen in der entsprechenden unabhängigen Ebenengruppe auszuführen (z.B. die entsprechende jeweilige analoge Treiberschaltung zu veranlassen, ein von der gemeinsamen analogen Schaltung empfangenes Spannungssignal an eine bestimmte Speicherebene oder Speicherebenen der entsprechenden unabhängigen Ebenengruppe anzulegen). Unter bestimmten Umständen kann die sekundäre Steuerlogik 482 aus Gründen des Stromverbrauchs deaktiviert werden, und die primäre Steuerlogik 480 kann Operationen auf den Speicherebenen mehrerer unabhängiger Ebenengruppen (d.h. Gruppe 450 und Gruppe 452) ausführen. Wenn beide noch aktiv sind, können die primäre Steuerlogik 480 und die sekundäre Steuerlogik 482 jedoch asynchrone Speicherzugriffsoperationen auf den Speicherebenen der jeweiligen unabhängigen Ebenengruppe gleichzeitig (z.B. zumindest teilweise zeitlich überlappend) durchführen, wie in 5 dargestellt ist.
-
5 ist eine Darstellung, die die gleichzeitige Ausführung von Speicherzugriffsoperationen in einer Speichervorrichtung mit einer unabhängigen Ebenenarchitektur gemäß einigen Ausführungsformen der vorliegenden Erfindung veranschaulicht. Wenn die Speichervorrichtung 130, wie oben beschrieben, eine unabhängige Ebenenarchitekturschaltung 150 enthält, können die primäre Steuerlogik 480 und die sekundäre Steuerlogik 482 asynchrone Speicherzugriffsoperationen auf den jeweiligen unabhängigen Ebenengruppen durchführen. Wenn beispielsweise die primäre Steuerlogik 480 eine Programmieroperation (pgm) auf den Speicherebenen der unabhängigen Ebenengruppe 450 (IPG0) durchführt, kann die sekundäre Steuerlogik 482 eine Programmieroperation, eine Löschoperation, eine Leseoperation oder Leseoperationen auf einer oder mehreren unabhängigen Wortleitungen (IWL) auf den Speicherebenen der unabhängigen Ebenengruppe 452 (IPG1) durchführen, wie bei 502 gezeigt. Wenn die primäre Steuerlogik 480 auf ähnliche Weise eine Löschoperation auf den Speicherebenen der unabhängigen Ebenengruppe 450 (IPG0) durchführt, kann die sekundäre Steuerlogik 482 irgendeine von einer Programmieroperation, einer Löschoperation, einer Leseoperation oder Leseoperationen auf einer oder mehreren unabhängigen Wortleitungen (IWL) auf den Speicherebenen der unabhängigen Ebenengruppe 452 (IPG1) durchführen, wie bei 504 gezeigt. Wenn die primäre Steuerlogik 480 eine Leseoperation auf den Speicherebenen der unabhängigen Ebenengruppe 450 (IPG0) durchführt, kann die sekundäre Steuerlogik 482 außerdem irgendeine von einer Programmieroperation, einer Löschoperation, einer Leseoperation oder Leseoperationen auf einer oder mehreren unabhängigen Wortleitungen (IWL) auf den Speicherebenen der unabhängigen Ebenengruppe 452 (IPG1) durchführen, wie bei 506 gezeigt. Außerdem, wenn die primäre Steuerlogik 480 Leseoperationen auf einer oder mehreren unabhängigen Wortleitungen (IWL) auf den Speicherebenen der unabhängigen Ebenengruppe 450 (IPG0) durchführt, kann die sekundäre Steuerlogik 482 irgendeine von einer Programmieroperation, einer Löschoperation, einer Leseoperation oder Leseoperationen auf einer oder mehreren unabhängigen Wortleitungen (IWL) auf den Speicherebenen der unabhängigen Ebenengruppe 452 (IPG1) durchführen, wie bei 508 gezeigt.
-
Unter erneuter Bezugnahme auf 4 enthält die Speichervorrichtung 130 bestimmte Konstruktionsmerkmale, um Rauschen während gleichzeitiger asynchroner Speicherzugriffsoperationen zu reduzieren. In einer Ausführungsform sind die Komponenten der Speichervorrichtung 130 physisch in bestimmte Abschnitte unterteilt. Da beispielsweise jede der unabhängigen Ebenengruppen 450 und 452 und ihre entsprechenden analogen Treiberschaltungen 460 und 462 einen hohen Stromverbrauch und eine geringe Aussteuerungsreserve (Headroom) haben, können sie sich jeweils in einem separaten Abschnitt befinden. Da der Datenpfad 490, die gemeinsame analoge Schaltung 470, die primäre Steuerlogik 480, die sekundäre Steuerlogik 482 und die Befehlsschnittstelle 495 einen geringeren Stromverbrauch und eine größere Aussteuerungsreserve (Headroom) haben, können diese Komponenten zusammen in einem Abschnitt angeordnet sein, der von den unabhängigen Ebenengruppen getrennt ist. Die Trennung kann durch die Verwendung unterschiedlicher Spannungsversorgungen/Regler, unterschiedlicher Metallführungen und unterschiedlicher Ul-Pads in verschiedenen Abschnitten der Speichervorrichtung 130 erreicht werden. Darüber hinaus kann auch eine physische Barriere in dem Substrat zwischen den Abschnitten vorhanden sein (z.B. eine n-dotierte Region zwischen den p-dotierten Regionen, in denen sich die Schaltungen befinden). Die Trennung verhindert negative Nebeneffekte, die mit Querrauschen während empfindlicher Phasen der asynchronen Speicherzugriffsoperationen in Beziehung stehen (wenn z.B. eine verrauschte Operation auf der unabhängigen Ebenengruppe 450 gleichzeitig mit einer empfindlichen Operation auf der unabhängigen Ebenengruppe 452 auftritt).
-
6 ist ein Flussdiagramm eines beispielhaften Verfahrens von Energiesparoperationen in einer Speichervorrichtung mit einer unabhängigen Ebenenarchitektur gemäß einigen Ausführungsformen der vorliegenden Erfindung. Das Verfahren 600 kann von einer Verarbeitungslogik durchgeführt werden, die Hardware (z.B. Verarbeitungsvorrichtungen, Schaltungen, dedizierte Logik, programmierbare Logik, Mikro-Code, Hardware einer Vorrichtung, integrierte Schaltungen, usw.), Software (z.B. Instruktionen, die auf einer Verarbeitungsvorrichtung ausgeführt werden) oder eine Kombination davon umfassen kann. In einigen Ausführungsformen wird das Verfahren 600 von dem lokalen Medien-Controller 135 aus 1 durchgeführt. Obwohl in einer bestimmten Abfolge oder Reihenfolge dargestellt, kann die Reihenfolge der Prozesse, sofern nicht anders angegeben, geändert werden. Daher sind die dargestellten Ausführungsformen nur als Beispiele zu verstehen, und die dargestellten Prozesse können in einer anderen Reihenfolge ausgeführt werden, und einige Prozesse können parallel ausgeführt werden. Außerdem können in verschiedenen Ausführungsformen ein oder mehrere Prozesse weggelassen werden. Es sind also nicht alle Prozesse in jeder Ausführungsform erforderlich. Andere Prozessabläufe sind möglich.
-
In Operation 605 werden Anforderungen empfangen. Zum Beispiel kann die Speichervorrichtung 130 eine Anzahl von Speicherzugriffsbefehlen/ anforderungen empfangen, um entsprechende Speicherzugriffsoperationen durchzuführen. Die Anforderungen können jeweilige Adressen enthalten, die entsprechende Positionen in dem Speicher-Array der Speichervorrichtung 130 identifizieren. Je nach Ausführungsform können die Speicherzugriffsoperationen Leseoperationen, Programmieroperationen, Löschoperationen oder einen anderen Typ von Operationen umfassen. In einer Ausführungsform werden die Anforderungen an der Befehlsschnittstelle 495 von einem Anforderer (Requestor) empfangen, wie zum Beispiel der Speicherschnittstelle 113 des Speicher-Untersystem-Controllers 115 oder des Host-Systems 120.
-
Bei Operation 610 wird eine Bestimmung vorgenommen. Zum Beispiel kann die Steuerlogik bestimmen, ob die Speichervorrichtung 130 ausgestaltet ist, um unabhängige Ebenengruppen zu verwenden. In einer Ausführungsform kann die Speichervorrichtung 130 in einer von zwei Betriebsarten (Modi) ausgestaltet sein, wie zum Beispiel eine erste Betriebsart oder eine zweite Betriebsart. In der ersten Betriebsart können ein oder mehrere Steuerlogikelemente gleichzeitig aktiviert werden. In einer Ausführungsform sind die primäre Steuerlogik 480 und die sekundäre Steuerlogik 482 beide freigegeben (d.h. aktiviert), um entsprechende asynchrone Speicherzugriffsoperationen auf den entsprechenden unabhängigen Ebenengruppen 450 und 452 durchzuführen. In einer anderen Ausführungsform wird nur ein Steuerlogikelement (z.B. die sekundäre Steuerlogik 482) als Reaktion auf eine bestimmte Anforderung aktiviert, während andere Steuerlogikelemente (z.B. die primäre Steuerlogik 480) für die Verarbeitung anderer Anforderungen verfügbar bleiben. In der zweiten Betriebsart wird nur ein Steuerlogikelement aktiviert, während die übrigen Steuerlogikelemente deaktiviert werden. In einer Ausführungsform ist die primäre Steuerlogik 480 aktiviert, und die sekundäre Steuerlogik 482 ist deaktiviert (d.h. abgeschaltet). In einer Ausführungsform wird die Betriebsart als Reaktion auf ein Befehls- oder Steuersignal eingestellt, das an der Befehlsschnittstelle 495 empfangen wird (z.B. von der Speicherschnittstelle 113 des Speicher-Untersystem-Controllers 115 oder des Host-Systems 120).
-
Wenn bestimmt wird, dass die Speichervorrichtung ausgestaltet ist, um unabhängige Ebenengruppen zu verwenden, werden bei Operation 615 ein oder mehrere Steuerlogikelemente aktiviert. In einer Ausführungsform werden die primäre Steuerlogik 480 und die sekundäre Steuerlogik 482 beide freigegeben (d.h. aktiviert), um jeweilige asynchrone Speicherzugriffsoperationen auf den entsprechenden unabhängigen Ebenengruppen 450 und 452 durchzuführen. In einer Ausführungsform sendet die primäre Steuerlogik 480 ein Signal an die sekundäre Steuerlogik 482, um die sekundäre Steuerlogik 482 zu aktivieren. In einer anderen Ausführungsform hebt die primäre Steuerlogik 480 ein Steuersignal auf, das andernfalls der analogen Treiberschaltung 462 zugeführt werden würde. In einer anderen Ausführungsform wird nur die primäre Steuerlogik 480 oder die sekundäre Steuerlogik 482 als Reaktion auf eine bestimmte Anforderung aktiviert, während andere Steuerlogikelemente zur Verarbeitung anderer Anforderungen verfügbar bleiben, die später oder gleichzeitig empfangen werden können.
-
Bei Operation 620 werden gleichzeitige Speicherzugriffsoperationen durchgeführt. Zum Beispiel kann die Speichervorrichtung 130 die primäre Steuerlogik 480 und die sekundäre Steuerlogik 482 veranlassen, asynchrone Speicherzugriffsoperationen auf den Speicherebenen der unabhängigen Ebenengruppen 450 und 452 gleichzeitig unter Verwendung der jeweiligen unabhängigen analogen Treiberschaltungen 460 und 462 durchzuführen. In einer Ausführungsform kann die primäre Steuerlogik 480 die analoge Treiberschaltung 460 veranlassen, Referenzspannungssignale von der gemeinsamen analogen Schaltung 470 an die Speicherebenen der unabhängigen Ebenengruppe 450 gleichzeitig (d.h. zumindest teilweise zeitlich überlappend) anzulegen, während die sekundäre Steuerlogik 482 die analoge Treiberschaltung 462 veranlasst, Referenzspannungssignale von der gemeinsamen analogen Schaltung 470 an die Speicherebenen der unabhängigen Ebenengruppe 452 anzulegen.
-
Wenn bei Operation 610 bestimmt wird, dass die Speichervorrichtung nicht für die Verwendung unabhängiger Ebenengruppen ausgestaltet ist, wird bei Operation 625 nur ein Steuerlogikelement aktiviert, während die übrigen Steuerlogikelemente deaktiviert werden. In einer Ausführungsform wird die primäre Steuerlogik 480 aktiviert, und die sekundäre Steuerlogik 482 wird deaktiviert (d.h. ausgeschaltet). In einer Ausführungsform sendet die primäre Steuerlogik 480 ein Signal an die sekundäre Steuerlogik 482, um die sekundäre Steuerlogik 482 zu deaktivieren. In einer anderen Ausführungsform stellt die primäre Steuerlogik 480 ein Steuersignal zur Verfügung, das der analogen Treiberschaltung 462 zugeführt wird.
-
Bei Operation 630 werden sequentielle Speicherzugriffsoperationen durchgeführt. Zum Beispiel kann die Speichervorrichtung 130 die primäre Steuerlogik 480 veranlassen, Speicherzugriffsoperationen auf den Speicherebenen einer der unabhängigen Ebenengruppen 450 und 452 unter Verwendung der jeweiligen unabhängigen analogen Treiberschaltung 460 oder 462 sequentiell durchzuführen. In einer Ausführungsform kann die primäre Steuerlogik 480 die analoge Treiberschaltung 460 veranlassen, Referenzspannungssignale von der gemeinsamen analogen Schaltung 470 an die Speicherebenen der unabhängigen Ebenengruppe 450 anzulegen, oder sie kann die analoge Treiberschaltung 462 veranlassen, Referenzspannungssignale von der gemeinsamen analogen Schaltung 470 an die Speicherebenen der unabhängigen Ebenengruppe 452 anzulegen. Wie in 5 dargestellt, funktioniert die zweite Betriebsart als ein Legacy-Modus, in dem nur eine von einer Programmieroperation, einer Löschoperation, einer Leseoperation oder Leseoperationen auf einer oder mehreren unabhängigen Wortleitungen (IWL) auf den Speicherebenen entweder der unabhängigen Ebenengruppe 450 (IPG0) oder der unabhängigen Ebenengruppe 452 (IPG1) oder auf beiden Ebenengruppen zu einer Zeit durchgeführt werden können, wie bei 500 dargestellt.
-
7 zeigt eine beispielhafte Maschine eines Computersystems 700, in dem ein Satz von Instruktionen ausgeführt werden kann, um die Maschine zu veranlassen, ein oder mehrere der hier besprochenen Verfahren durchzuführen. In einigen Ausführungsformen kann das Computersystem 700 einem Host-System (z.B. dem Host-System 120 aus 1) entsprechen, das ein Speicher-Untersystem (z.B. das Speicher-Untersystem 110 aus 1) enthält, mit diesem gekoppelt ist oder dieses verwendet, oder es kann verwendet werden, um die Operationen eines Controllers durchzuführen. In alternativen Ausführungsformen kann die Maschine mit anderen Maschinen in einem LAN, einem Intranet, einem Extranet und/oder dem Internet verbunden (z.B. vernetzt) sein. Die Maschine kann in der Funktion eines Servers oder einer Client-Maschine in einer Client-Server-Netzwerkumgebung, als Peer-Maschine in einer Peer-to-Peer-Netzwerkumgebung (oder einer verteilten Netzwerkumgebung) oder als Server oder Client-Maschine in einer Cloud-Computing-Infrastruktur oder Cloud-Computing-Umgebung arbeiten.
-
Die Maschine kann ein Personal Computer (PC), ein Tablet-PC, eine Set-Top-Box (STB), ein Personal Digital Assistant (PDA), ein Mobiltelefon, eine Web-Anwendung, ein Server, ein Netzwerk-Router, ein Switch oder eine Bridge oder eine beliebige Maschine sein, die in der Lage ist, eine Reihe von Instruktionen (sequenziell oder anderweitig) auszuführen, die die von dieser Maschine auszuführenden Aktionen spezifizieren. Auch wenn eine einzelne Maschine dargestellt ist, umfasst der Begriff „Maschine“ auch eine beliebige Sammlung von Maschinen, die einzeln oder gemeinsam einen Satz (oder mehrere Sätze) von Instruktionen ausführen, um ein oder mehrere der hier erörterten Verfahren durchzuführen.
-
Das beispielhafte Computersystem 700 umfasst eine Verarbeitungsvorrichtung 702, einen Hauptspeicher 704 (z.B. Festwertspeicher (ROM), Flash-Speicher, dynamische Direktzugriffsspeicher (DRAM), wie zum Beispiel synchrone DRAM (SDRAM) oder Rambus DRAM (RDRAM), usw.), statische Speicher 706 (z.B. Flash-Speicher, statische Direktzugriffsspeicher (SRAM), usw.) und ein Datenspeichersystem 718, die über einen Bus 730 miteinander kommunizieren.
-
Die Verarbeitungsvorrichtung 702 repräsentiert eine oder mehrere Mehrzweck-Verarbeitungsvorrichtungen, wie zum Beispiel einen Mikroprozessor, eine zentrale Verarbeitungseinheit oder ähnliches. Insbesondere kann die Verarbeitungsvorrichtung ein CISC-Mikroprozessor (Complex Instruction Set Computing Mikroprozessor), ein RISC-Mikroprozessor (Reduced Instruction Set Computing Mikroprozessor), ein VLIW-Mikroprozessor (Very Long Instruction Word Mikroprozessor) oder ein Prozessor sein, der andere Befehlssätze implementiert, oder ein Prozessor, der eine Kombination von Befehlssätzen implementiert. Bei der Verarbeitungsvorrichtung 702 kann es sich auch um eine oder mehrere spezielle Verarbeitungsvorrichtungen handeln, wie zum Beispiel eine anwendungsspezifische integrierte Schaltung (ASIC), ein feldprogrammierbares Gate-Array (FPGA), einen digitalen Signalprozessor (DSP), einen Netzwerkprozessor oder Ähnliches. Die Verarbeitungsvorrichtung 702 ist ausgestaltet, um Instruktionen 726 zur Durchführung der hier besprochenen Operationen und Schritte auszuführen. Das Computersystem 700 kann außerdem eine Netzwerk-Schnittstellenvorrichtung 708 zur Kommunikation über das Netzwerk 720 enthalten.
-
Das Datenspeichersystem 718 kann ein maschinenlesbares Speichermedium 724 (auch bekannt als computerlesbares Medium, wie zum Beispiel ein nicht-transitorisches computerlesbares Medium) enthalten, auf dem ein oder mehrere Sätze von Instruktionen 726 oder Software gespeichert sind, die eine oder mehrere der hier beschriebenen Verfahren oder Funktionen verkörpern. Die Instruktionen 726 können sich auch vollständig oder zumindest teilweise in dem Hauptspeicher 704 und/oder in der Verarbeitungsvorrichtung 702 befinden, während sie von dem Computersystem 700 ausgeführt werden, wobei der Hauptspeicher 704 und die Verarbeitungsvorrichtung 702 ebenfalls maschinenlesbare Speichermedien darstellen. Das maschinenlesbare Speichermedium 724, das Datenspeichersystem 718 und/oder der Hauptspeicher 704 können dem Speicher-Untersystem 110 aus 1 entsprechen.
-
Obwohl das maschinenlesbare Speichermedium 724 in einem Ausführungsbeispiel als ein einzelnes Medium dargestellt ist, sollte der Begriff „maschinenlesbares Speichermedium“ so verstanden werden, dass er ein einzelnes Medium oder mehrere Medien umfasst, die den einen oder mehrere Sätze von Instruktionen speichern. Der Begriff „maschinenlesbares Speichermedium“ soll auch jedes Medium umfassen, das in der Lage ist, einen Satz von Instruktionen zur Ausführung durch die Maschine zu speichern oder zu kodieren, und das die Maschine veranlasst, ein oder mehrere der Verfahren der vorliegenden Erfindung durchzuführen. Der Begriff „maschinenlesbares Speichermedium“ soll daher Solid-State-Speicher, optische Medien und magnetische Medien umfassen, aber nicht hierauf beschränkt.
-
Einige Teile der vorangehenden detaillierten Beschreibungen wurden in Form von Algorithmen und symbolischen Darstellungen von Operationen an Datenbits in einem Computerspeicher dargestellt. Diese algorithmischen Beschreibungen und Darstellungen werden von Fachleuten auf dem Gebiet der Datenverarbeitung verwendet, um anderen Fachleuten den Inhalt ihrer Arbeit am effektivsten zu vermitteln. Ein Algorithmus wird hier und im Allgemeinen als eine in sich konsistente Folge von Operationen verstanden, die zu einem gewünschten Ergebnis führt. Bei den Operationen handelt es sich um solche, die physische Manipulationen von physikalischen Größen erfordern. Normalerweise, wenn auch nicht notwendigerweise, haben diese Größen die Form von elektrischen oder magnetischen Signalen, die gespeichert, kombiniert, verglichen und anderweitig manipuliert werden können. Zuweilen hat es sich als zweckmäßig erwiesen, diese Signale als Bits, Werte, Elemente, Symbole, Zeichen, Begriffe, Zahlen oder ähnliches zu bezeichnen, hauptsächlich aus Gründen des allgemeinen Sprachgebrauchs.
-
Es sollte jedoch offensichtlich sein, dass alle diese und ähnliche Begriffe mit den entsprechenden physikalischen Größen in Verbindung gebracht werden müssen und lediglich praktische Bezeichnungen für diese Größen sind. Die vorliegende Erfindung kann sich auf die Aktionen und Prozesse eines Computersystems oder einer ähnlichen elektronischen Computervorrichtung beziehen, die Daten, die als physische (elektronische) Größen in den Registern und Speichern des Computersystems dargestellt werden, manipuliert und in andere Daten umwandelt, die in ähnlicher Weise als physikalische Größen in den Speichern oder Registern des Computersystems oder anderen derartigen Informationsspeichersystemen dargestellt werden.
-
Die vorliegende Erfindung bezieht sich auch auf ein Gerät zur Durchführung der hier beschriebenen Operationen. Dieses Gerät kann speziell für die beabsichtigten Zwecke konstruiert sein, oder es kann einen Mehrzweck-Computer umfassen, der durch ein in dem Computer gespeichertes Computerprogramm selektiv aktiviert oder rekonfiguriert wird. Ein solches Computerprogramm kann in einem computerlesbaren Speichermedium gespeichert werden, wie zum Beispiel, aber nicht hierauf beschränkt, jede Art von Disketten, einschließlich Disketten, optische Disketten, CD-ROMs und magnetisch-optische Disketten, Festwertspeicher (ROMs), Direktzugriffsspeicher (RAMs), EPROMs, EEPROMs, magnetische oder optische Karten oder jede Art von Medien, die zum Speichern elektronischer Instruktionen geeignet sind und jeweils mit einem Computer-Systembus verbunden sind.
-
Die hier vorgestellten Algorithmen und Anzeigen sind nicht von Natur aus an einen bestimmten Computer oder ein anderes Gerät gebunden. Verschiedene Mehrzwecksysteme können mit Programmen gemäß den hier dargelegten Lehren verwendet werden, oder es kann sich als zweckmäßig erweisen, ein spezielleres Gerät zur Durchführung der Verfahren zu konstruieren. Die Struktur für eine Vielzahl dieser Systeme wird in der folgenden Beschreibung dargestellt. Darüber hinaus wird die vorliegende Erfindung nicht unter Bezugnahme auf eine bestimmte Programmiersprache beschrieben. Es ist offensichtlich, dass eine Vielzahl von Programmiersprachen verwendet werden kann, um die Lehren der Offenbarung, wie hier beschrieben, zu implementieren.
-
Die vorliegende Erfindung kann als Computerprogrammprodukt oder als Software bereitgestellt werden, die ein maschinenlesbares Medium mit darauf gespeicherten Instruktionen umfassen kann, die zur Programmierung eines Computersystems (oder anderer elektronischer Vorrichtungen) zur Durchführung eines Verfahrens gemäß der vorliegenden Erfindung verwendet werden können. Ein maschinenlesbares Medium umfasst jeden Mechanismus zum Speichern von Informationen in einer Form, die von einer Maschine (z.B. einem Computer) gelesen werden kann. In einigen Ausführungsformen umfasst ein maschinenlesbares (z.B. computerlesbares) Medium ein maschinenlesbares (z.B. computerlesbares) Speichermedium, wie zum Beispiel einen Festwertspeicher („ROM“), einen Direktzugriffsspeicher („RAM“), Magnetplatten-Speichermedien, optische Speichermedien, Flash-Speicherkomponenten, usw.
-
In der vorstehenden Beschreibung wurden Ausführungsformen der Erfindung unter Bezugnahme auf spezifische Ausführungsbeispiele beschrieben. Es ist offensichtlich, dass verschiedene Modifikationen daran vorgenommen werden können, ohne vom breiteren Grundgedanken und Umfang der Ausführungsformen der Erfindung, wie sie in den folgenden Ansprüchen dargelegt ist, abzuweichen. Die Beschreibung und die Zeichnungen sind dementsprechend eher in einem illustrativen als in einem einschränkenden Sinne zu verstehen.