-
HINTERGRUND
-
1. Gebiet der Erfindung
-
Die vorliegende Offenbarung betrifft eine Datencodiervorrichtung, eine Speichersteuerung und ein Speichergerät.
-
2. Beschreibung des Standes der Technik
-
Flüchtige Speichervorrichtungen wie DRAM verlieren alle gespeicherten Informationen, wenn die Stromversorgung ausgeschaltet wird, aber eine nichtflüchtige Speichervorrichtung behält die Informationen auch bei ausgeschalteter Stromversorgung. Daher werden nichtflüchtige Speichervorrichtungen in vielen tragbaren digitalen Produkten verwendet. Bei einem Personal Computer (PC) unter Verwendung von DRAM werden die Informationen beispielsweise auf einer Festplatte gespeichert, wenn die Stromversorgung ausgeschaltet wird.
-
Tragbare Produkte, die klein und leicht sind, können jedoch aufgrund ihrer relativ großen Abmessungen möglicherweise keine Festplatten verwenden. Demzufolge ist die Industrie für nichtflüchtige Speicher sehr wettbewerbsfähig geworden in ihren Bemühungen, nichtflüchtige Speicher mit kleinen Abmessungen zu entwickeln. Dieser Wettbewerb hat zu einem verstärkten Wettbewerb zwischen den Herstellern mobiler Produkte geführt (z.B. Speicherkarten, Digitalkameras, Sprach-/Audiorekorder, Netzwerkvorrichtungen, Mobiltelefone und dergleichen).
-
Angesichts dieser Überlegungen besteht die Notwendigkeit, eine Speichersteuerung bereitzustellen, die als optimal für nichtflüchtige Speicher angesehen wird. Insbesondere besteht ein Bedarf an einer Speichersteuerung, die in der Lage ist, die Leistung und Energieeffizienz eines Speichergeräts, das den nichtflüchtigen Speicher umfasst, zu verbessern, während sie gleichzeitig eine reduzierte Größe aufweist.
-
ZUSAMMENFASSUNG
-
Eine Ausführungsform der vorliegenden Offenbarung stellt eine Datencodiervorrichtung, eine Speichersteuerung und ein Speichergerät bereit, die in der Lage sind, die Leistung und die Energieeffizienz des Speichergeräts weiter zu verbessern und die Fläche weiter zu verringern.
-
Gemäß einer Ausführungsform der vorliegenden Offenbarung kann eine Datencodiervorrichtung umfassen einen Speicher für Rohdaten bzw. Rohdatenspeicher, der eingerichtet ist, um Rohdaten mit einer Gesamtanzahl von 2N Bits zu speichern; einen Speicher für vorhergehende Daten, der eingerichtet ist, um vorhergehende Daten zu speichern, die vor den Rohdaten ausgegeben werden; einen Zähler, der eingerichtet ist, um eine Anzahl von Referenz- bzw. Referenzdatenbits zu zählen, die in den Rohdaten umfasst sind; und eine Datenausgabeschaltung, die eingerichtet ist, um: die Rohdaten gemäß einem Vergleichsergebnis mit den vorhergehenden Daten zu invertieren und auszugeben, wenn die Anzahl von in den Rohdaten umfassten Referenzdatenbits N ist, und die Rohdaten gemäß der Anzahl von in den Rohdaten umfassten Referenzdatenbits zu invertieren und auszugeben, wenn die Anzahl von in den Rohdaten umfassten Referenzdatenbits nicht N ist.
-
Gemäß einer Ausführungsform der vorliegenden Offenbarung kann eine Speichersteuerung aufweisen eine Host-Schnittstelle, die eingerichtet ist, um Daten von einem externen Host zu empfangen; und eine Speicherschnittstelle, die eingerichtet ist, um Umwandlungsdaten, die durch Umwandeln der empfangenen Daten erhalten werden, an eine externe Speichervorrichtung bereitzustellen. Die Speicherschnittstelle kann eingerichtet sein, um Rohdaten mit einer Gesamtanzahl von 2N Bits zu empfangen, die Rohdaten gemäß einem Vergleichsergebnis mit vorhergehenden Daten, die vor den Rohdaten ausgegeben werden, zu invertieren und auszugeben, wenn eine Anzahl von Referenzdatenbits in den Rohdaten N ist, und die Umwandlungsdaten durch Invertieren der Rohdaten gemäß der Anzahl von in den Rohdaten umfassten Referenzdatenbits auszugeben, wenn die Anzahl von in den Rohdaten umfassten Referenzdatenbits nicht N ist.
-
Gemäß einer Ausführungsform der vorliegenden Offenbarung kann ein Speichergerät umfassen eine Speichervorrichtung; und eine Speichersteuerung, die eingerichtet ist, um Umwandlungsdaten, die durch Umwandeln von Daten erhalten werden, die von einem externen Host empfangen werden, an die Speichervorrichtung bereitzustellen. Die Speichersteuerung kann eingerichtet sein, um Rohdaten mit einer Gesamtanzahl von 2N Bits zu empfangen, die Rohdaten gemäß einem Vergleichsergebnis mit vorhergehenden Daten, die vor den Rohdaten ausgegeben werden, zu invertieren und auszugeben, wenn eine Anzahl von in den Rohdaten umfassten Referenzdatenbits N ist, und die Umwandlungsdaten durch Invertieren der Rohdaten gemäß der Anzahl von in den Rohdaten umfassten Referenzdatenbits auszugeben, wenn die Anzahl von in den Rohdaten umfassten Referenzdatenbits nicht N ist.
-
Gemäß einer Ausführungsform der vorliegenden Offenbarung kann ein Verfahren zum Betreiben einer Speichersteuerung umfassen ein Empfangen von Rohdaten mit einer Gesamtzahl von 2N Bits von einem externen Host, ein Umwandeln der Rohdaten durch selektives Invertieren: gemäß einem Vergleichsergebnis mit vorhergehenden Daten, die vor den Rohdaten ausgegeben werden, wenn eine Anzahl von Referenzdatenbits in den Rohdaten N ist, und gemäß der Anzahl von in den Rohdaten umfassten Referenzdatenbits, wenn die Anzahl von in den Rohdaten umfassten Referenzdatenbits nicht N ist; und ein Bereitstellen von umgewandelten Daten an die Speichervorrichtung.
-
Gemäß der vorliegenden Technologie werden eine Datencodiervorrichtung, eine Speichersteuerung und ein Speichergerät bereitgestellt, die in der Lage sind, die Leistung und die Energieeffizienz des Speichergeräts weiter zu verbessern und die Fläche weiter zu reduzieren.
-
KURZBESCHREIBUNG DER ZEICHNUNGEN
-
- 1 stellt eine Ausführungsform eines Speichergeräts dar.
- 2 stellt eine Ausführungsform eines Datencodierers dar.
- 3 bis 6 stellen einen Datencodierungsprozess eines Datencodierers gemäß einer Ausführungsform der vorliegenden Offenbarung und gemäß einem Vergleichsbeispiel dar.
- 7 stellt eine Ausführungsform zum Verarbeiten eines Befehls für einen zugangsbeschränkten Bereich eines Speichergeräts dar.
- 8 stellt ein Beispiel von Informationen über einen zugangsbeschränkten Bereich dar, die in einem Speichergerät gespeichert sind.
- 9 stellt eine Ausführungsform eines Prozesses des Verarbeitens eines Befehls für einen zugangsbeschränkten Bereich eines Speichergeräts dar.
- 10 stellt eine Art von Speicherzellenfeld dar, das vorgeschlagen worden ist.
- 11 stellt eine Ausführungsform eines Speicherzellenfeldes eines Speichergerätes dar.
- 12 stellt eine Ausführungsform eines Pumpspannungsgenerators eines Speichergeräts dar.
- 13 stellt eine Ausführungsform eines Pumpspannungsgenerators und einer Speichervorrichtung in einem Speichergerät dar.
- 14 stellt eine Ausführungsform eines Speichergeräts dar, das auf einen Bus basiert.
- 15 stellt eine Ausführungsform eines Kommunikationsprozesses unter Verwendung eines Busses eines Speichergeräts dar.
- 16 stellt eine Ausführungsform einer elektronischen Vorrichtung dar.
- 17 stellt einen Betrieb einer elektronischen Vorrichtung gemäß einer Ausführungsform der vorliegenden Offenbarung dar.
- 18 stellt eine Ausführungsform eines Speichergeräts dar.
- 19 stellt eine Ausführungsform eines Speichergeräts dar.
- 20 stellt eine Ausführungsform eines Befehlsverarbeitungsprozesses einer Speichersteuerung dar.
- 21 stellt eine Ausführungsform eines Prozesses dar, bei dem ein Abbruchprozessor einer Speichersteuerung einen Abbruchzielbefehl verarbeitet.
- 22 stellt eine Ausführungsform einer elektronischen Vorrichtung dar.
- 23 stellt eine Ausführungsform einer elektronischen Vorrichtung dar.
- 24 stellt eine Ausführungsform eines SSD(Solid State Drive)-Systems mit einem Speichergerät dar.
- 25 stellt eine Ausführungsform eines Benutzersystems mit einem Speichergerät dar.
-
AUSFÜHRLICHE BESCHREIBUNG
-
Spezifische strukturelle oder funktionelle Beschreibungen von Ausführungsformen gemäß dem Konzept, die in der vorliegenden Beschreibung oder Anmeldung offenbart sind, werden nur dargestellt, um die Ausführungsformen gemäß dem Konzept der vorliegenden Offenbarung zu beschreiben. Die Ausführungsformen gemäß dem Konzept der vorliegenden Offenbarung können in verschiedenen Formen ausgeführt werden und sollten nicht derart ausgelegt werden, dass sie auf die in der vorliegenden Beschreibung oder Anmeldung beschriebenen Ausführungsformen beschränkt sind.
-
1 zeigt ein Diagramm, das eine Ausführungsform eines Speichergeräts 50 darstellt, das eine Speichervorrichtung 100, einen Pumpspannungsgenerator 200 und eine Speichersteuerung 1000 umfasst.
-
Die Speichersteuerung 1000 kann eine Host-Schnittstelle 1300, eine Speicherschnittstelle 1100 und einen Layer-Konvertier 1200 umfassen. Die Speichersteuerung 1000 kann einen Gesamtbetrieb des Speichergeräts 50 steuern. Wenn das Speichergerät 50 mit Strom versorgt wird, kann die Speichersteuerung 1000 Firmware (FW) ausführen. Handelt es sich bei der Speichervorrichtung 100 um eine Flash-Speichervorrichtung, kann die Speichersteuerung 1000 Firmware wie eine Flash-Übersetzungsschicht (Flash Translation Layer - FTL) zum Steuern einer Kommunikation zwischen einem Host 2000 und der Speichervorrichtung 100 ausführen.
-
Die Host-Schnittstelle 1300 kann aus Firmware, die einer Host-Schnittstellenschicht (Host Interface Layer - HIL) entspricht, die eine Schnittstelle mit dem Host 2000 verwaltet, und Hardware zur Realisierung der Firmware gebildet sein. Die Host-Schnittstelle 1300 kann mit dem Host 2000 kommunizieren bzw. in Verbindung stehen. In einer Ausführungsform kann die Host-Schnittstelle 1300 mit dem Host 2000 unter Verwendung mindestens eines der verschiedenen Kommunikationsverfahren kommunizieren. Beispiele umfassen Universal Serial Bus (USB), Serial AT Attachment (SATA), Serial Attached SCSI (SAS), High Speed Interchip (HSIC), Small Computer System Interface (SCSI), Peripheral Component Interconnection (PCI), PCI Express (PCIE), Nonvolatile Memory Express (NVME), Compute Express Link (CXL), Universal Flash Storage (UFS), Secure Digital (SD), Multimedia Card (MMC), Embedded MMC (EMMC), Dual In-Line Memory Module (DIMM), Registered DIMM (RDIMM), Load Reduced DIMM (LRDIMM), usw.
-
Die Host-Schnittstelle 1300 kann Anfragen bzw. Anforderungen von dem Host 2000 an den Layer-Konvertierer 1200 bereitstellen. Die Host-Schnittstelle 1300 kann dem Host 2000 ein Ergebnis des Durchführens der von dem Host 2000 empfangenen Anforderungen bereitstellen. Die Host-Schnittstelle 1300 kann eine Befehlsinspektionsvorrichtung 1310 umfassen. Im Betrieb kann die Host-Schnittstelle 1300 eine Zugriffsanforderung von dem Host 2000 auf einen zugangsbeschränkten Bereich 111 innerhalb der Speichervorrichtung 100 auf der Grundlage von Informationen verarbeiten, die von der Befehlsinspektionsvorrichtung 1310 erzeugt werden.
-
Die Speicherschnittstelle 1100 kann aus Firmware, die einer Speicherschnittstellenschicht (Memory Interface Layer - MIL) entspricht, die eine Schnittstelle mit der Speichervorrichtung 100 verwaltet, und Hardware zur Realisierung der Firmware gebildet sein. Die Speicherschnittstelle 1100 kann mit der Speichervorrichtung 100 kommunizieren. Die Speicherschnittstelle 1100 kann an die Speichervorrichtung 100 Befehle bereitstellen, die den vom Layer-Konvertierer 1200 empfangenen Anforderungen entsprechen. Die Speicherschnittstelle 1100 kann ein Ergebnis von Befehlen empfangen, die von der Speichervorrichtung durchgeführt wurden.
-
Die Speicherschnittstelle 1100 kann einen Datencodierer 1110 umfassen, der die von dem Layer-Konvertierer 1200 empfangenen Daten auf der Grundlage eines zuvor gespeicherten Algorithmus oder Codes kodieren kann. Kodierte Daten können an die Speichervorrichtung 100 bereitgestellt werden. Alternativ können Daten durch Dekodieren der von der Speichervorrichtung 100 bereitgestellten Daten bestimmt werden.
-
Darüber hinaus kann die Speicherschnittstelle 1100 eine Fehlerkorrekturvorrichtung (d.h. eine Fehlerprüfungs- und -korrektureinheit (Error Checking and Correction - ECC)) 1120 umfassen. Die Fehlerkorrekturvorrichtung 1120 kann eine Fehlerkorrekturoperation an der Speichervorrichtung 100 gemäß einem zuvor gespeicherten Fehlerkorrekturcode durchführen. In einer Ausführungsform kann die Fehlerkorrekturvorrichtung 1120 einen ECC-Codierer und einen ECC-Decodierer umfassen. Die Fehlerkorrekturvorrichtung 1120 kann eine Fehlerbitkorrektur in einer vorgegebenen Fehlerkorrektur-Leistungseinheit, beispielsweise in einer Chunk-Einheit, durchführen. Der ECC-Codierer kann eine Fehlerkorrekturcodierung von der Speichervorrichtung 100 zugeführten Daten durchführen, um ein Codewort zu erzeugen, dem ein Paritätsbit hinzugefügt wird. Das Codewort kann an die Speichervorrichtung 100 übertragen und dort gespeichert werden. Der ECC-Codierer kann ein Codieren in der Fehlerkorrektur-Leistungseinheit durchführen. Der ECC-Decodierer kann eine Fehlerkorrekturdecodierung an aus der Speichervorrichtung 100 ausgelesenen Daten durchführen und gemäß einem Leistungsergebnis bestimmen, ob die Fehlerkorrekturdecodierung erfolgreich ist. Der ECC-Decodierer kann ein Fehlerbit von Daten unter Verwendung eines Paritätsbits korrigieren. Wenn die Anzahl der Fehlerbits gleich oder größer als eine korrigierbare Fehlerbitgrenze ist, kann der ECC-Decodierer die Fehlerbits nicht korrigieren, und es kann ein Fehlerkorrekturfehler (Fail - Fehler) auftreten.
-
Der Layer-Konvertierer 1200 kann aus Firmware, die einer Umwandlungsschicht entspricht, die eine Umwandlung bzw. Konvertierung zwischen einer Host-Schnittstellenschicht und einer Speicherschnittstellenschicht, wie z.B. einer FTL, verwaltet, und Hardware zur Realisierung der Firmware gebildet sein. Der Layer-Konvertierer 1200 kann eine logische Adresse, die in der Anforderung von dem Host 2000 umfasst ist, in eine physikalische Adresse umwandeln. In einer Ausführungsform kann die physikalische Adresse einen bestimmten Speicherbereich angeben, der in der Flash-Speichervorrichtung umfasst ist.
-
Darüber hinaus kann die Speichersteuerung 1000 einen Bus 1600 umfassen, der eingerichtet ist, um einen Kanal zwischen Komponenten der Speichersteuerung 1000 bereitzustellen. Dabei kann es sich bei jeder der Komponenten um verschiedene Funktionsblöcke handeln, die eingerichtet sind, um eine bestimmte Funktion durchzuführen. Einer oder mehrere der Funktionsblöcke können einen Block für intelligente Eigenschaften (Intelligent Property - IP) umfassen.
-
Die Speichervorrichtung 100 kann Daten speichern und als Antwort auf eine Steuerung der Speichersteuerung 1000 arbeiten. Die Speichervorrichtung 100 kann ein Speicherzellenfeld umfassen, das eine Vielzahl von Daten speichernden Speicherzellen umfasst. Das Speicherzellenfeld kann eine Vielzahl von Speicherblöcken umfassen, und jeder Speicherblock kann eine Vielzahl von Speicherzellen umfassen. Ein Speicherblock kann eine Vielzahl von Seiten umfassen. In einer Ausführungsform kann eine Seite eine Einheit zum Speichern von Daten in der Speichervorrichtung 100 oder zum Lesen von in der Speichervorrichtung 100 gespeicherten Daten sein. Ein Speicherblock kann eine Einheit zum Löschen von Daten sein.
-
Die Speichervorrichtung 100 kann beispielsweise ein synchroner dynamischer Direktzugriffsspeicher mit doppelter Datenrate (DDR-SDRAM - Double Data Rate Synchronous Dynamic Random Access Memory), ein SDRAM mit doppelter Datenrate der vierten Generation mit niedriger Leistung (LPDDR4 - Low Power Double Data Rate4), ein Grafik-SDRAM mit doppelter Datenrate (GDDR - Graphics Double Data Rate), ein DDR mit niedriger Leistung (LPDDR - Low Power DDR)), ein dynamischer Rambus-Direktzugriffsspeicher (RDRAM - Rambus Dynamic Random Access Memory), ein NAND-Flash-Speicher, ein vertikaler NAND-Flash-Speicher, ein NOR-Flash-Speicher, ein resistiver Direktzugriffsspeicher (RRAM - Resistive RAM), ein Phasenwechselspeicher (PRAM - Phase-Change Memory), ein magnetoresistiver Direktzugriffsspeicher (MRAM - Magnetoresistive RAM), ein ferroelektrischer Direktzugriffsspeicher (FRAM - Ferroelectric RAM) oder ein Spin-Transfer-Torque-Direktzugriffsspeicher (STT-RAM) oder dergleichen sein.
-
In einer Ausführungsform kann die Speichervorrichtung 100 in einer dreidimensionalen Array-Struktur realisiert sein. Die vorliegende Offenbarung kann nicht nur auf eine Flash-Speichervorrichtung angewandt werden, bei der eine Ladungsspeicherschicht aus einem leitfähigen Floating-Gate (FG) gebildet ist, sondern auch auf einen Charge-Trap-Flash (CTF), bei dem die Ladungsspeicherschicht aus einer Isolierschicht gebildet ist. In einer Ausführungsform kann jede der in der Speichervorrichtung 100 umfassten Speicherzellen als Single-Level-Zelle (Single Level Cell - SLC), die ein Datenbit speichern kann, ausgeführt sein. Alternativ kann jeder der in der Speichervorrichtung 100 umfassten Speicherzellen als eine Multi-Level-Zelle (Multi Level Cell - MLC), die zwei Datenbits speichern kann, als Triple-Level-Zelle (Triple Level Cell - TLC), die drei Datenbits speichern kann, oder als Quad-Level-Zelle (Quad Level Cell - QLC), die vier Datenbits speichern kann, ausgeführt sein. Die Speichervorrichtung 100 ist eingerichtet, um einen Befehl und eine Adresse von der Speichersteuerung 1000 zu empfangen und auf einen durch die Adresse ausgewählten Bereich in dem Speicherzellenfeld zuzugreifen. Zum Beispiel kann die Speichervorrichtung 100 eine dem Befehl entsprechende Operation in dem durch die Adresse ausgewählten Bereich durchführen.
-
Zum Beispiel kann die Speichervorrichtung 100 eine Schreiboperation (Programmieroperation), eine Leseoperation und eine Löschoperation durchführen. Während der Programmieroperation kann die Speichervorrichtung 100 Daten in dem durch die Adresse ausgewählten Bereich programmieren. Während der Leseoperation kann die Speichervorrichtung 100 Daten aus dem durch die Adresse ausgewählten Bereich lesen. Während der Löschoperation kann die Speichervorrichtung 100 die in dem durch die Adresse ausgewählten Bereich gespeicherten Daten löschen.
-
Die Speichervorrichtung 100 kann den zugangsbeschränkten Bereich 111 umfassen, bei dem es sich um einen Bereich handeln kann, in dem ein Zugriff von einer externen Vorrichtung oder einem externen System beschränkt ist. Der zugangsbeschränkte Bereich 111 kann voreingestellt werden, wenn die Speichervorrichtung hergestellt wird, oder kann von dem Host festgelegt werden. Zu diesem Zeitpunkt kann in dem zugangsbeschränkten Bereich 111 sowohl ein Schreiben als auch ein Lesen beschränkt sein, oder nur ein Schreiben kann beschränkt sein.
-
Darüber hinaus können in der Speichervorrichtung 100 Informationen über fehlerhafte Bitleitungen gespeichert werden. Die Informationen über fehlerhafte Bitleitungen können Informationen über fehlerhafte Bitleitungen in Bezug auf eine während der Herstellung der Speichervorrichtung durchgeführten Prüfoperation umfassen. Auf der Grundlage der Informationen über fehlerhafte Bitleitungen kann den in der Speichervorrichtung 100 umfassten Bitleitungen eine Adresse zugewiesen werden.
-
Der Pumpspannungsgenerator 200 kann der Speichervorrichtung 100 eine Pumpspannung zuführen. Die Pumpspannung kann eine relativ hohe Spannung sein, die durch Pumpen einer relativ niedrigen Spannung ausgegeben wird. Der Pumpspannungsgenerator des Speichergeräts 50 gemäß einer Ausführungsform der vorliegenden Offenbarung kann außerhalb der Speichervorrichtung 100 anstelle innerhalb der Speichervorrichtung 100 angeordnet sein.
-
Der Host 2000 kann mit dem Speichergerät 50 unter Verwendung mindestens eines von verschiedenen Kommunikationsverfahren kommunizieren. Beispiele umfassen Universal Serial Bus (USB), Serial AT Attachment (SATA), Serial Attached SCSI (SAS), High Speed Interchip (HSIC), Small Computer System Interface (SCSI), Peripheral Component Interconnection (PCI), PCI Express (PCIE), Nonvolatile Memory Express (NVME), Compute Express Link (CXL), Universal Flash Storage (UFS), Secure Digital (SD), Multimedia Card (MMC), Embedded MMC (EMMC), Dual In-Line Memory Module (DIMM), Registered DIMM (RDIMM), Load Reduced DIMM (LRDIMM).
-
Das Speichergerät 50 kann gemäß der Host-Schnittstelle, bei der es sich um ein Kommunikationsverfahren mit dem Host 2000 handelt, als eine beliebige von verschiedenen Arten von Speichergeräten hergestellt werden. Beispielsweise kann das Speichermodul 1100 ausgeführt sein als eines von einem Solid-State-Laufwerk (SSD), einer Multi-Media-Karte in Form einer MMC, einer eMMC, einer RS-MMC, einer Micro-MMC, einer Secure Digital Card in Form einer SD, einer Mini-SD oder einer Micro-SD, einer USB-(Universal Serial Bus)-Speichervorrichtung, einer UFS-(Universal Flash Storage)-Vorrichtung, einem PCMCIA (Personal Computer Memory Card International Association)-Speichergerät vom Kartentyp, einem PCI (Peripheral Component Interconnection)-Speichergerät vom Kartentyp, einem PCI-E (PCI Express)-Speichergerät vom Kartentyp, einer CF(Compact Flash)-Karte, einer Smart Media Card (SMC) und einem Memory-Stick.
-
Das Speichergerät 50 kann als eines von verschiedenen Packages bzw. Verpackungen hergestellt werden. So kann das Speichergerät 50 beispielsweise als eines von einem Package-on-Package (POP), System-in-Package (SIP), System-on-Chip (SOC), Multi-Chip-Package (MCP), Chip-on-Board (COB), Wafer-Level-Fabricated Package (WFP) oder Wafer-Level-Stack-Package (WSP) hergestellt werden.
-
2 zeigt ein Diagramm, das eine Ausführungsform eines Datencodierers 1110 darstellt, der einen Rohdatenspeicher 1111, einen Zähler 1112, einen Speicher für vorhergehende Daten 1113 und eine Datenausgabeschaltung 1114 umfassen kann.
-
Der Rohdatenspeicher 1111 kann Rohdaten Rohdaten von einer externen Quelle empfangen. Die Gesamtzahl der Bits von Rohdaten kann 2N betragen.
-
Der Zähler 1112 kann die Anzahl von Referenzdatenbits zählen, die in den in dem Rohdatenspeicher 1111 gespeicherten Rohdaten umfasst sind. Der Stromverbrauch des Referenzdatenbits kann geringer sein als der Stromverbrauch eines anderen Bits als dem Referenzdatenbit. In einer Ausführungsform kann das Referenzdatenbit ein Signal mit niedrigem Pegel sein.
-
Der Speicher 1113 für vorhergehende Daten kann vorhergehende Daten speichern, die vor den Rohdaten ausgegeben werden. Zum Beispiel können sich die vorhergehenden Daten auf Daten beziehen, die in die Datencodiervorrichtung 1100 eingegeben und von der Datencodiervorrichtung 1100 vor den Rohdaten ausgegeben werden. Dementsprechend kann ein Ausgabe- bzw. Ausgangswert der Datenausgabeschaltung 1114 an einen Eingangsanschluss des Speichers 1113 für vorhergehende Daten zurückgeführt werden.
-
Die Datenausgabeschaltung 1114 kann die Rohdaten aus dem Rohdatenspeicher 1111 empfangen und bestimmen, ob die Rohdaten zu invertieren sind. Darüber hinaus kann die Datenausgabeschaltung 1114 abhängig davon, ob die Rohdaten zu invertieren sind, die Rohdaten invertieren oder nicht und ausgeben. Ob die Rohdaten zu invertieren sind, kann beispielsweise auf der Grundlage der Anzahl (oder Information) der Bits bestimmt werden, die dem Referenzdatenbit unter den in den Rohdaten umfassten Bits entsprechen.
-
In einer Ausführungsform, wenn die Gesamtzahl der Bits von Rohdaten 2N beträgt, kann eine Bestimmung, ob Daten zu invertieren sind, auf der Grundlage erfolgen, ob die Anzahl der Bits, die dem Referenzdatenbit unter den Bits, die in den kodierten und ausgegebenen Daten (Umwandlungsdaten) umfasst sind, N übersteigt. Wenn zum Beispiel die Anzahl der Bits, die dem Referenzdatenbit unter den in den Rohdaten umfassten Bits entspricht, kleiner als N ist, kann die Datenausgabeschaltung 1114 die Rohdaten invertieren und ausgeben. Wenn die Anzahl der Bits, die dem Referenzdatenbit unter den in den Rohdaten umfassten Bits entspricht, größer als N ist, kann die Datenausgabeschaltung 1114 die Rohdaten nicht invertieren und ausgeben. Die Anzahl der Bits, die den Referenzdatenbits entsprechen, kann durch den Zähler 1112 gezählt werden, und die gezählte Anzahl der Referenzdatenbits kann an die Datenausgabeschaltung 1114 bereitgestellt werden.
-
Wenn die Anzahl der Bits, die den Referenzdatenbits unter den in den Rohdaten umfassten Bits entsprechen, N ist, kann die Datenausgabeschaltung 1114 unter Berücksichtigung von vorhergehenden Daten, die vor aktuellen Rohdaten ausgegeben werden, bestimmen, ob die Daten invertiert werden sollen. Die Datenausgabeschaltung 1114 kann die vorhergehenden Daten von einem Speicher 1113 für vorhergehende Daten empfangen, um zu bestimmen, ob die Daten zu invertieren sind. In einer Ausführungsform kann die Datenausgabeschaltung 1114 bestimmen, ob die aktuellen Rohdaten zu invertieren sind, damit ein Bitübergang (z.B. ein Toggle) zu den aktuellen Daten, die aus den vorhergehenden Daten ausgegeben werden sollen, reduziert oder minimiert wird. Gemäß einer Ausführungsform kann die Datenausgabeschaltung 1114 beispielsweise invertieren oder nicht invertieren und die Daten in einer Richtung ausgeben, um den Stromverbrauch durch Auswahl eines Ausgangsbits und Minimierung eines Toggles weiter zu reduzieren.
-
3 bis 6 zeigen Diagramme, die einen Datencodierungsprozess eines Datencodierers gemäß einer Ausführungsform der vorliegenden Offenbarung und eines Vergleichsbeispiels darstellen. Genauer gesagt stellen 3, 4 und 6 einen Betrieb des Datencodierers gemäß einer Ausführungsform der vorliegenden Offenbarung dar, und 5 stellt einen Betrieb eines Datencodierers gemäß einem Vergleichsbeispiel dar.
-
Unter Bezugnahme auf 3 kann der Datencodierer 1110 8 Bits von „01010111“ als Rohdaten empfangen. Zu diesem Zeitpunkt kann das Referenzdatenbit 0 sein, was das Signal mit niedrigem Pegel ist. Somit beträgt die Anzahl von Bits, die dem in den Rohdaten umfassten Referenzdatenbit entsprechen, 3. Da die Anzahl von Bits, die dem Referenzdatenbit unter den in den Rohdaten umfassten Bits entsprechen, weniger als 4 beträgt (was der Hälfte der Gesamtanzahl von Bits entspricht), kann der Datencodierer 1110 daher bestimmen, die Rohdaten zu invertieren. Dementsprechend können die Rohdaten invertiert und als „10101000“ ausgegeben werden. In diesem Fall beträgt die Anzahl von Bits, die den in den ausgegebenen Umwandlungsdaten umfassten Referenzdatenbits entspricht, 5, was mehr als 4 ist, was der Hälfte der Gesamtbitzahl entspricht. Darüber hinaus kann ein Daten-Flag-Signal DBI 1 sein, was einem Wert entspricht, der eine Datenumwandlung angibt.
-
Unter Bezugnahme auf 4 kann der Datencodierer 1110 8 Bits von „01010100“ als Rohdaten empfangen. Zu diesem Zeitpunkt kann das Referenzdatenbit 0 sein, was das Signal mit niedrigem Pegel ist. Somit beträgt die Anzahl von Bits, die dem in den Rohdaten umfassten Referenzdatenbit entsprechen, 5. Da die Anzahl von Bits, die dem Referenzdatenbit unter den in den Rohdaten umfassten Bits entsprechen, 4 übersteigt (was der Hälfte der Gesamtanzahl von Bits entspricht), kann der Datencodierer 1110 daher bestimmen, die Rohdaten nicht zu invertieren. Dementsprechend können die Rohdaten als „01010100“ ausgegeben werden, ohne invertiert zu werden. In diesem Fall beträgt die Anzahl von Bits, die den in den ausgegebenen Umwandlungsdaten umfassten Referenzdatenbits entspricht, 5, was mehr ist als 4, was der Hälfte der Gesamtanzahl von Bits entspricht. Darüber hinaus kann das Daten-Flag-Signal DBI 0 sein, was einem Wert entspricht, der eine Nicht-Invertierung von Daten angibt.
-
Unter Bezugnahme auf 5 kann der Datencodierer 1110 8 Bits von „01010101“ als die aktuellen Rohdaten empfangen. Zu diesem Zeitpunkt kann das Referenzdatenbit 0 sein, was das Signal mit niedrigem Pegel ist. Somit beträgt die Anzahl von Bits, die dem in den Rohdaten umfassten Referenzdatenbit entsprechen, 4. Wenn zu diesem Zeitpunkt bestimmt wird, ob die Rohdaten ohne Berücksichtigung der zuvor ausgegebenen Daten invertiert werden sollen, kann der Datencodierer 1110 bestimmen, die Rohdaten zu invertieren, da die Anzahl der Bits, die dem Referenzdatenbit unter den in den Rohdaten umfassten Bits entsprechen, 4 oder mehr beträgt (was der Hälfte der Gesamtanzahl der Bits entspricht). Dementsprechend können die Rohdaten invertiert und als „10101000“ (aktuelle Daten) ausgegeben werden. Da die zuvor ausgegebenen Daten (vorhergehende Daten) zu diesem Zeitpunkt „10101010“ sind, kann ein Toggle von den vorhergehenden Daten zu den aktuellen Daten 8 Bits betragen. Wie in 5 gezeigt, wenn es bestimmt wird, ob die Daten ohne Berücksichtigung der zuvor ausgegebenen Daten invertiert werden sollen, kann das Verhältnis des Toggles erhöht werden, und somit kann ein unnötiger Stromverbrauch verursacht werden.
-
Unter Bezugnahme auf 6 kann der Datencodierer 1110 8 Bits von „01010101“ als die aktuellen Rohdaten empfangen. Zu diesem Zeitpunkt kann das Referenzdatenbit 0 sein, was das Signal mit niedrigem Pegel ist. Die Anzahl von Bits, die dem in den Rohdaten umfassten Referenzdatenbit entsprechen, beträgt somit 4. Zu diesem Zeitpunkt kann der Datencodierer 1110 gemäß einer Ausführungsform der vorliegenden Offenbarung die zuvor ausgegebenen Daten berücksichtigen, wenn er bestimmt, ob die Daten zu invertieren sind. Das heißt, da die Anzahl von Bits, die dem Referenzdatenbit unter den in den Rohdaten umfassten Bits entspricht, 4 beträgt (was die Hälfte der Gesamtzahl der Bits ist), kann die Anzahl von Bits, die dem Referenzdatenbit unter den in den Ausgabeumwandlungsdaten umfassten Bits entspricht, gleich 4 sein, unabhängig davon, ob dies invertiert oder nicht invertiert ist. Daher kann in diesem Fall unter Berücksichtigung der zuvor ausgegebenen Daten bestimmt werden, ob die Rohdaten zu invertieren sind, und es kann bestimmt werden, ob die Rohdaten zu invertieren sind, so dass ein Bitübergang von den zuvor ausgegebenen Daten zu den aktuell ausgegebenen Daten reduziert oder minimiert wird. Da die zuvor ausgegebenen Daten (vorhergehende Daten) in 6 „10101010“ sind, ist ein Toggle-Bit 8, wenn aktuell eingegebene Rohdaten invertiert sind, und das Toggle-Bit ist 0, wenn die aktuell eingegebenen Rohdaten nicht invertiert sind. Daher kann der Datencodierer 1110 gemäß einer Ausführungsform der vorliegenden Offenbarung bestimmen, die Rohdaten nicht zu invertieren. Das heißt, wenn die Umwandlungsdaten (aktuelle Daten), die gemäß dem Datencodierer 1110 von 6 gemäß einer Ausführungsform der vorliegenden Offenbarung ausgegeben werden, mit denen von 5 verglichen werden, kann die Anzahl der Referenzdatenbits gleich 4 sein. Da jedoch die Anzahl von Toggles von 6 wesentlich geringer ist als die von 5, kann 6 in Bezug auf die Reduzierung des Stromverbrauchs vorteilhaft sein.
-
7 zeigt ein Diagramm, das ein Verarbeiten eines Befehls für einen zugangsbeschränkten Bereich eines Speichergeräts gemäß einer Ausführungsform der vorliegenden Offenbarung darstellt.
-
Unter Bezugnahme auf die 1 und 7 kann die Speichervorrichtung 100 den zugangsbeschränkten Bereich 111 umfassen. Der zugangsbeschränkte Bereich 111 kann von dem Host 2000 voreingestellt oder bezeichnet werden und kann somit ein Bereich sein, auf den ein Zugang bzw. Zugriff beschränkt ist. In dem zugangsbeschränkten Bereich 111 können sowohl Schreib- als auch Leseoperationen oder nur die Schreiboperationen eingeschränkt sein.
-
Die Speichersteuerung 1000 kann einen Befehl von dem Host 2000 empfangen. Nach einem Überprüfen des Befehls in der Befehlsinspektionsvorrichtung 1310 in Bezug auf den empfangenen Befehl kann die Speichersteuerung 1000 den Befehl in eine Übermittlungswarteschlange 1350 in der Speichersteuerung 1000 einreihen. Die Befehlsinspektionsvorrichtung 1310 kann einen Informationsspeicher 1311 für den zugangsbeschränkten Bereich umfassen. Der Informationsspeicher 1311 für den zugangsbeschränkten Bereich kann Informationen über den zugangsbeschränkten Bereich 111 umfassen. Die Informationen über den zugangsbeschränkten Bereich 111 können sich zum Beispiel auf eine Adresse des zugangsbeschränkten Bereichs beziehen. Wenn der Befehl von dem Host 2000 bereitgestellt wird, kann die Befehlsinspektionsvorrichtung 1310 zunächst auf der Grundlage der in dem Informationsspeicher 1311 für den zugangsbeschränkten Bereich 111 gespeicherten Informationen über den zugangsbeschränkten Bereich 111 prüfen, ob es sich um einen Befehl handelt, der den Zugang zum zugangsbeschränkten Bereich 111 anfordert. Wenn es sich bei dem Befehl von dem Host 2000 um einen Befehl handelt, der den Zugang zum zugangsbeschränkten Bereich 111 anfordert, kann die Befehlsinspektionsvorrichtung 1310 Informationen erzeugen, die angeben, dass es sich bei dem entsprechenden Befehl um einen Befehl handelt, der den Zugang zum zugangsbeschränkten Bereich 111 anfordert, und kann diese Informationen an die Übermittlungswarteschlange 1350 bereitstellen. Die Information, die angibt, dass es sich bei dem Befehl von dem Host 2000 um einen Befehl handelt, der den Zugang anfordert, kann in Form eines Berichtscodes des entsprechenden Befehls bereitgestellt werden. Die Übermittlungswarteschlange 1350 kann den Befehl, für den die Information, die angibt, dass es sich bei dem Befehl von dem Host 2000 um den Befehl handelt, der den Zugriff auf den zugangsbeschränkten Bereich 111 anfordert, erzeugt wird, nicht verarbeiten und kann ihn verwerfen, und die Speichersteuerung 1000 kann an den Host 2000 eine Antwort bereitstellen, die einen Fehler angibt.
-
8 zeigt ein Beispiel, das Informationen über einen zugangsbeschränkten Bereich darstellt, der in einem Speichergerät gemäß einer Ausführungsform der vorliegenden Offenbarung gespeichert ist.
-
Unter Bezugnahme auf 7 und 8 können die in dem Informationsspeicher 1311 für den zugangsbeschränkten Bereich gespeicherten Informationen über den zugangsbeschränkten Bereich 111 Informationen über eine logische Adresse des zugangsbeschränkten Bereichs für jede einer Vielzahl von LUNs (Logical Unit Numbers) umfassen. In einer Ausführungsform kann eine Vielzahl von diskontinuierlichen zugangsbeschränkten Bereichen in Bezug auf eine LUN festgelegt werden. In Bezug auf eine LUN kann ein zugangsbeschränkter Bereich, der mit kontinuierlichen logischen Adressen ausgeführt ist, mit einem Monitor ausgebildet werden, und die Informationen über den zugangsbeschränkten Bereich 111 können in Form einer Tabelle gespeichert werden, die aus einer Vielzahl von Monitoren besteht. Jeder der Monitore kann, ob ein entsprechender Monitor geprüft wird (ENABLE), eine entsprechende LUN und eine logische Startadresse (START LA) und eine letzte logische Adresse (END LA) des zugangsbeschränkten Bereichs umfassen. Das heißt, wenn die Speichersteuerung 1000 den Befehl empfängt, kann die Befehlsinspektionsvorrichtung 1310 Informationen über einen aktivierten Monitor aus dem Informationsspeicher 1311 für den zugangsbeschränkten Bereich prüfen und kann unter den Monitoren denselben Monitor wie eine LUN des empfangenen Befehls finden. Wenn ein Monitor, der eine logische Adresse angibt, die sich mit einer logischen Adresse des Befehls überschneidet, unter den Monitoren vorhanden ist, die dieselbe LUN wie der empfangene Befehl aufweisen, kann die Befehlsinspektionsvorrichtung 1310 bestimmen, dass der entsprechende Befehl der Befehl ist, der den Zugriff auf den zugangsbeschränkten Bereich 111 anfordert.
-
9 zeigt ein Flussdiagramm, das einen Prozess des Verarbeitens eines Befehls für einen zugangsbeschränkten Bereich eines Speichergeräts gemäß einer Ausführungsform der vorliegenden Offenbarung darstellt.
-
Unter Bezugnahme auf 7 und 9 kann die Speichersteuerung 1000 in Operation S901 den Befehl von dem Host 2000 empfangen. Die Befehlsinspektionsvorrichtung 1310 kann die aktivierten Monitore in der in dem Informationsspeicher 1311 für den zugangsbeschränkten Bereich gespeicherten Tabelle überprüfen und kann die Monitore, die dieselbe LUN wie die LUN des Befehls aufweisen, unter den Monitoren finden (Vorgang S903). Danach kann die Befehlsinspektionsvorrichtung 1310 in Operation S905 die logische Startadresse START LA und die letzte logische Adresse END LA, die von den Monitoren, die die gleiche LUN wie die LUN des Befehls aufweisen, angegeben werden, mit der logischen Adresse des Befehls vergleichen. Wenn als Ergebnis des Überprüfens in Operation S907 ein Bereich der logischen Adresse, die von den Monitoren angegeben wird, einen Bereich der logischen Adresse des Befehls überlappt (Hit), können Informationen, die angeben, dass der entsprechende Befehl den zugangsbeschränkten Bereich trifft (z.B. Informationen, die angeben, dass der entsprechende Befehl einer ist, der den Zugriff auf den zugangsbeschränkten Bereich 111 anfordert), an die Übermittlungswarteschlange 1350 in Form des Berichtscodes (S909) bereitgestellt werden.
-
10 zeigt ein Diagramm, das eine Art von Speicherzellenfeld darstellt, das vorgeschlagen worden ist. Unter Bezugnahme auf 10 umfasst das Speicherzellenfeld 110 von 10 einen Hauptbereich, einen Reservebereich und einen Redundanzbereich. Eine Bitleitung, die gemäß einem Testergebnis für den Hauptbereich ausgefallen ist, kann durch eine Bitleitung eines Redundanzbereichs (Redundancy, Red.) ersetzt werden. Das Speicherzellenfeld einer in 10 gezeigten Form weist jedoch den Nachteil auf, dass sich die Fläche des Speicherzellenfeldes durch einen separaten Redundanzbereich vergrößert.
-
11 zeigt ein Diagramm, das ein Speicherzellenfeld 110 eines Speichergeräts gemäß einer Ausführungsform der vorliegenden Offenbarung darstellt.
-
Unter Bezugnahme auf 11 kann das Speicherzellenfeld 110 nur einen Hauptbereich und einen Reservebereich umfassen, aber keinen Redundanzbereich. In diesem Fall kann eine Fehlerkorrekturoperation durch eine Fehlerkorrekturvorrichtung 1120 in einem Bereich, in dem die Fehlerbitleitungen dicht sind, nicht ordnungsgemäß durchgeführt werden. Die Fehlerkorrekturoperation durch die Fehlerkorrekturvorrichtung 1120 kann in einer vorgegebenen Fehlerkorrektur-Leistungseinheit, zum Beispiel in einer Chunk-Einheit, durchgeführt werden. Wenn die Anzahl von Fehlerbits während eines Durchführens der Fehlerkorrekturoperation durch die Fehlerkorrekturvorrichtung gleich oder größer als die korrigierbare Fehlerbitgrenze ist, kann die Fehlerkorrekturvorrichtung 1120 die Fehlerbits nicht korrigieren, und es kann ein Fehlerkorrekturfehler (Fail) auftreten. Wenn zum Beispiel die Fehlerbitleitung durch die Testoperation in einer bestimmten Fehlerkorrektur-Leistungseinheit konzentriert ist, erhöht sich die Wahrscheinlichkeit, dass die Anzahl von Fehlerbits in der Fehlerkorrektur-Leistungseinheit gleich oder größer als die korrigierbare Fehlerbitgrenze ist, und somit erhöht sich die Wahrscheinlichkeit, dass ein Fehlerkorrekturfehler auftritt. Daher kann in dem Falle des Speicherzellenfeldes 110 von 11 die Adresse der Fehlerbitleitung neu geordnet werden. Insbesondere können die Adressen der Fehlerbitleitung neu angeordnet werden, so dass die Anzahl von Fehlerbitleitungen, die für jede Fehlerkorrektur-Leistungseinheit umfasst ist, gleich ist. Zum Beispiel kann die Adresse der Fehlerbitleitung derart neu angeordnet werden, dass die Anzahl von in jeder Fehlerkorrektur-Leistungseinheit umfassten Fehlerbitleitungen gleich ist oder eine Differenz zwischen den Anzahlen von in verschiedenen Fehlerkorrektur-Leistungseinheiten umfassten Fehlerbitleitungen 1 nicht überschreitet. Informationen über die Adresse von Bit-Leitungen, die wie oben beschrieben neu angeordnet wurden, können in einem Teilbereich in dem Speicherzellenfeld 110 gespeichert werden. Die Speichersteuerung 1000 kann auf der Grundlage der Informationen über die Adresse der gespeicherten Bitleitungen eine Operation an der Speichervorrichtung 100 durchführen.
-
Dementsprechend kann die Fläche des Speicherzellenfeldes 110 von 11 reduziert werden, wenn der Redundanzbereich des Speicherzellenfeldes 110 entfernt wird, und die Wahrscheinlichkeit, dass der Fehlerkorrekturfehler während der Fehlerkorrekturoperation an dem Speicherzellenfeld 110 auftritt, kann nicht zunehmen.
-
12 zeigt ein Diagramm, das einen Pumpspannungsgenerator eines Speichergeräts gemäß einer Ausführungsform der vorliegenden Offenbarung darstellt.
-
Unter Bezugnahme auf 12 kann der Pumpspannungsgenerator 200 eine Eingangsspannung VCC oder eine Referenz- (z.B. Masse-) Spannung GND unter der Steuerung der Speichersteuerung 1000 empfangen. Der Pumpspannungsgenerator 200 kann auf der Grundlage solcher Eingangswerte eine Pumpspannung VPP erzeugen und kann die Pumpspannung VPP an die Speichervorrichtung 100 zuführen. Darüber hinaus kann der Pumpspannungsgenerator 200 ein Bereitschafts-Besetzt-Signal RBn von der Speichervorrichtung 100 empfangen und kann gemäß dem empfangenen Bereitschafts-Besetzt-Signal bestimmen, ob die Pumpspannung Vpp erzeugt werden soll. Zum Beispiel bedeutet in einem Fall, in dem sich das Bereitschafts-Besetzt-Signal auf einem niedrigen Pegel befindet (d.h. in einem Fall, in dem das Bereitschafts-Besetzt-Signal angibt, dass sich die Speichervorrichtung in einem Besetzt-Zustand befindet), der Fall, dass in der Speichervorrichtung eine Operation durchgeführt wird. Da also eine Betriebsspannung für die Speichervorrichtung verwendet werden soll, kann der Pumpspannungsgenerator 200 die Pumpspannung VPP erzeugen und an die Speichervorrichtung 100 die Pumpspannung VPP zuführen. Andererseits kann der Pumpspannungsgenerator 200 in einem Fall, in dem das Bereitschafts-Besetzt-Signal auf einem hohen Pegel liegt (z.B. in einem Fall, in dem das Bereitschafts-Besetzt-Signal angibt, dass die Speichervorrichtung in einem Bereitschaftszustand ist), da die Betriebsspannung nicht für die Speichervorrichtung verwendet werden kann, die Pumpspannung nicht erzeugen, ein Ausgang des Pumpspannungsgenerators 200 wird abgeschaltet, und nur ein reduzierter oder minimaler Strom fließt in dem Pumpspannungsgenerator 200. Das heißt, da der Pumpspannungsgenerator 200 des Speichergeräts 50 gemäß einer Ausführungsform der vorliegenden Offenbarung außerhalb des Speichervorrichtung 100 angeordnet ist, kann die Fläche des Speichervorrichtung 100 nicht unnötig vergrößert werden. Darüber hinaus kann durch ein Erzeugen der Pumpspannung gemäß dem von der Speichervorrichtung 100 empfangenen Bereitschafts-Besetzt-Signal das Problem vermieden werden, dass eine Pumpspannung unnötig erzeugt wird (und somit ein Strom auch dann austritt, wenn die Speichervorrichtung 100 nicht betrieben wird).
-
13 zeigt ein Diagramm, das einen Pumpspannungsgenerator 200 und eine Speichervorrichtung 100 in einem Speichergerät 50 gemäß einer Ausführungsform der vorliegenden Offenbarung darstellt. Unter Bezugnahme auf die 1 und 13 kann das Speichergerät 50 den Pumpspannungsgenerator 200 und die Speichervorrichtung 100 umfassen.
-
Die Speichervorrichtung 100 kann ein Speicherzellenfeld 110, einen Spannungsgenerator 120, einen Adressendecoder 130, eine Eingangs-/Ausgangsschaltung 140 und eine Steuerlogik 150 umfassen. Das Speicherzellenfeld 110 kann eine Vielzahl von Speicherblöcken umfassen, die über Zeilenleitungen RL mit dem Adressendecoder 130 verbunden sind. Die Speicherblöcke können über Spaltenleitungen CL mit der Eingangs-/Ausgangsschaltung 140 verbunden sein. In einer Ausführungsform können die Zeilenleitungen RL Wortleitungen, Source-Auswahlleitungen und Drain-Auswahlleitungen umfassen. In einer Ausführungsform können die Spaltenleitungen CL Bitleitungen umfassen. Zu diesem Zeitpunkt kann eine Adresse der Bitleitungen neu angeordnet werden, so dass Bitleitungen Fail BLy, an denen die Testoperation fehlgeschlagen ist, einheitlich für jede Fehlerkorrektur-Leistungseinheit umfasst sind. Die Fehlerkorrektur-Leistungseinheit kann eine voreingestellte Einheit sein, in der die Fehlerkorrekturvorrichtung 1120 eine Fehlerkorrektur durchführt. Informationen über die Adresse der oben beschriebenen neu angeordneten Bitleitungen können in dem Speicherzellenfeld 110 umfasst sein.
-
In einer Ausführungsform kann das Speicherzellenfeld 110 ein oder mehrere Speicherchips bzw. Speicherdies umfassen. Jeder Speicherchip kann eine oder mehrere Ebenen umfassen, die einen oder mehrere Speicherblöcke umfassen. Darüber hinaus kann eine Vielzahl von Speicherblöcken, die in dem Speicherzellenfeld 110 umfasst sind, in zwei oder mehr Superblöcke gruppiert werden. Ein Superblock kann eine Einheit sein, in der die Steuerlogik 150 die Vielzahl von Speicherblöcken BLK, die in dem Speicherzellenfeld 110 umfasst sind, verwaltet. Ein Superblock kann (a) ein Satz von Speicherblöcken sein, in denen eine Leseoperation, eine Schreiboperation und/oder dergleichen gleichzeitig oder zur gleichen Zeit durchgeführt wird, oder die Leseoperation, die Schreiboperation und/oder dergleichen in Verbindung miteinander oder in Bezug aufeinander durchgeführt wird, (b) ein Satz von Speicherblöcken, in denen die Leseoperation, die Schreiboperation und/oder dergleichen in Bezug auf einen Befehl durchgeführt wird/werden, oder (c) ein Satz von Speicherblöcken, in denen die Leseoperation, die Schreiboperation und/oder dergleichen in Verbindung miteinander oder gleichzeitig in dem Speicherzellenfeld 110 durchgeführt wird/werden. Darüber hinaus kann eine Gruppe von Speicherblöcken unter der Vielzahl von Speicherblöcken, die voneinander unterschieden werden, aus einer Verwaltungs- oder Betriebssichtweise als Superblock bezeichnet werden.
-
Jeder der Vielzahl von Speicherblöcken BLK1 bis BLKi kann eine Vielzahl von Speicherzellen umfassen. In einer Ausführungsform kann die Vielzahl von Speicherzellen nichtflüchtige Speicherzellen sein. Speicherzellen, die unter der Vielzahl von Speicherzellen mit derselben Wortleitung verbunden sind, können als eine physikalische Seite definiert werden. Somit kann das Speicherzellenfeld eine Vielzahl von physikalischen Seiten umfassen. Jede der Speicherzellen der Speichervorrichtung 100 kann als Single-Level-Zelle (SLC), die ein Datenbit speichert, als Multi-Level-Zelle (MLC), die zwei Datenbits speichert, als Triple-Level-Zelle (TLC), die drei Datenbits speichert, oder als Quad-Level-Zelle (QLC), die vier Datenbits speichern kann, ausgeführt sein.
-
Das Speicherzellenfeld 110 kann den zugangsbeschränkten Bereich 111 umfassen. Der zugangsbeschränkte Bereich kann ein Bereich sein, in dem der externe Zugriff beschränkt ist. Wenn die Speichersteuerung 1000 den Befehl empfängt, der den Zugriff auf den zugangsbeschränkten Bereich 111 anfordert, kann die Speichersteuerung 1000 den Befehl nicht verarbeiten.
-
In einer Ausführungsform können der Spannungsgenerator 120, der Adressendecoder 130 und die Eingangs-/Ausgangsschaltung 140 gemeinsam als Peripherieschaltung bezeichnet werden. Die Peripherieschaltung kann das Speicherzellenfeld 110 unter Steuerung der Steuerlogik 150 ansteuern. Die Peripherieschaltung kann das Speicherzellenfeld 110 ansteuern, um eine Programmieroperation, eine Leseoperation und eine Löschoperation durchzuführen.
-
Der Spannungsgenerator 120 ist eingerichtet, um unter Verwendung der von dem Pumpenspannungsgenerator 200 zugeführten Pumpenspannung eine Vielzahl von Betriebsspannungen zu erzeugen. Der Spannungsgenerator 120 arbeitet als Antwort auf die Steuerung der Steuerlogik 150.
-
Als eine Ausführungsform kann der Spannungsgenerator 120 eine interne Versorgungsspannung erzeugen, indem er die von dem Pumpspannungsgenerator 200 zugeführte Pumpspannung regelt. Die von dem Spannungsgenerator 120 erzeugte interne Versorgungsspannung wird als eine Betriebsspannung der Speichervorrichtung 100 verwendet.
-
Als eine Ausführungsform kann der Spannungsgenerator 120 die Vielzahl von Betriebsspannungen unter Verwendung einer externen Versorgungsspannung oder einer internen Versorgungsspannung erzeugen. Der Spannungsgenerator 120 kann eingerichtet sein, um verschiedene Spannungen für die Speichervorrichtung 100 zu erzeugen. Zum Beispiel kann der Spannungsgenerator 120 eine Vielzahl von Löschspannungen, eine Vielzahl von Programmierspannungen, eine Vielzahl von Durchgangsspannungen, eine Vielzahl von ausgewählten Lesespannungen und eine Vielzahl von nicht ausgewählten Lesespannungen erzeugen.
-
Die Vielzahl von erzeugten Betriebsspannungen kann an das Speicherzellenfeld 110 durch den Adressendecoder 130 zugeführt werden.
-
Der Adressendecoder 130 ist über die Zeilenleitungen RL mit dem Speicherzellenfeld 110 verbunden. Der Adressendecoder 130 ist eingerichtet, um als Antwort auf die Steuerung der Steuerlogik 150 zu arbeiten. Der Adressendecoder 130 kann eine Adresse ADDR von der Steuerlogik 150 empfangen und kann eine Blockadresse unter den empfangenen Adressen ADDR dekodieren. Der Adressendecoder 130 wählt gemäß der dekodierten Blockadresse mindestens einen Speicherblock aus den Speicherblöcken aus. Der Adressendecoder 130 kann eine Zeilenadresse unter den empfangenen Adressen ADDR dekodieren. Der Adressendecoder 130 kann gemäß der dekodierten Zeilenadresse mindestens eine Wortleitung unter den Wortleitungen eines ausgewählten Speicherblocks auswählen. In einer Ausführungsform kann der Adressendecoder 130 eine Spaltenadresse unter den empfangenen Adressen ADDR dekodieren. Der Adressendecoder 130 kann die Eingangs-/Ausgangsschaltung 140 und das Speicherzellenfeld 110 gemäß der dekodierten Spaltenadresse miteinander verbinden.
-
In einer Ausführungsform kann der Adressendecoder 130 Komponenten wie einen Zeilendecoder, einen Spaltendecoder und einen Adresspuffer umfassen.
-
Die Eingangs-/Ausgangsschaltung 140 kann eine Vielzahl von Seitenpuffern umfassen, die über die Bitleitungen mit dem Speicherzellenfeld 110 verbunden werden können. Während der Programmieroperation können Daten in ausgewählten Speicherzellen gemäß den in der Vielzahl von Seitenpuffern gespeicherten Daten gespeichert werden. Bei den über die Eingangs-/Ausgangsschaltung 140 eingegebenen Daten kann es sich um Daten handeln, die durch den Datencodierer 1110 umgewandelt werden.
-
Während der Leseoperation können die in den ausgewählten Speicherzellen gespeicherten Daten über die Bitleitungen abgetastet und die abgetasteten Daten können in den Seitenpuffern gespeichert werden.
-
Die Steuerlogik 150 kann den Adressendecoder 130, den Spannungsgenerator 120 und die Eingangs-/Ausgangsschaltung 140 steuern. Die Steuerlogik 150 kann als Antwort auf einen von einer externen Vorrichtung übertragenen Befehl CMD arbeiten. Die Steuerlogik 150 kann als Antwort auf den Befehl CMD und die Adresse ADDR Steuersignale erzeugen, um die Peripherieschaltungen zu steuern.
-
Der Pumpspannungsgenerator 200 kann die Eingangsspannung VCC oder die Massespannung GND unter Steuerung der Speichersteuerung 1000 empfangen, und der Pumpspannungsgenerator 200 kann die Pumpspannung VPP auf der Grundlage solcher Eingangswerte erzeugen und die Pumpspannung VPP an die Speichervorrichtung 100 zuführen. Darüber hinaus kann der Pumpspannungsgenerator 200 ein Bereitschafts-Besetzt-Signal RBn von der Speichervorrichtung 100 empfangen und kann gemäß dem empfangenen Bereitschafts-Besetzt-Signal bestimmen, ob die Pumpspannung VPP erzeugt werden soll.
-
14 zeigt ein Diagramm, das ein Speichergerät gemäß einer Ausführungsform der vorliegenden Offenbarung auf der Grundlage eines Busses darstellt.
-
Unter Bezugnahme auf 14 kann das Speichergerät eine Vielzahl von Funktionsblöcken umfassen. Der Funktionsblock kann z.B. ein IP(Intelligent Property)-Block sein. In einer Ausführungsform kann der Funktionsblock ein Master-Funktionsblock 300 oder ein Slave-Funktionsblock 400 sein.
-
Der Master-Funktionsblock 300 ist einer, der einen Befehl erzeugt, und der Slave-Funktionsblock 400 ist einer, der den in dem Master-Funktionsblock 300 erzeugten Befehl empfängt, oder ein Funktionsblock, der ein Ziel des in dem Master-Funktionsblock 300 erzeugten Befehls wird. Das heißt, ein Funktionsblock, der ein Gegenstand zum Erzeugen des Befehls ist, kann der Master-Funktionsblock 300 sein, und ein Funktionsblock, der das Ziel des erzeugten Befehls wird, kann der Slave-Funktionsblock 400 sein. Daher kann ein bestimmter Funktionsblock, der der Master-Funktionsblock 300 war, in einigen Fällen der Slave-Funktionsblock 400 werden, und ein bestimmter Funktionsblock, der der Slave-Funktionsblock 400 war, kann in einigen Fällen der Master-Funktionsblock 300 werden.
-
Ein Bus 1600 kann als Arbiter und Decoder dienen, und eine Vielzahl von Master-Funktionsblöcken 300 und eine Vielzahl von Slave-Funktionsblöcken 400 können mit dem Bus 1600 verbunden werden. Genauer gesagt können die Vielzahl von Master-Funktionsblöcken 300 und die Vielzahl von Slave-Funktionsblöcken 400 über eine Busschnittstelle 1610 mit dem Bus 1600 verbunden sein.
-
Der Bus 1600 empfängt Adressinformationen und Steuerinformationen von dem Master-Funktionsblock, der unter der Vielzahl von Master-Funktionsblöcken 300 die Bushoheit bzw. Verantwortung über den Bus besitzt, und überträgt eine Anforderung zur Vorbereitung der Datenverarbeitung an den Slave-Funktionsblock 400. Nachdem die angeforderte Datenverarbeitung in dem Slave-Funktionsblock 400 durchgeführt wurde, kann der Bus 1600 eine Antwort darauf an den entsprechenden Master-Funktionsblock 300 bereitstellen.
-
Zu diesem Zeitpunkt kann der Bus 1600 eine Kommunikation zwischen der Vielzahl von Master-Funktionsblöcken 300 und der Vielzahl von Slave-Funktionsblöcken 400 gemäß einem vorgegebenen Standard, z.B. dem AXI-Protokollstandard (Advanced Extensible Interface), durchführen. Um Funktionen durchzuführen, die von einem AXI-Protokoll unterstützt werden, kann jeder der Funktionsblöcke eine Transaktions-ID aufweisen. Es ist jedoch möglich, dass eine Transaktions-ID-Bitbreite jedes der Master-Funktionsblöcke 300 und die Transaktions-ID-Bitbreite des Slave-Funktionsblocks 400 nicht übereinstimmen.
-
Zu diesem Zeitpunkt können die jeweiligen Busschnittstellen 1610 ID-Puffer 1620 umfassen, in denen eine Transaktions-ID jedes der angeschlossenen Funktionsblöcke zwischengespeichert werden kann. Die in jedem der ID-Puffer 1620 gespeicherte Transaktions-ID kann derart umgewandelt werden, dass sie eine vorgegebene Bitbreite in den ID-Puffern 1620 aufweist und ausgegeben wird. Zu diesem Zeitpunkt ist eine vom ID-Puffer 1620 ausgegebene und zur Kommunikation über den Bus verwendete ID als Bus-ID definiert. Alle Bus-IDs, die über jeden der ID-Puffer 1620 ausgegeben werden, können die gleiche Bitbreite aufweisen.
-
15 zeigt ein Diagramm, das einen Kommunikationsprozess unter Verwendung eines Busses eines Speichergeräts gemäß einer Ausführungsform der vorliegenden Offenbarung darstellt.
-
Unter Bezugnahme auf 15 kann der Master-Funktionsblock 300 die Transaktions-ID des Master-Funktionsblocks 300 ausgeben, um eine Anforderung an den Slave-Funktionsblock 400 zu übertragen. Die Bitbreite der Transaktions-ID des Master-Funktionsblocks 300 kann zum Beispiel 4 betragen. Die von dem Master-Funktionsblock 300 ausgegebene Transaktions-ID kann in dem ID-Puffer 1620 an der mit dem Master-Funktionsblock 300 verbundenen Busschnittstelle 1610 zwischengespeichert werden.
-
Die in dem ID-Puffer gespeicherte Transaktions-ID des Master-Funktionsblocks 300 kann derart umgewandelt werden, dass sie eine vorgegebene Bitbreite aufweist und als Bus-ID ausgegeben wird. Zum Beispiel kann die vorgegebene Bitbreite der Bus-ID 6 sein. Die Bus-ID kann an den Slave-Funktionsblock 400 über den Bus 1600 bereitgestellt werden.
-
Der Slave-Funktionsblock 400 kann die Transaktions-ID des Slave-Funktionsblocks 400 ausgeben, um eine Antwort auf die Anfrage des Master-Funktionsblocks 300 zu übertragen. Die Bitbreite der Transaktions-ID des Slave-Funktionsblocks 400 kann z.B. 3 betragen. Die von dem Slave-Funktionsblock 400 ausgegebene Transaktions-ID kann in dem ID-Puffer 1620 an der mit dem Slave-Funktionsblock 400 verbundenen Busschnittstelle 1610 zwischengespeichert werden.
-
Die in dem ID-Puffer gespeicherte Transaktions-ID des Slave-Funktionsblocks 400 kann derart umgewandelt werden, dass sie eine vorgegebene Bitbreite aufweist und als Bus-ID ausgegeben wird. Zum Beispiel kann die vorgegebene Bitbreite der Bus-ID 6 sein. Diese Bus-ID kann an den Master-Funktionsblock 300 über den Bus 1600 bereitgestellt werden.
-
Im Allgemeinen kann die Bitbreite der bei der Kommunikation über den Bus 1600 verwendeten Bus-ID gemäß der Anzahl von Master-Funktionsblöcken 300, der Bitbreite der Transaktions-ID des Master-Funktionsblocks 300 und der Bitbreite der Transaktions-ID des Slave-Funktionsblocks 400 variieren. Das Speichergerät 50 gemäß einer Ausführungsform der vorliegenden Offenbarung umfasst einen ID-Puffersatz, so dass alle Bitbreiten der Bus-ID, die unabhängig von der Bitbreite der eingegebenen Transaktions-ID ausgegeben wird, an der Busschnittstelle 1610, an der jeder der Funktionsblöcke mit dem Bus 1600 verbunden ist, gleich sind. Daher kann das Speichergerät 50 eine Kommunikation unter Verwendung der Bus-ID durchführen, die die gleiche Bitbreite aufweist, auch wenn die Anzahl der Master-Funktionsblöcke 300 und der Slave-Funktionsblöcke 400 oder die Bitbreite der Transaktions-ID variiert.
-
16 zeigt ein Diagramm, das eine elektronische Vorrichtung 10000 gemäß einer Ausführungsform der vorliegenden Offenbarung darstellt. Unter Bezugnahme auf 16 kann die elektronische Vorrichtung 10000 gemäß einer Ausführungsform der vorliegenden Offenbarung das Speichergerät 50 und den Host 2000 umfassen.
-
Das Speichergerät 50 kann die Speichervorrichtung 100 und die Speichersteuerung 1000 umfassen. Die Speichervorrichtung 100 kann Daten speichern und kann als Antwort auf die Steuerung der Speichersteuerung 1000 arbeiten. Die Speichervorrichtung 100 kann das Speicherzellenfeld umfassen, das die Vielzahl von Daten speichernden Speicherzellen umfasst. Das Speicherzellenfeld kann die Vielzahl von Speicherblöcken umfassen. Jeder Speicherblock kann die Vielzahl von Speicherzellen umfassen. Ein Speicherblock kann die Vielzahl von Seiten umfassen. In einer Ausführungsform kann die Seite eine Einheit zum Speichern von Daten in der Speichervorrichtung 100 oder zum Lesen von in der Speichervorrichtung 100 gespeicherten Daten sein. Der Speicherblock kann eine Einheit zum Löschen von Daten sein.
-
Die Speichersteuerung 1000 kann einen Geräte-UM(Unified Memory)-Manager 1320 umfassen. Der Geräte-UM-Manager 1320 kann auf einen UM-Bereich 2120 in einem Host-Speicher 2100 des Hosts 2000 zugreifen. Der Geräte-UM-Manager 1320 kann dem Host 2000 Informationen über eine bestimmte Position bereitstellen, auf die zugegriffen worden ist oder auf die ein Zugriff in dem UM-Bereich 2120 geplant ist, oder er kann Informationen über eine bestimmte Position in dem UM-Bereich 2120 von dem Host 2000 empfangen und dann auf der Grundlage dieser Informationen auf die bestimmte Position zugreifen. Bei den Positionsinformationen in dem UM-Bereich 2120 kann es sich um Informationen über eine Adresse in dem UM-Bereich 2120 handeln.
-
Der Host 2000 kann einen Host-Speicher 2100 und eine Host-Steuerung 2200 umfassen. Der Host-Speicher 2100 kann einen Systembereich 2110, auf den nur die Host-Steuerung 2200 zugreifen kann, und den UM-Bereich 2120, auf den das Speichergerät 50 zugreifen kann, umfassen. Der UM-Bereich 2120 kann einen gemeinsam genutzten Bereich 2121 umfassen, auf den sowohl die Host-Steuerung 2200 als auch das Speichergerät 50 zugreifen kann. Auf den UM-Bereich 2120 mit Ausnahme des gemeinsam genutzten Bereichs 2121 kann das Speichergerät 50 zugreifen und die Host-Steuerung 2200 kann nicht darauf zugreifen. Der UM-Bereich 2120 kann als eine Art Pufferspeicher verwendet werden. Zum Beispiel können übertragene Daten während der Schreiboperation oder der Leseoperation an dem Speichergerät in dem UM-Bereich 2120 zwischengespeichert werden.
-
Die Host-Steuerung 2200 kann den Host-Speicher 2100 steuern. Die Host-Steuerung 2200 kann direkt auf den Systembereich 2110 und den gemeinsamen Bereich 2121 des Host-Speichers 2100 zugreifen. Die Host-Steuerung 2200 kann nicht direkt auf den UM-Bereich 2120 mit Ausnahme des gemeinsam genutzten Bereichs 2121 zugreifen und kann gemäß einer Anforderung des Speichergeräts 50 nur eine Datenkopie zwischen den UM-Bereichen 2120 mit Ausnahme des Systembereichs 2110 und des gemeinsam genutzten Bereichs 2121 durchführen. Die Host-Steuerung 2200 kann prüfen, ob in dem gemeinsam genutzten Bereich 2121 ein leerer Bereich zum Speichern von Daten vorhanden ist. Wenn die Host-Steuerung 2200 bestimmt, dass der leere Bereich zum Speichern von Daten in dem gemeinsam genutzten Bereich 2121 vorhanden ist, kann das Speichergerät 50 den gemeinsam genutzten Bereich 2121 bevorzugt als Pufferspeicher verwenden. Wenn die Host-Steuerung 2200 bestimmt, dass der leere Bereich zum Speichern von Daten nicht in dem gemeinsam genutzten Bereich 2121 vorhanden ist, kann das Speichergerät 50 den UM-Bereich 2120 mit Ausnahme des gemeinsam genutzten Bereichs 2121 als Pufferspeicher verwenden. Die Host-Steuerung 2200 kann das Speichergerät 50 auffordern, auf eine bestimmte Position zuzugreifen, indem sie dem Speichergerät 50 Informationen über die bestimmte Position in dem gemeinsam genutzten Bereich 2121 bereitstellt. In einer Ausführungsform kann die Host-Steuerung 2200 die Informationen über die bestimmte Position des UM-Bereichs 2120 mit Ausnahme des gemeinsam genutzten Bereichs 2121 von dem Speichergerät 50 empfangen und eine Datenkopie zwischen der bestimmten Position und dem Systembereich 2110 durchführen.
-
17 zeigt ein Flussdiagramm, das einen Betrieb einer elektronischen Vorrichtung gemäß einer Ausführungsform der vorliegenden Offenbarung darstellt.
-
Unter Bezugnahme auf 16 und 17 kann die Host-Steuerung 2200 in Operation S1701 prüfen, ob der leere Bereich zum Speichern von Daten in dem gemeinsam genutzten Bereich 2121 vorhanden ist. Wenn der gemeinsam genutzte Bereich 2121 verwendet werden kann, weil der leere Bereich in dem gemeinsam genutzten Bereich 2121 in Operation S1703 vorhanden ist, kann der Host 2000 die Position in dem UM-Bereich 2120 an das Speichergerät 50 bereitstellen (Operation S1705). Zum Beispiel kann der Host 2000 an das Speichergerät 50 die Positionsinformationen in dem gemeinsam genutzten Bereich 2121 bereitstellen. Andererseits kann der gemeinsam genutzte Bereich 2121 nicht verwendet werden, weil der leere Bereich in dem gemeinsam genutzten Bereich 2121 nicht vorhanden ist (Operation S1703), und das Speichergerät 50 kann die Positionsinformationen in dem UM-Bereich 2120 an den Host 2000 bereitstellen (Operation S1707). Beispielsweise kann das Speichergerät 50 die Positionsinformationen in dem UM-Bereich 2120 mit Ausnahme des gemeinsam genutzten Bereichs 2121 an den Host 2000 bereitstellen.
-
18 zeigt ein Diagramm, das ein Speichergerät 50 gemäß einer Ausführungsform der vorliegenden Offenbarung darstellt.
-
Unter Bezugnahme auf 18 kann das Speichergerät 50 die Speichervorrichtung 100, einen Befehlsprozessor 1410 und einen Befehlsmanager 1330 umfassen. Der Befehlsmanager 1330 kann einen Steckplatz bzw. Slot 1331 und eine QoS(Quality of Service)-Verwaltungsschaltung 1332 umfassen. In einer Ausführungsform kann der Befehlsmanager 1330 eine Vielzahl von Steckplätzen 1331 umfassen. Die Vielzahl von Steckplätzen kann einen von dem Host 2000 eingegebenen Befehl empfangen.
-
Die QoS-Verwaltungsschaltung 1332 kann eine Zählerschaltung 1332a umfassen. In einer Ausführungsform kann die QoS-Verwaltungsschaltung 1332 eine Vielzahl von Zählerschaltungen 1332a umfassen, die jeweils der Vielzahl von Steckplätzen 1331 entsprechen. Wenn ein Befehl in einen der Vielzahl von Steckplätzen 1331 eingegeben wird, kann eine entsprechende Zählerschaltung 1332a aktiviert werden. Die aktivierte Zählerschaltung 1332a kann deaktiviert werden, wenn das Speichergerät 50 eine dem Befehl entsprechende Antwort an den Host 2000 bereitstellt. Wenn das Speichergerät 50 es nicht schafft, die dem Befehl entsprechende Antwort an den Host 2000 bereitzustellen, bis eine Zeit eine voreingestellte Zeit überschreitet, kann die QoS-Verwaltungsschaltung 1332 ein Unterbrechungssignal an den Befehlsprozessor 1410 bereitstellen. Das Unterbrechungssignal kann zum Beispiel ein Signal sein, das den Befehlsprozessor 1410 auffordert, den Befehl zu verarbeiten.
-
In einer Ausführungsform können, wenn es das Speichergerät 50 nicht schafft, die dem Befehl entsprechende Antwort an den Host 2000 bereitzustellen, bis eine Zeit die voreingestellte Zeit überschreitet, Informationen, die einen Zustand des Befehls angeben, in einer Bitmap gespeichert werden, die dem Steckplatz entspricht, in den der Befehl eingegeben wird. Beispielsweise können in der Bitmap Informationen gespeichert werden, die angeben, dass der entsprechende Befehl lange Zeit nicht verarbeitet worden ist. Wenn solche Informationen in der Bitmap gespeichert sind, kann die QoS-Verwaltungsschaltung 1332 das Unterbrechungssignal auf der Grundlage der in der Bitmap gespeicherten Informationen an den Befehlsprozessor 1410 ausgeben.
-
Der Befehlsprozessor 1410 kann den Befehl von der Vielzahl von Steckplätzen 1331 gemäß einer vorgegebenen Priorität empfangen. Wenn eine Verarbeitung des Befehls abgeschlossen ist, kann der Befehlsmanager 1330 aufgefordert werden, eine Antwort darauf zu erzeugen. Wenn der Befehlsprozessor 1410 das Unterbrechungssignal von der QoS-Verwaltungsschaltung 1332 empfängt, kann er erkennen, dass der dazu entsprechende Befehl nicht verarbeitet wird. Dementsprechend kann der Befehlsprozessor 1410 den Befehl erkennen und verwalten, der lange nicht verarbeitet worden ist.
-
Die Speichervorrichtung 100 kann gemäß dem Ergebnis der Befehlsverarbeitung des Befehlsprozessors 1410 gesteuert werden. Beispielsweise können Daten in der Speichervorrichtung 100 gespeichert oder Daten können gemäß dem Ergebnis der Befehlsverarbeitung des Befehlsprozessors 1410 aus der Speichervorrichtung ausgelesen werden.
-
19 zeigt ein Diagramm, das ein Speichergerät 50 gemäß einer Ausführungsform der vorliegenden Offenbarung darstellt.
-
Unter Bezugnahme auf 19 kann das Speichergerät 50 gemäß einer Ausführungsform der vorliegenden Offenbarung die Speichervorrichtung 100 und die Speichersteuerung 1000 umfassen. Die Speichervorrichtung 100 kann durch die Speichersteuerung 1000 gesteuert werden.
-
Die Speichersteuerung 1000 kann einen Deskriptor-Generator 1340, eine Übermittlungswarteschlange 1350, einen Deskriptor-Puffer 1361, einen Deskriptor-Prozessor 1360 und einen Abbruchprozessor 1370 umfassen. Der Deskriptor-Generator 1340 kann einen Deskriptor auf der Grundlage eines von einer externen Quelle empfangenen Befehls erzeugen. Zum Beispiel kann der Deskriptor-Generator 1340 den Deskriptor auf der Grundlage des von dem Host 2000 außerhalb der Speichersteuerung 1000 oder der Speichervorrichtung 100 empfangenen Befehls erzeugen. Der Deskriptor-Generator 1340 kann den erzeugten Deskriptor in der Übermittlungswarteschlange 1350 speichern. Die Übermittlungswarteschlange 1350 kann zum Beispiel eine Art Systemspeicherbereich in der Speichersteuerung sein.
-
Der Deskriptor-Puffer 1361 kann den in der Übermittlungswarteschlange 1350 gespeicherten Deskriptor im Voraus abrufen. Der Deskriptor-Prozessor 1360 kann den in dem Deskriptor-Puffer 1361 gespeicherten Deskriptor gemäß einem Vorabruf abrufen und den abgerufenen Deskriptor verarbeiten. In 19 befindet sich der Deskriptor-Puffer 1361 außerhalb des Deskriptor-Prozessors 1360, ist aber nicht darauf beschränkt. In einer Ausführungsform kann der Deskriptor-Puffer 1361 beispielsweise in dem Deskriptor-Prozessor 1360 umfasst sein. Der Deskriptor-Prozessor 1360 kann auf der Grundlage des abgerufenen Deskriptors ein Datenpaket ausgeben. In einer Ausführungsform kann das Datenpaket eine Protokollinformationseinheit (Protocol Information Unit - PIU) sein.
-
Der Abbruchprozessor 1370 kann Informationen über einen Abbruchzielbefehl von einer externen Quelle empfangen. Auf der Grundlage der empfangenen Informationen kann der Abbruchprozessor 1370 unter den in der Übermittlungswarteschlange 1350 oder in dem Deskriptor-Puffer 1361 gespeicherten Deskriptoren nach einem Deskriptor suchen, der dem Abbruchzielbefehl entspricht. Wenn der Deskriptor in den Deskriptor-Puffer 1361 vorabgerufen wird, kann der dem Abbruchzielbefehl entsprechende Deskriptor in dem Deskriptor-Puffer 1361 gefunden werden. Bevor der Deskriptor in den Deskriptor-Puffer 1361 vorabgerufen wird, kann der dem Abbruchzielbefehl entsprechende Deskriptor in der Übermittlungswarteschlange 1350 gefunden werden. Der Abbruchprozessor 1370 kann Informationen speichern, die angeben, dass der Befehl, der dem Deskriptor entspricht, der dem Abbruchzielbefehl entspricht, abgebrochen wurde. Eine solche Information kann in einem voreingestellten Feld in dem Deskriptor gespeichert werden.
-
Wie oben beschrieben, kann der Deskriptor, in dem die Information, die angeben, dass der entsprechende Befehl abgebrochen wurde, gespeichert ist, verworfen werden, ohne vom Deskriptor-Prozessor 1360 verarbeitet zu werden. Daher kann der Deskriptor-Prozessor 1360 kein Datenpaket erzeugen oder ausgeben, das dem Deskriptor entspricht, in dem Informationen gespeichert sind, die angeben, dass der Befehl abgebrochen wurde.
-
Wenn die Speichersteuerung 1000 des Speichergeräts 50 gemäß einer Ausführungsform der vorliegenden Offenbarung beispielsweise Informationen über den Abbruchzielbefehl empfängt, ordnet sie nicht neu an (keine Neuanordnung), indem sie den Abbruchzielbefehl selbst findet, speichert nur Informationen einen Abbruch, indem sie den Deskriptor findet, der dem Abbruchzielbefehl entspricht, und verarbeitet nicht den Deskriptor, in dem die Informationen über den Abbruch gespeichert sind.
-
20 zeigt ein Flussdiagramm, das einen Befehlsverarbeitungsprozess einer Speichersteuerung gemäß einer Ausführungsform der vorliegenden Offenbarung darstellt.
-
Unter Bezugnahme auf die 19 und 20 kann die Speichersteuerung 1000 in Operation S2701 einen Befehl von einer externen Quelle empfangen. Zum Beispiel kann der Befehl von dem externen Host 2000 oder der Speichervorrichtung 100 empfangen werden. In Operation S2703 kann der Deskriptor-Generator 1340 der Speichersteuerung 1000 den Deskriptor auf der Grundlage des empfangenen Befehls erzeugen, und in Operation S2705 kann der Deskriptor-Generator 1340 den erzeugten Deskriptor in der Übermittlungswarteschlange 1350 speichern.
-
In Operation S2707 kann der Deskriptor-Puffer 1361 der Speichersteuerung 1000 den Deskriptor aus der Übermittlungswarteschlange 1350 vorabrufen. In Operation S2709 kann der Deskriptor-Prozessor 1360 den Deskriptor aus dem Deskriptor-Puffer 1361 abrufen und den Deskriptor durch Parsen des abgerufenen Deskriptors verarbeiten.
-
In Operation S2711 kann der Deskriptor-Prozessor 1360 prüfen, ob ein Abbruchfeld ABT des Deskriptors einen Abbruch angibt. Wenn das Abbruchfeld ABT des Deskriptors keinen Abbruch angibt, kann der Deskriptor-Prozessor 1360 das Datenpaket in Operation S2713 erzeugen und ausgeben. Wenn das Abbruchfeld ABT des Deskriptors einen Abbruch angibt, kann der Deskriptor-Prozessor 1360 das Datenpaket verwerfen, ohne das Datenpaket in Operation S2715 zu erzeugen.
-
Wenn der Abbruchprozessor 1370 der Speichersteuerung 1000 die Informationen über den Abbruchzielbefehl in einem Prozess des Erzeugens und Verarbeitens des Deskriptors empfängt, kann der Abbruchprozessor 1370 Abbruchinformationen in dem Abbruchfeld ABT des Deskriptors, der dem Abbruchzielbefehl entspricht, in Operation S2717 speichern. Der Deskriptor, der dem Abbruchzielbefehl entspricht, kann gemäß Operation S2705 aus den in der Übermittlungswarteschlange 1350 eingereihten Deskriptoren gesucht oder gemäß Operation S2707 in den Deskriptor-Puffer 1361 vorabgerufen werden.
-
21 zeigt ein Diagramm, das einen Prozess darstellt, in dem ein Abbruchprozessor einer Speichersteuerung einen Abbruchzielbefehl gemäß einer Ausführungsform der vorliegenden Offenbarung verarbeitet.
-
Unter Bezugnahme auf die 19 bis 21 wird in 20 der Prozess beschrieben, bei dem der Abbruchprozessor 1370 den Abbruchzielbefehl in 21 in Bezug auf die Operation S2717 verarbeitet.
-
Zunächst kann der Abbruchprozessor 1370 in Operation S2801 die Informationen über den Abbruchzielbefehl empfangen. Demzufolge kann der Abbruchprozessor 1370 in Operation S2803 nach dem Deskriptor suchen, der dem Abbruchzielbefehl entspricht. Der Abbruchzielbefehl kann unter den Deskriptoren gesucht werden, die in der Übermittlungswarteschlange 1350 eingereiht sind, oder in den Deskriptor-Puffer 1361 vorabgerufen werden.
-
In Operation S2805 kann der Abbruchprozessor 1370 Informationen speichern, dass der Befehl, der dem Abbruchfeld ABT des Deskriptors entspricht, der dem gesuchten Abbruchzielbefehl entspricht, ein Abbruchziel ist. Dementsprechend kann der Deskriptor-Prozessor 1360 zu einem späteren Zeitpunkt durch Überprüfen des Abbruchfeldes ABT des Deskriptors bestimmen, ob eine Verarbeitung erfolgen soll.
-
22 zeigt ein Diagramm, das die elektronische Vorrichtung 10000 gemäß einer Ausführungsform der vorliegenden Offenbarung darstellt.
-
Unter Bezugnahme auf 22 kann die elektronische Vorrichtung 10000 gemäß einer Ausführungsform der vorliegenden Offenbarung das Speichergerät 50 und den Host 2000 umfassen. Das Speichergerät 50 kann die Speichervorrichtung 100 und die Speichersteuerung 1000 umfassen.
-
Die Speichervorrichtung 100 kann Daten speichern und kann als Antwort auf die Steuerung der Speichersteuerung 1000 arbeiten. Die Speichervorrichtung 100 kann das Speicherzellenfeld umfassen, das die Vielzahl von Daten speichernden Speicherzellen umfasst. Das Speicherzellenfeld kann die Vielzahl von Speicherblöcken umfassen. Jeder Speicherblock kann die Vielzahl von Speicherzellen umfassen. Ein Speicherblock kann die Vielzahl von Seiten umfassen. In einer Ausführungsform kann die Seite z.B. eine Einheit zum Speichern von Daten in der Speichervorrichtung 100 oder zum Lesen von in der Speichervorrichtung 100 gespeicherten Daten sein. Der Speicherblock kann eine Einheit zum Löschen von Daten sein.
-
Die Speichersteuerung 1000 kann die Host-Schnittstelle 1300, die Speicherschnittstelle 1100 und den Layer-Konvertierer 1200 umfassen. Die Speichersteuerung 1000 kann den Gesamtbetrieb des Speichergeräts 50 steuern. Wenn das Speichergerät 50 mit Strom versorgt wird, kann die Speichersteuerung 1000 Firmware (FW) ausführen. Handelt es sich bei der Speichervorrichtung 100 um eine Flash-Speichervorrichtung, kann die Speichersteuerung 1000 eine Firmware wie die FTL zum Steuern einer Kommunikation zwischen dem Host 2000 und der Speichervorrichtung 100 ausführen.
-
Die Host-Schnittstelle 1300 kann aus einer dem HIL entsprechenden Firmware, die eine Schnittstelle mit dem Host 2000 verwaltet, und einer Hardware zur Realisierung der Firmware gebildet sein. Die Host-Schnittstelle 1300 kann mit dem Host 2000 kommunizieren. Die Host-Schnittstelle 1300 kann die von dem Host 2000 empfangenen Anfragen bzw. Anforderungen an den Layer-Konvertierer 1200 bereitstellen. Die Host-Schnittstelle 1300 kann an den Host 2000 ein Ergebnis des Durchführens der von dem Host 2000 empfangenen Anforderungen bereitstellen.
-
Die Host-Schnittstelle 1300 kann den Geräte-UM-Manager 1320 umfassen. Der Geräte-UM-Manager 1320 kann auf den UM-Bereich 2120 in dem Host-Speicher 2100 des Hosts 2000 zugreifen.
-
Die Speicherschnittstelle 1100 kann aus einer Firmware gebildet sein, die der MIL entspricht, die die Schnittstelle mit der Speichervorrichtung 100 verwaltet, sowie aus Hardware zur Realisierung der Firmware. Die Speicherschnittstelle 1100 kann mit der Speichervorrichtung 100 kommunizieren und die Befehle, die den vom Layer-Konvertierer 1200 empfangenen Anforderungen entsprechen, an die Speichervorrichtung 100 bereitstellen. Die Speicherschnittstelle 1100 kann ein Ergebnis von Befehlen empfangen, die von der Speichervorrichtung durchgeführt werden.
-
Die Speicherschnittstelle 1100 kann auch einen Geräte-UM-Manager 1130 umfassen. Der Geräte-UM-Manager 1130 der Speicherschnittstelle 1100 kann direkt bei Bedarf auf den UM-Bereich 2120 in dem Host-Speicher 2100 des Hosts 2000 zugreifen, ohne die Host-Schnittstelle 1300 zu durchlaufen.
-
Der Layer-Konvertierer 1200 kann aus Firmware, die der Umwandlungsschicht entspricht, die die Umwandlung zwischen der Host-Schnittstellenschicht und der Speicherschnittstellenschicht verwaltet, wie z.B. einer FTL, und Hardware zur Realisierung der Firmware gebildet sein. Der Layer-Konvertierer 1200 kann die logische Adresse, die in der Anfrage des Host 2000 umfasst ist, in die physikalische Adresse umwandeln. In einer Ausführungsform kann die physikalische Adresse die Adresse sein, die den bestimmten Speicherbereich angibt, der in der Flash-Speichervorrichtung umfasst ist.
-
Darüber hinaus kann die Speichersteuerung 1000 den Bus 1600 umfassen, der eingerichtet sein kann, um den Kanal zwischen den Komponenten der Speichersteuerung 1000 bereitzustellen.
-
Der Host 2000 kann den Host-Speicher 2100 und die Host-Steuerung 2200 umfassen. Der Host-Speicher 2100 kann umfassen Systembereich 2110, auf den nur die Host-Steuerung 2200 zugreifen kann, und den UM-Bereich 2120, auf den nur das Speichergerät 50 zugreifen kann. Der UM-Bereich 2120 kann als eine Art Pufferspeicher verwendet werden. Zum Beispiel können die übertragenen Daten während der Schreiboperation oder der Leseoperation auf dem Speichergerät in dem UM-Bereich 2120 zwischengespeichert werden.
-
Die Host-Steuerung 2200 kann den Host-Speicher 2100 steuern. Darüber hinaus kann die Host-Steuerung 2200 mit dem Speichergerät 50 kommunizieren.
-
Die Host-Schnittstelle 1300 kann einen Schreibbefehl und dem Schreibbefehl entsprechende Daten von dem Host 2000 empfangen. Die Speicherschnittstelle 1100 kann die empfangenen Daten als Antwort auf den empfangenen Schreibbefehl in der Speichervorrichtung 100 speichern. Wenn eine Speicherung der Daten in einem Prozess des Speicherns der Daten in der Speichervorrichtung 100 fehlschlägt, kann die Host-Schnittstelle 1300 die Daten erneut von dem Host 2000 empfangen. Zu diesem Zeitpunkt können die Daten in dem UM-Bereich 2120 in dem Host 2000 gespeichert werden. Die Host-Schnittstelle 1300 kann eine Antwort auf den Schreibbefehl an den Host 2000 bereitstellen, nachdem die dem Schreibbefehl entsprechenden Daten in der Speichervorrichtung 100 gespeichert wurden.
-
In einer Ausführungsform kann die Host-Schnittstelle 1300 einen Befehl bereitstellen, der den Host 2000 auffordert, die Daten erneut bereitzustellen. Als Antwort darauf kann der Host 2000 die Daten erneut an die Host-Schnittstelle 1300 bereitstellen. Zu diesem Zeitpunkt kann der Befehl, der die erneute Bereitstellung der Daten anfordert, Informationen über eine Position in dem Host-Speicher 2100 des Hosts 2000 und insbesondere Informationen über eine Position in dem UM-Bereich 2120 umfassen.
-
Zum Beispiel kann in einer Ausführungsform, wenn die Host-Schnittstelle 1300 den Schreibbefehl von dem Host 2000 empfängt, die Host-Schnittstelle 1300 anfordern, Daten, die in den Systembereich 2110 in dem Host-Speicher 2100 des Host 2000 geladen wurden, in den UM-Bereich 2120 zu kopieren. Zu diesem Zeitpunkt kann eine Kopieranforderung, die von der Host-Schnittstelle 1300 bereitgestellt wird, Informationen über eine bestimmte Position in dem UM-Bereich 2120 umfassen, in den Daten aus dem Systembereich 2110 kopiert und gespeichert werden sollen. In einer anderen Ausführungsform kann die Host-Schnittstelle 1300, wenn sie den Schreibbefehl und die Daten, die diesem entsprechen, von dem Host 2000 empfängt, die empfangenen Daten in dem UM-Bereich 2120 in dem Host-Speicher 2100 des Host 2000 sichern. Dementsprechend werden die in der Speichervorrichtung 100 zu speichernden Daten in dem UM-Bereich 2120 in dem Host-Speicher 2100 des Hosts 2000 gespeichert, und selbst wenn die Datenspeicherung in der Speichervorrichtung 100 fehlschlägt, kann die Host-Schnittstelle 1300 die Daten erneut aus dem UM-Bereich 2120 in dem Host-Speicher 2100 empfangen. Da die Host-Schnittstelle 1300 Informationen über die Position aufweist, an der die Daten in dem UM-Bereich 2120 gespeichert sind, kann der Befehl, der die erneute Bereitstellung der von der Host-Schnittstelle 1300 bereitgestellten Daten anfordert, darüber hinaus Informationen über eine Position in dem Host-Speicher 2100 des Hosts 2000, genauer gesagt, Informationen über eine Position in dem UM-Bereich 2120 umfassen.
-
In einer anderen Ausführungsform kann die Host-Schnittstelle 1300 Adressinformationen in dem Host-Speicher 2100 von dem Host 2000 empfangen. Bei den Adressinformationen in dem Host-Speicher 2100 kann es sich beispielsweise um Informationen über eine Deskriptoren-Tabelle eines physikalischen Bereichs (Physical Region Descriptor Table - PRDT) oder um Informationen über eine physikalische Adresse in dem Host-Speicher 2100 handeln. Zu diesem Zeitpunkt können die Adressinformationen in dem Host-Speicher 2100 von dem Host 2000 der Host-Schnittstelle 1300 durch einen Befehl bereitgestellt werden oder von der Host-Schnittstelle 1300 direkt von dem Host 2000 gelesen werden. Die Host-Schnittstelle 1300 kann auf der Grundlage der von dem Host 2000 empfangenen Adressinformationen in dem Host-Speicher 2100 direkt auf Daten in dem Host-Speicher 2100 zugreifen. Daher kann die Host-Schnittstelle 1300, wenn die Datenspeicherung in einem Prozess der Speicherung der Daten in der Speichervorrichtung 100 fehlschlägt, die Daten wieder direkt aus dem UM-Bereich 2120 in dem Host-Speicher 2120 des Hosts 2000 erlangen.
-
Die Host-Schnittstelle 1300 kann einen Lesebefehl von dem Host 2000 empfangen. Die Speicherschnittstelle 1100 kann die Daten aus der Speichervorrichtung 100 als Antwort auf den empfangenen Lesebefehl empfangen und kann die gelesenen Daten an den Host-Speicher 2100 in dem Host 2000 bereitstellen. Das heißt, die Speicherschnittstelle 1100 kann die Daten direkt an den UM-Bereich 2120 in dem Host-Speicher 2100 bereitstellen, ohne die Host-Schnittstelle 1300 durch den in der Speicherschnittstelle 1100 umfassten UM-Manager 1130 der Vorrichtung zu durchlaufen. Wenn eine Datenspeicherung in einem Prozess des Speicherns der Daten in dem Host-Speicher 2100 fehlschlägt, kann die Speicherschnittstelle 1100 die Daten erneut an den Host-Speicher 2100 bereitstellen. Zu diesem Zeitpunkt können die Daten an den UM-Bereich 2120 in dem Host-Speicher 2100 bereitgestellt werden. Die Host-Schnittstelle 1300 kann dem Host 2000 eine Antwort auf den Lesebefehl bereitstellen, nachdem die gelesenen Daten in dem Host-Speicher 2100 gespeichert wurden.
-
In einer Ausführungsform kann die Speicherschnittstelle 1100 Identifikationsinformationen, die den gelesenen Daten entsprechen, zusammen mit den gelesenen Daten an den Host-Speicher 2100 in dem Host 2000 bereitstellen. In einer Ausführungsform kann die Speicherschnittstelle 1100 ein Datenpaket, das die gelesenen Daten umfasst, an den Host-Speicher 2100 bereitstellen. Ein bestimmtes Feld des Datenpakets kann die den gelesenen Daten entsprechenden Identifikationsinformationen angeben. Wenn die gelesenen Daten an den Host-Speicher 2100 beispielsweise in Form von DATA IN PIU bereitgestellt werden, können die den gelesenen Daten entsprechenden Identifikationsinformationen in einem Datenpuffer-Offset-Feld in der DATA IN PIU gespeichert werden. Wenn eine Datenspeicherung in einem Prozess des Speicherns der Daten in dem Host-Speicher 2100 fehlschlägt, kann die Speicherschnittstelle 1100 die Daten zusammen mit den gelesenen Daten und den entsprechenden Identifikationsinformationen erneut an den Host-Speicher 2100 bereitstellen.
-
In einer anderen Ausführungsform kann die Host-Schnittstelle 1300 die Adressinformationen in dem Host-Speicher 2100 von dem Host 2000 empfangen. Bei den Adressinformationen in dem Host-Speicher 2100 kann es sich zum Beispiel um die Informationen über die PRDT oder die Informationen über die physikalische Adresse in dem Host-Speicher 2100 handeln. Zu diesem Zeitpunkt können die Adressinformationen in dem Host-Speicher 2100 von dem Host 2000 durch den Befehl an die Host-Schnittstelle 1300 bereitgestellt werden, oder können von der Host-Schnittstelle 1300 direkt von dem Host 2000 gelesen werden. Die Speicherschnittstelle 1100 kann die Daten auf der Grundlage der Adressinformationen in dem Host-Speicher 2100, die von der Host-Schnittstelle 1300 von dem Host 2000 empfangen werden, direkt in dem Host-Speicher 2100 speichern. Daher kann die Speicherschnittstelle 1100, wenn eine Datenspeicherung in einem Prozess des Speicherns der Daten in dem Host-Speicher 2100 fehlschlägt, die Daten wieder direkt in dem UM-Bereich 2120 in dem Host-Speicher 2100 des Hosts 2000 speichern.
-
23 zeigt ein Diagramm, das die elektronische Vorrichtung 10000 gemäß einer Ausführungsform der vorliegenden Offenbarung darstellt.
-
Unter Bezugnahme auf die 1, 2, 7, 13, 16, 18, 19, 22 und 23 kann die elektronische Vorrichtung 10000 den Host 2000 und das Speichergerät 50 umfassen.
-
Der Host-Speicher 2100 kann umfassen den Systembereich 2110, auf den nur die Host-Steuerung 2200 zugreifen kann, und den UM-Bereich 2120, auf den das Speichergerät 50 zugreifen kann. Der UM-Bereich 2120 kann den gemeinsam genutzten Bereich 2121 umfassen. Der gemeinsam genutzte Bereich 2121 kann ein Bereich sein, auf den sowohl die Host-Steuerung 2200 als auch das Speichergerät 50 zugreifen können. Auf den UM-Bereich 2120 mit Ausnahme des gemeinsam genutzten Bereichs 2121 kann nur das Speichergerät 50 und nicht die Hostvorrichtung 2200 zugreifen. Der UM-Bereich 2120 kann als eine Art Pufferspeicher verwendet werden. Zum Beispiel können übertragene Daten während der Schreiboperation oder der Leseoperation in dem Speichergerät in dem UM-Bereich 2120 zwischengespeichert werden.
-
Die Host-Steuerung 2200 kann den Host-Speicher 2100 steuern und mit dem Speichergerät 50 kommunizieren. Die Host-Steuerung 2200 kann den Host-Speicher 2100 steuern und kann direkt auf den Systembereich 2110 und den gemeinsam genutzten Bereich 2121 des Host-Speichers 2100 zugreifen. Der Host-Steuerung 2200 kann nicht direkt auf den UM-Bereich 2120 mit Ausnahme des gemeinsam genutzten Bereichs 2121 zugreifen und kann lediglich eine Datenkopie zwischen den UM-Bereichen 2120 mit Ausnahme des Systembereichs 2110 und des gemeinsam genutzten Bereichs 2121 gemäß der Anforderung des Speichergeräts 50 durchführen.
-
Die Host-Steuerung 2200 kann prüfen, ob der leere Bereich zum Speichern von Daten in dem gemeinsam genutzten Bereich 2121 vorhanden ist. Wenn die Host-Steuerung 2200 bestimmt, dass der leere Bereich zum Speichern von Daten in dem gemeinsam genutzten Bereich 2121 vorhanden ist, kann das Speichergerät 50 den gemeinsam genutzten Bereich 2121 bevorzugt als Pufferspeicher verwenden. Wenn die Host-Steuerung 2200 bestimmt, dass der leere Bereich zum Speichern von Daten nicht in dem gemeinsam genutzten Bereich 2121 vorhanden ist, kann die Speichergerät 50 den UM-Bereich 2120, der nicht der gemeinsam genutzte Bereich 2121 ist, als Pufferspeicher verwenden. Die Host-Steuerung 2200 kann das Speichergerät 50 auffordern, auf die bestimmte Position zuzugreifen, indem sie an das Speichergerät 50 die Informationen über die bestimmte Position in dem gemeinsam genutzten Bereich 2121 bereitstellt. Alternativ kann die Host-Steuerung 2200 die Informationen über die bestimmte Position des UM-Bereichs 2120, der nicht der gemeinsam genutzte Bereich 2121 ist, von dem Speichergerät 50 empfangen und eine Datenkopie zwischen der bestimmten Position und dem Systembereich 2110 durchführen.
-
Das Speichergerät 50 kann die Speichersteuerung 1000, den Pumpspannungsgenerator 200 und die Speichervorrichtung 100 umfassen. Die Speichersteuerung 1000 kann die Host-Schnittstelle 1300, die Speicherschnittstelle 1100 und den Layer-Konvertierer 1200 umfassen. Die Speichersteuerung 1000 kann den Gesamtbetrieb des Speichergeräts 50 steuern. Wenn das Speichergerät 50 mit Strom versorgt wird, kann die Speichersteuerung 1000 Firmware (FW) ausführen. Handelt es sich bei der Speichervorrichtung 100 um eine Flash-Speichervorrichtung, kann die Speichersteuerung 1000 Firmware wie die FTL zum Steuern einer Kommunikation zwischen dem Host 2000 und der Speichervorrichtung 100 ausführen. Die Firmware kann in einem Teilbereich eines internen Speichers 1500 gespeichert oder geladen werden und kann von einem Prozessor 1400 ausgeführt werden.
-
Die Host-Schnittstelle 1300 kann aus einer der HIL entsprechenden Firmware, die die Schnittstelle mit dem Host 2000 verwaltet, und einer Hardware zum Implementieren der Firmware gebildet sein. Die Host-Schnittstelle 1300 kann mit dem Host 2000 kommunizieren.
-
Die Speicherschnittstelle 1100 kann aus der MIL entsprechenden Firmware, die die Schnittstelle mit der Speichervorrichtung 100 verwaltet, und Hardware zum Implementieren der Firmware gebildet sein. Die Speicherschnittstelle 1100 kann mit der Speichervorrichtung 100 kommunizieren und kann an die Speichervorrichtung 100 Befehle bereitstellen, die den von dem Layer-Konvertierer 1200 empfangenen Anforderungen entsprechen. Die Speicherschnittstelle 1100 kann ein Ergebnis der von der Speichervorrichtung durchgeführten Befehle empfangen.
-
Der Layer-Konvertierer 1200 kann aus der Umwandlungsschicht entsprechender Firmware, die die Umwandlung zwischen der Host-Schnittstellenschicht und der Speicherschnittstellenschicht verwaltet, wie z.B. einer FTL, und Hardware zum Implementieren der Firmware gebildet sein. Der Layer-Konvertierer 1200 kann die logische Adresse, die in der Anfrage von dem Host 2000 umfasst ist, in die physikalische Adresse umwandeln. In einer Ausführungsform kann die physikalische Adresse die Adresse sein, die den bestimmten Speicherbereich umfasst, der in der Flash-Speichervorrichtung umfasst ist.
-
Darüber hinaus kann die Speichersteuerung 1000 den Bus 1600 umfassen, der eingerichtet sein kann, um den Kanal zwischen Komponenten der Speichersteuerung 1000 bereitzustellen.
-
Die Host-Schnittstelle 1300 kann den Befehl von dem Host 2000 empfangen, und die Befehlsinspektionsvorrichtung 1310 der Host-Schnittstelle 1300 kann prüfen, ob es sich bei dem Befehl um einen Befehl handelt, der einen Zugriff auf den zugangsbeschränkten Bereich 111 anfordert. Die Befehlsinspektionsvorrichtung 1310 kann den Befehl auf der Grundlage der Informationen über den zugangsbeschränkten Bereich prüfen, die in dem internen Informationsspeicher für den zugangsbeschränkten Bereich 1311 gespeichert sind. Wenn es sich bei dem Befehl von dem Host 2000 um den Befehl zum Anfordern des Zugriffs auf den zugangsbeschränkten Bereich handelt, kann die Befehlsinspektionsvorrichtung 1310 Informationen erzeugen, die angeben, dass es sich bei dem entsprechenden Befehl um den Befehl zum Anfordern eines Zugriffs auf den zugangsbeschränkten Bereich handelt, und die Informationen an die Übermittlungswarteschlange 1350 bereitstellen. Die Übermittlungswarteschlange 1350 kann ein Teilbereich in dem internen Speicher 1500 der Speichersteuerung 1000 sein. Der Befehl, in dem die Informationen erzeugt werden, die angeben, dass es sich bei dem Befehl von dem Host 2000 um den Befehl handelt, der einen Zugriff auf den zugangsbeschränkten Bereich anfordert, kann von dem Prozessor 1400 möglicherweise nicht verarbeitet werden und kann verworfen werden.
-
Wenn die Host-Schnittstelle 1300 den Befehl von dem Host 2000 empfängt, kann der Befehl außerdem in einen beliebigen der Vielzahl von Steckplätzen 1331 in dem Befehlsmanager 1330 der Host-Schnittstelle 1300 eingegeben werden. Wenn der Befehl in einen der Steckplätze 1331 eingegeben wird, kann die Zählerschaltung 1332a aktiviert werden, die dem Steckplatz 1331 entspricht, in den der Befehl in der QoS-Verwaltungsschaltung 1332 eingegeben wird. Die aktivierte Zählerschaltung 1331 kann deaktiviert werden, wenn das Speichergerät 50 eine dem Befehl entsprechende Antwort auf den Host 2000 bereitstellt. Wenn die aktivierte Zählerschaltung 1331 die dem Befehl entsprechende Antwort nicht an den Host 2000 bereitstellt, bis eine Zeit eine voreingestellte Zeit überschreitet, kann die QoS-Verwaltungsschaltung 1332 das Unterbrechungssignal, das ein Verarbeiten des Befehls anfordert, an den Befehlsprozessor 1410 bereitstellen.
-
Wenn die Host-Schnittstelle 1300 den Befehl von dem Host 2000 empfängt, kann der Deskriptor-Generator 1340 in der Host-Schnittstelle 1300 außerdem den Deskriptor auf der Grundlage des empfangenen Befehls erzeugen. Der erzeugte Deskriptor kann in der Übermittlungswarteschlange 1350 gespeichert werden, und der Deskriptor-Puffer 1361 kann den Deskriptor vorabrufen. Wenn der Abbruchprozessor 1370 der Host-Schnittstelle die Informationen über den Abbruchzielbefehl empfängt, kann der Abbruchprozessor 1370 zu diesem Zeitpunkt nach dem in der Übermittlungswarteschlange 1350 oder in dem Deskriptor-Puffer 1361 gespeicherten Deskriptor suchen, um den Deskriptor zu finden, der dem Abbruchzielbefehl entspricht. Der Abbruchprozessor 1370 kann Informationen speichern, die angeben, dass der Befehl, der dem Deskriptor entspricht, der dem Abbruchzielbefehl entspricht, abgebrochen wurde. Der Deskriptor-Prozessor 1360 kann den Deskriptor aus dem Deskriptor-Puffer 1361 abrufen, parsen und verarbeiten. Zu diesem Zeitpunkt kann der Deskriptor, in dem die Information angegeben ist, dass der entsprechende Befehl abgebrochen wurde, nicht verarbeitet werden. Der Deskriptor-Prozessor 1360 kann ein Datenpaket in Bezug auf den verarbeiteten Deskriptor erzeugen und das Datenpaket an den Host 2000 bereitstellen.
-
Die Speicherschnittstelle 1100, die die Daten von der Host-Schnittstelle 1300 empfängt, kann die Daten an die Speichervorrichtung 100 bereitstellen. Zu diesem Zeitpunkt kann die Fehlerkorrekturvorrichtung 1120 in der Speicherschnittstelle 1100 eine Fehlerkorrekturcodierung an den Daten durchführen, die an die Speichervorrichtung 100 in der Fehlerkorrektur-Leistungseinheit bereitgestellt werden, und kann ein Codewort erzeugen, dem ein Paritätsbit hinzugefügt wird. Darüber hinaus kann die Fehlerkorrekturvorrichtung 1120 eine Fehlerkorrekturdecodierung an den aus der Speichervorrichtung 100 gelesenen Daten durchführen und gemäß einem Ergebnis der Fehlerkorrekturdecodierung bestimmen, ob die Fehlerkorrekturdecodierung erfolgreich ist. Die Fehlerkorrekturvorrichtung 1120 kann ein Fehlerbit der Daten unter Verwendung des Paritätsbits korrigieren. Wenn die Anzahl der Fehlerbits gleich oder größer ist als die korrigierbare Fehlerbitgrenze ist, kann die Fehlerkorrekturvorrichtung 1120 das Fehlerbit nicht korrigieren, und ein Fehlerkorrekturfehler (fail) kann auftreten.
-
Darüber hinaus kann der Datencodierer 1110 in der Speicherschnittstelle 1100 die von dem Layer-Konvertierer 1200 empfangenen Daten auf der Grundlage des zuvor gespeicherten Algorithmus oder Codes kodieren. Die kodierten Daten können an die Speichervorrichtung 100 bereitgestellt werden. Alternativ können die Daten auch durch Dekodieren der von der Speichervorrichtung 100 bereitgestellten Daten bestimmt werden. Der Datencodierer 1110 kann den Rohdatenspeicher 1111, den Zähler 1112, den Speicher für vorhergehende Daten 1113 und die Datenausgabeschaltung 1114 umfassen. Der Datencodierer 1110 kann die invertierten oder nicht invertierten Umwandlungsdaten ausgeben, indem er bestimmt, ob die aktuell eingegebenen Rohdaten Rohdaten invertiert werden sollen. Zum Beispiel kann auf der Grundlage der Anzahl (oder Information) der Bits, die dem Referenzdatenbit unter den Bits der aktuell eingegebenen Rohdaten entsprechen, bestimmt werden, ob ein Invertieren erfolgen soll. Wenn der Datencodierer 1110 Daten, deren Bitanzahl 2N beträgt, als Rohdaten empfängt, kann der Datencodierer 1110 die Daten invertieren oder nicht invertieren und die Daten derart ausgeben, dass die dem Referenzbit entsprechende Anzahl von Bits N unter den in den ausgegebenen Daten (aktuellen Daten) umfassten Bits überschreitet. Wenn die dem Referenzbit entsprechende Anzahl von Bits unter den in den Rohdaten umfassten Bits N beträgt, kann der Datencodierer 1110 Daten unter Berücksichtigung der vorhergehenden Datenausgabe ausgeben, indem er die vorhergehende Rohdateneingabe vor der aktuellen Rohdateneingabe umwandelt. Genauer gesagt kann der Datencodierer 1110 Daten ausgeben, indem er bestimmt, ob er die aktuellen Rohdaten derart invertiert, dass ein Bitübergang von den vorhergehenden Daten zu den aktuellen Daten, d.h. ein Toggle, reduziert oder minimiert wird.
-
Die Speichervorrichtung 100 kann das Speicherzellenfeld 110, den Spannungsgenerator 120, den Adressendecoder 130, die Eingangs-/Ausgangsschaltung 140 und die Steuerlogik 150 umfassen. Das Speicherzellenfeld 110 kann die Vielzahl von Speicherblöcken umfassen. Die Vielzahl von Speicherblöcken kann mit dem Adressendecoder 130 über die Zeilenleitungen RL verbunden sein. Die Speicherblöcke können über die Spaltenleitungen CL mit der Eingangs-/Ausgangsschaltung 140 verbunden sein. In einer Ausführungsform können die Zeilenleitungen RL die Wortleitungen, die Source-Auswahlleitungen und die Drain-Auswahlleitungen umfassen. In einer Ausführungsform können die Spaltenleitungen CL die Bitleitungen umfassen. Zu diesem Zeitpunkt kann die Adresse der Bitleitungen neu angeordnet werden, so dass die Bitleitungen Fail BLy, an denen die Testoperation fehlgeschlagen ist, einheitlich für jede Fehlerkorrektur-Leistungseinheit umfasst sind. Informationen über die Adresse der oben beschriebenen neu angeordneten Bitleitungen können in dem Speicherzellenfeld 110 umfasst sein.
-
Das Speicherzellenfeld 110 kann den zugangsbeschränkten Bereich 111 umfassen. Der zugangsbeschränkte Bereich 111 kann ein Bereich sein, in dem ein externer Zugriff beschränkt ist. Da der Befehl, der von der Befehlsinspektionsvorrichtung 1310 als der Befehl bestimmt wird, der einen Zugriff auf den zugangsbeschränkten Bereich 111 anfordert, nicht von der Speichersteuerung 1000 verarbeitet wird, kann ein Zugriff auf den zugangsbeschränkten Bereich 111 eingeschränkt sein.
-
In einer Ausführungsform können der Spannungsgenerator 120, der Adressendecoder 130 und die Eingangs-/Ausgangsschaltung 140 gemeinsam als Peripherieschaltung bezeichnet werden. Die Peripherieschaltung kann das Speicherzellenfeld 110 unter der Steuerung der Steuerlogik 150 ansteuern. Die Peripherieschaltung kann das Speicherzellenfeld 110 ansteuern, um die Programmieroperation, die Leseoperation und die Löschoperation durchzuführen.
-
Der Spannungsgenerator 120 ist eingerichtet, um die Vielzahl von Betriebsspannungen unter Verwendung der von dem Pumpenspannungsgenerator 200 zugeführten Pumpenspannung zu erzeugen. Der Spannungsgenerator 120 arbeitet als Antwort auf die Steuerung der Steuerlogik 150 .
-
Die Vielzahl von erzeugten Betriebsspannungen kann an das Speicherzellenfeld 110 durch den Adressendecoder 130 zugeführt werden.
-
Der Adressendecoder 130 ist über die Zeilenleitungen RL mit dem Speicherzellenfeld 110 verbunden. Der Adressendecoder 130 ist eingerichtet, um als Antwort auf die Steuerung der Steuerlogik 150 zu arbeiten. Der Adressendecoder 130 kann eine Adresse ADDR von der Steuerlogik 150 empfangen. Der Adressendecoder 130 kann eine Blockadresse unter den empfangenen Adressen ADDR dekodieren. Der Adressendecoder 130 wählt gemäß der dekodierten Blockadresse mindestens einen Speicherblock aus den Speicherblöcken aus. Der Adressendecoder 130 kann eine Zeilenadresse unter den empfangenen Adressen ADDR dekodieren. Der Adressendecoder 130 kann gemäß der dekodierten Zeilenadresse mindestens eine Wortleitung unter Wortleitungen eines ausgewählten Speicherblocks auswählen. In einer Ausführungsform kann der Adressendecoder 130 eine Spaltenadresse unter den empfangenen Adressen ADDR dekodieren. Der Adressendecoder 130 kann die Eingangs-/Ausgangsschaltung 140 und das Speicherzellenfeld 110 gemäß der dekodierten Spaltenadresse miteinander verbinden. Beispielsweise kann der Adressendecoder 130 Komponenten wie einen Zeilendecoder, einen Spaltendecoder und einen Adresspuffer umfassen.
-
Die Eingangs-/Ausgangsschaltung 140 kann eine Vielzahl von Seitenpuffern umfassen, die über die Bitleitungen mit dem Speicherzellenfeld 110 verbunden werden können. Während der Programmieroperation können Daten in ausgewählten Speicherzellen gemäß in der Vielzahl von Seitenpuffern gespeicherten Daten gespeichert werden. Bei den über die Eingangs-/Ausgangsschaltung 140 eingegebenen Daten kann es sich um Daten handeln, die durch den Datencodierer 1110 und der Fehlerkorrekturvorrichtung 1120 codiert werden.
-
Während der Leseoperation können die in den ausgewählten Speicherzellen gespeicherten Daten über die Bitleitungen abgetastet und die abgetasteten Daten können in den Seitenpuffern gespeichert werden.
-
Die Steuerlogik 150 kann den Adressendecoder 130, den Spannungsgenerator 120 und die Eingangs-/Ausgangsschaltung 140 steuern. Die Steuerlogik 150 kann als Antwort auf den von einer externen Vorrichtung übertragenen Befehl CMD arbeiten. Die Steuerlogik 150 kann als Antwort auf den Befehl CMD und die Adresse ADDR Steuersignale erzeugen, um die Peripherieschaltungen zu steuern.
-
Der Pumpspannungsgenerator 200 kann unter der Steuerung der Speichersteuerung 1000 die Eingangsspannung VCC oder die Referenz- (z.B. Masse-) Spannung GND empfangen. Der Pumpspannungsgenerator 200 kann die Pumpspannung VPP auf der Grundlage solcher Eingangswerte erzeugen und die Pumpspannung VPP an den Spannungsgenerator 120 zuführen. Zusätzlich kann der Pumpenspannungsgenerator 200 das Bereitschafts-Besetzt-Signal RBn von der Steuerlogik 150 empfangen und gemäß dem empfangenen Bereitschafts-Besetzt-Signal bestimmen, ob die Pumpenspannung Vpp erzeugt werden soll.
-
Auf den UM-Bereich 2120 des Hosts 2000 kann der Geräte-Geräte-UM-Manager 1320 der Host-Schnittstelle 1300 oder der Geräte-UM-Manager 1130 der Speicherschnittstelle 1100 zugreifen. Darüber hinaus kann auf den gemeinsam genutzten Bereich 2121 in dem UM-Bereich 2120 von dem Geräte-UM-Manager 1320 der Host-Schnittstelle 1300 oder den Geräte-UM-Manager 1130 der Speicherschnittstelle 1100 und der Host-Steuerung 2200 zugegriffen werden. Der UM-Bereich 2120 kann als eine Art Pufferspeicher verwendet werden, und die Positionsinformationen in dem UM-Bereich 2120 können an das Speichergerät 50 durch die Host-Steuerung 2200 bereitgestellt werden oder können an den Host 2000 durch den Geräte-UM-Manager 1320 der Host-Schnittstelle 1300 oder den Geräte-UM-Manager 1130 der Speicherschnittstelle 1100 bereitgestellt werden.
-
Wenn der Geräte-UM-Manager 1320 der Host-Schnittstelle 1300 oder der Geräte-UM-Manager 1130 der Speicherschnittstelle 1100 die Positionsinformationen in dem UM-Bereich 2120 bereitstellt, kann die Host-Steuerung 2200 in einer Ausführungsform die von dem Geräte-UM-Manager 1320 der Host-Schnittstelle 1300 oder dem Geräte-UM-Manager 1130 der Speicherschnittstelle 1100 bereitgestellten Positionsinformationen in die Adresse in dem UM-Bereich 2120 umwandeln, um auf den UM-Bereich 2120 zuzugreifen.
-
In einer anderen Ausführungsform, da die Speichersteuerung 1000 Adressinformationen des UM-Bereichs 2120 von dem Host 2000 im Voraus empfangen kann, kann der Geräte-UM-Manager 1320 der Host-Schnittstelle 1300 oder der Geräte-UM-Manager 1130 der Speicherschnittstelle 1100 die Adresse in dem UM-Bereich 2120 an die Host-Steuerung 2200 bereitstellen, und die Host-Steuerung 2200 kann ohne zusätzliche Adressumwandlung direkt auf den UM-Bereich 2120 zugreifen. Dabei kann die Adresse in dem UM-Bereich 2120 dadurch bereitgestellt werden, dass sie in dem von dem Host 2000 an das Speichergerät 50 bereitgestellten Befehl umfasst ist, oder die Speichersteuerung 1000 kann die Adresse in dem UM-Bereich 2120 durch direktes Lesen der Adresse in dem UM-Bereich 2120 von dem Host 2000 erhalten.
-
In der Speichersteuerung 1000 können der Deskriptor-Generator 1340, der Abbruchprozessor 1370, die Geräte-UM-Manager 1320 und 1130 und dergleichen eine funktionale Anordnung sein, die von dem Prozessor 1400 in der Speichersteuerung 1000 durchgeführt wird. Die Befehlsinspektionsvorrichtung 1310, der Befehlsmanager 1330, der Deskriptor-Prozessor 1360 und dergleichen können in der Speichersteuerung 1000 separate Anordnungen sein, die sich von dem Prozessor 1400 und dem internen Speicher 1500 unterscheiden.
-
24 zeigt ein Blockdiagramm, das ein SSD(Solid-State-Drive)-System 3000 darstellt, auf das ein Speichergerät gemäß einer Ausführungsform der vorliegenden Offenbarung angewendet wird.
-
Unter Bezugnahme auf 24 umfasst das SSD-System 3000 einen Host 3100 und ein SSD 3200. Das SSD 3200 tauscht mit dem Host 3100 über einen Signalanschluss 3001 Signale aus und empfängt über einen Stromanschluss 3002 Strom. Das SSD 3200 umfasst eine SSD-Steuerung 3210, eine Vielzahl von Flash-Speichern 3221 bis 322n, eine Hilfsstromversorgung 3230 und einen Pufferspeicher 3240.
-
Gemäß einer Ausführungsform der vorliegenden Offenbarung kann die SSD-Steuerung 3210 die Funktion der unter Bezugnahme auf 1, 16, 18, 19, 22 oder 23 beschriebenen Speichersteuerung 1000 durchführen.
-
Die SSD-Steuerung 3210 kann die Vielzahl von Flash-Speichern 3221 bis 322n als Antwort auf ein oder mehrere Signale steuern, die von dem Host 3100 empfangen werden. Das eine oder die mehreren Signale können beispielsweise auf einer Schnittstelle zwischen dem Host 3100 und der SSD 3200 basieren.
-
Die Hilfsstromversorgung 3230 ist über den Stromanschluss 3002 mit dem Host 3100 verbunden. Die Hilfsstromversorgung 3230 kann den Strom von dem Host 3100 empfangen und den Strom laden. Die Hilfsstromversorgung 3230 kann das SSD 3200 mit Strom versorgen, wenn die Stromversorgung von dem Host 3100 nicht reibungslos funktioniert. Zum Beispiel kann die Hilfsstromversorgung 3230 in dem SSD 3200 angeordnet sein oder außerhalb des SSD 3200 angeordnet sein. Zum Beispiel kann die Hilfsstromversorgung 3230 auf einer Hauptplatine (Main Board) angeordnet sein und kann das SSD 3200 mit Hilfsstrom versorgen.
-
Der Pufferspeicher 3240 arbeitet als Pufferspeicher des SSD 3200. Beispielsweise kann der Pufferspeicher 3240 von dem Host 3100 empfangene Daten oder von der Vielzahl von Flash-Speichern 3221 bis 322n empfangene Daten zwischenspeichern, oder er kann Metadaten (z.B. eine Abbildungstabelle) der Flash-Speicher 3221 bis 322n zwischenspeichern. Der Pufferspeicher 3240 kann einen flüchtigen Speicher (z.B. ein DRAM, ein SDRAM, ein DDR-SDRAM, ein LPDDR-SDRAM und ein GRAM) oder einen nichtflüchtigen Speicher wie ein FRAM, ein ReRAM, ein STT-MRAM oder ein PRAM umfassen.
-
25 zeigt ein Blockdiagramm, das ein Benutzersystem 4000 darstellt, auf das das Speichergerät gemäß einer Ausführungsform der vorliegenden Offenbarung angewendet wird.
-
Unter Bezugnahme auf 25 umfasst das Benutzersystem 4000 einen Anwendungsprozessor 4100, ein Speichermodul 4200, ein Netzwerkmodul 4300, ein Speichermodul 4400 und eine Benutzerschnittstelle 4500.
-
Der Anwendungsprozessor 4100 kann Komponenten, ein Betriebssystem (Operating System - OS), ein Benutzerprogramm oder dergleichen, die in dem Benutzersystem 4000 umfasst sind, steuern. Zum Beispiel kann der Anwendungsprozessor 4100 Steuerungen, Schnittstellen (Interfaces), Grafik-Engines und dergleichen umfassen, die die in dem Benutzersystem 4000 umfassten Komponenten steuern. Der Anwendungsprozessor 4100 kann als System-on-chip (SoC) bereitgestellt werden.
-
Das Speichermodul 4200 kann als Hauptspeicher, Betriebsspeicher, Pufferspeicher oder Cache-Speicher des Benutzersystems 4000 arbeiten. Das Speichermodul 4200 kann einen flüchtigen Speicher mit wahlfreiem Zugriff (z.B. ein DRAM, ein SDRAM, ein DDR SDRAM, ein DDR2 SDRAM, ein DDR3 SDRAM, ein LPDDR SDARM, ein LPDDR2 SDRAM und ein LPDDR3 SDRAM) oder einen nichtflüchtigen Speicher mit wahlfreiem Zugriff, wie ein PRAM, ein ReRAM, ein MRAM und ein FRAM umfassen. Beispielsweise können der Anwendungsprozessor 4100 und das Speichermodul 4200 auf der Grundlage eines Package-on-Package (POP) verpackt und als eine Halbleiterpackung bereitgestellt werden.
-
Das Netzwerkmodul 4300 kann mit externen Vorrichtungen kommunizieren. Zum Beispiel kann das Netzwerkmodul 4300 drahtlose Kommunikation wie CDMA (Code Division Multiple Access), GSM (Global System for Mobile Communications), WCDMA (Wideband CDMA), CDMA-2000, TDMA (Time Division Multiple Access), Long Term Evolution, Wimax, WLAN, UWB, Bluetooth und Wi-Fi unterstützen. Das Netzwerkmodul 4300 kann zum Beispiel in dem Anwendungsprozessor 4100 umfasst sein.
-
Das Speichermodul 4400 kann Daten speichern. Zum Beispiel kann das Speichermodul 4400 von dem Anwendungsprozessor 4100 empfangene Daten speichern. Alternativ dazu kann das Speichermodul 4400 die in dem Speichermodul 4400 gespeicherten Daten an den Anwendungsprozessor 4100 übertragen. Zum Beispiel kann das Speichermodul 4400 mit einem nichtflüchtigen Halbleiterspeicherelement wie einem Phase-Change-RAM (PRAM), einem magnetischen RAM (MRAM), einem resistiven RAM (RRAM), einem NAND-Flash, einem NOR-Flash und einem dreidimensionalen NAND-Flash realisiert werden. Das Speichermodul 4400 kann beispielsweise als herausnehmbares bzw. entfernbares Speichergerät (Wechsellaufwerk), wie z.B. eine Speicherkarte, und als externes Laufwerk des Benutzersystems 4000 bereitgestellt werden.
-
Zum Beispiel kann das Speichermodul 4400 eine Vielzahl von nichtflüchtigen Speichervorrichtungen umfassen, die beispielsweise identisch mit der unter Bezugnahme auf 1, 16, 18, 19, 22 oder 23 beschriebenen Speichervorrichtung 100 arbeiten können.
-
Die Benutzerschnittstelle 4500 kann Schnittstellen zum Eingeben von Daten oder einer Anweisung an den Anwendungsprozessor 4100 oder zum Ausgeben von Daten an eine externe Vorrichtung umfassen. Beispielsweise kann die Benutzerschnittstelle 4500 Benutzereingabeschnittstellen wie eine Tastatur, ein Tastenfeld, eine Taste, ein Touchpanel, einen Touchscreen, ein Touchpad, einen Touchball, eine Kamera, ein Mikrofon, einen Gyroskopsensor, einen Vibrations- bzw. Schwingungssensor und ein piezoelektrisches Element umfassen. Die Benutzerschnittstelle 4500 kann Benutzerausgabeschnittstellen umfassen, wie z.B. eine Flüssigkristallanzeige (Liquid Crystal Display - LCD), eine OLED(Organic Light Emitting Diode)-Anzeigevorrichtung, eine AMOLED(Active Matrix OLED)-Anzeigevorrichtung, eine LED, einen Lautsprecher und einen Monitor.
-
Die hier beschriebenen Verfahren, Prozesse und/oder Operationen können durch Codes oder Anweisungen durchgeführt werden, die von einem Computer, einem Prozessor, einer Vorrichtung oder einer anderen Signalverarbeitungsvorrichtung ausgeführt werden. Der Computer, der Prozessor, die Steuerung oder eine andere Signalverarbeitungsvorrichtung können die hier beschriebenen sein oder zusätzlich zu den hier beschriebenen Elementen vorhanden sein. Da die Algorithmen, die die Grundlage der Verfahren (oder Operationen des Computers, des Prozessors, der Steuerung oder einer anderen Signalverarbeitungsvorrichtung) bilden, detailliert beschrieben sind, können der Code oder die Anweisungen zum Realsieiren bzw. Implementieren der Operationen der Ausführungsformen des Verfahrens den Computer, den Prozessor, die Steuerung oder eine andere Signalverarbeitungsvorrichtung in einen Spezialprozessor zum Durchführen der Verfahren hierin verändern.
-
Eine andere Ausführungsform kann auch ein computerlesbares Medium umfassen, z.B. ein nichttransitorisches computerlesbares Medium, um den oben beschriebenen Code oder die Anweisungen zu speichern. Bei dem computerlesbaren Medium kann es sich um einen flüchtigen oder nichtflüchtigen Speicher oder ein anderes Speichergerät handeln, das abnehmbar oder fest mit dem Computer, dem Prozessor, der Steuerung oder einer anderen Signalverarbeitungsvorrichtung gekoppelt sein kann, das den Code oder die Anweisungen zum Durchführen der Ausführungsformen des Verfahrens oder Operationen der hierin beschriebenen Ausführungsformen der Vorrichtung ausführen soll.
-
Die Steuerungen bzw. Controller, Prozessoren, Vorrichtungen bzw. Geräte, Module, Einheiten, Multiplexer, Generatoren, Logik, Schnittstellen, Codierer, Zähler, Blöcke, Manager, Schaltungen, Decoder, Treiber, Generatoren und andere signalerzeugende und - verarbeitende Merkmale der hier offenbaren Ausführungsformen können beispielsweise in nichttransitorischer Logik realisiert werden, die Hardware, Software oder beides umfassen kann. Wenn sie zumindest teilweise in Hardware realisiert sind, können die Steuerungen bzw. Controller, Prozessoren, Vorrichtungen bzw. Geräte, Module, Einheiten, Multiplexer, Generatoren, Logik, Schnittstellen, Codierer, Zähler, Blöcke, Manager, Schaltungen, Decoder, Treiber, Generatoren und andere signalerzeugende und - verarbeitende Merkmale beispielsweise eine aus einer Vielzahl von integrierten Schaltungen sein, einschließlich in nicht einschränkender Weise eine anwendungsspezifische integrierte Schaltung, ein feldprogrammierbares Gate-Array, eine Kombination von Logikgattern, ein System-on-chip, einen Mikroprozessor oder eine andere Art von Verarbeitungs- oder Steuerschaltung.
-
Wenn sie zumindest teilweise in Software realisiert sind, können die Steuerungen/Controller, Prozessoren, Vorrichtungen, Module, Einheiten, Multiplexer, Generatoren, Logik, Schnittstellen, Codierer, Zähler, Blöcke, Manager, Schaltungen, Decoder, Treiber, Generatoren und andere signalerzeugende und - verarbeitende Merkmale beispielsweise einen Speicher oder ein anderes Speichergerät zum Speichern von Code oder Anweisungen umfassen, die beispielsweise von einem Computer, einem Prozessor, einem Mikroprozessor, einer Steuerung oder einer anderen Signalverarbeitungsvorrichtung ausgeführt werden. Bei dem Computer, dem Prozessor, dem Mikroprozessor, der Steuerung oder einer anderen Signalverarbeitungsvorrichtung kann es sich um die hierin beschriebenen Elemente handeln oder um eines zusätzlich zu den hierin beschriebenen Elementen. Da die Algorithmen, die die Grundlage der Verfahren (oder Operationen des Computers, Prozessors, Mikroprozessors, der Vorrichtung oder einer anderen Signalverarbeitungsvorrichtung) bilden, detailliert beschrieben sind, können der Code oder die Anweisungen zur Implementierung der Operationen der Verfahrensausführungen den Computer, Prozessor, die Vorrichtung oder eine andere Signalverarbeitungsvorrichtung in einen Spezialprozessor zum Durchführen der hier beschriebenen Verfahren verändern.
-
Obwohl verschiedene Ausführungsformen zur Veranschaulichung beschrieben worden sind, wird es für einen Fachmann offensichtlich sein, dass verschiedene Änderungen und Modifikationen vorgenommen werden können, ohne vom Sinn und Umfang der Erfindung, wie sie in den folgenden Ansprüchen definiert ist, abzuweichen. Die Ausführungsformen können kombiniert werden, um zusätzliche Ausführungsformen zu bilden.