DE112008004033T5 - Virtualized Ecc Nand - Google Patents

Virtualized Ecc Nand Download PDF

Info

Publication number
DE112008004033T5
DE112008004033T5 DE112008004033T DE112008004033T DE112008004033T5 DE 112008004033 T5 DE112008004033 T5 DE 112008004033T5 DE 112008004033 T DE112008004033 T DE 112008004033T DE 112008004033 T DE112008004033 T DE 112008004033T DE 112008004033 T5 DE112008004033 T5 DE 112008004033T5
Authority
DE
Germany
Prior art keywords
nand
controller
ecc
host
memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
DE112008004033T
Other languages
German (de)
Inventor
Anmelder Gleich
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Micron Technology Inc
Original Assignee
Numonyx BV Amsterdam Rolle Branch
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Numonyx BV Amsterdam Rolle Branch filed Critical Numonyx BV Amsterdam Rolle Branch
Publication of DE112008004033T5 publication Critical patent/DE112008004033T5/en
Ceased legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0625Power saving in storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/325Power saving in peripheral device
    • G06F1/3275Power saving in memory, e.g. RAM, cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1044Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices with specific ECC/EDC distribution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1072Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in multilevel memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0634Configuration or reconfiguration of storage systems by changing the state or mode of one or more devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Human Computer Interaction (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Detection And Correction Of Errors (AREA)

Abstract

Ein einziger virtualisierter ECC-NAND-Controller führt einen ECC-Algorithmus aus und verwaltet einen Stapel von NAND-Flash-Speichern. Der virtualisierte ECC-NAND-Controller ermöglichtes dem Host-Prozessor einen Stapel von FlashSpeichergeräten als einen einzigen NAND-Chip zu betreiben, wobei der Controller die Daten zu dem ausgewählten NAND-Speichergerät in dem Stapel umleitet.A single virtualized ECC NAND controller executes an ECC algorithm and manages a stack of NAND flash memories. The virtualized ECC NAND controller enables the host processor to operate a stack of flash memory devices as a single NAND chip, with the controller redirecting the data to the selected NAND memory device in the stack.

Description

Heutige Kommunikationsgeräte werden immer komplizierter und diversifizieren sich bei der Bereitstellung von vermehrter Funktionalität. Diese Geräte unterstützen Multimedia-Anwendungen, die Speicher mit höherer Kapazität erfordern, insbesondere welche, die durch Multichip-Package-Designs benötigt werden. Kommunikationsverbindungen, Busse, Chip-zu-Chip-Verbindungen und Speichermedien können mit einem hohen Niveau an intrinsischem Signal/Speicherfehlern arbeiten. Von diesen Kommunikationsgeräten wird erwartet, dass sie Fehlererkennungs- und korrekturmechanismen beinhalten. ECC (Error Correction Codes, Fehlerkorrekturcodes) haben in Speicherstrukturen Einzug gehalten, jedoch werden zusätzliche Verbesserungen benötigt.Today's communication devices are becoming more and more complicated and diversify in providing increased functionality. These devices support multimedia applications that require higher capacity storage, especially those required by multi-chip package designs. Communication links, buses, chip-to-chip connections, and storage media can operate with a high level of intrinsic signal / memory errors. These communication devices are expected to include error detection and correction mechanisms. ECC (Error Correction Codes) have been incorporated into memory structures, but additional improvements are needed.

KURZE BESCHREIBUNG DER ZEICHNUNGENBRIEF DESCRIPTION OF THE DRAWINGS

Der als Erfindung betrachtete Gegenstand wird insbesondere durch den zusammenfassenden Teil der Beschreibung hervorgehoben und deutlich sichtbar beansprucht. Die Erfindung wird jedoch sowohl als Organisationsstruktur, als auch als Betriebsverfahren, zusammen mit Objekten, Merkmalen und Vorteilen davon am Besten verstanden werden, durch auf die folgende detaillierte Beschreibung, wenn sie mit den begleitenden Zeichnungen gelesen wird, in denen:The object considered as invention is particularly emphasized by the summary part of the description and claimed clearly visible. However, the invention will be best understood both as an organizational structure and method of operation, together with objects, features and advantages thereof, by reference to the following detailed description when read in conjunction with the accompanying drawings, in which:

1 eine drahtlose Architektur illustriert, die einen virtualisierten ECC-NAND-Controller umfasst, um den ECC Algorithmus auszuführen und Datentransfers zwischen einem Host-Prozessor und einem Stack von NAND-Speichern in Übereinstimmung mit der vorliegenden Erfindung zu verwalten; 1 illustrates a wireless architecture that includes a virtualized ECC NAND controller to perform the ECC algorithm and to manage data transfers between a host processor and a stack of NAND stores in accordance with the present invention;

2 das Schnittstelle zwischen dem Host-Prozessor und dem Speicher illustriert, wobei der virtualisierte ECC-NAND-Controller funktionale Blöcke bereitstellt, die sowohl den ECC-Algorithmus ausführen, als auch die Datentransfers zu dem Stack von NAND-Speichern verwalten; und 2 illustrates the interface between the host processor and the memory, wherein the virtualized ECC NAND controller provides functional blocks that both execute the ECC algorithm and manage data transfers to the stack of NAND stores; and

3 weitere Details des virtualisierten ECC-NAND-Controllers zeigt. 3 shows more details of the virtualized ECC NAND controller.

Es sollte erkannt werden, dass für eine einfache und klare Darstellung Elemente, die in den Figuren illustriert sind, nicht notwendigerweise maßstabsgerecht gezeichnet sind. Beispielsweise könnten für eine klare Darstellung die Dimensionen von einigen der Elemente relativ zu den anderen Elementen übertrieben dargestellt sein. Weiterhin könnten, wo es geeignet erscheint, Bezugszeichen in den Figuren wiederholt werden, um entsprechende oder analoge Elemente zu bezeichnen.It should be appreciated that for ease of illustration, elements illustrated in the figures are not necessarily drawn to scale. For example, for clarity, the dimensions of some of the elements could be exaggerated relative to the other elements. Furthermore, where appropriate, reference numerals in the figures could be repeated to designate corresponding or analogous elements.

DETAILLIERTE BESCHREIBUNGDETAILED DESCRIPTION

In der folgenden detaillierten Beschreibung werden zahlreiche spezifische Details dargestellt, um ein tiefgreifendes Verständnis der Erfindung bereitzustellen. Jedoch sollte von den Fachleuten verstanden werden, dass die vorliegende Erfindung ohne diese spezifischen Details ausgeführt werden kann. In anderen Fällen wurden wohlbekannte Verfahren, Prozeduren, Komponenten und Schaltkreise nicht im Detail beschrieben, um nicht von der vorliegenden Erfindung abzulenken.In the following detailed description, numerous specific details are set forth in order to provide a thorough understanding of the invention. However, it should be understood by those skilled in the art that the present invention may be practiced without these specific details. In other instances, well-known methods, procedures, components, and circuits have not been described in detail so as not to distract from the present invention.

Die Ausführungsform die in 1 illustriert ist, zeigt eine Kommunikationsvorrichtung 10, die einen nicht flüchtigen Speicher mit einem virtualisieren ECC-NAND-Controller aufweisen kann, welcher mehrere NAND-Flash-Geräte in Übereinstimmung mit der vorliegenden Erfindung versorgt. Die vorliegende Erfindung ist nicht auf Ausführungsbeispiele der drahtlosen Kommunikation beschränkt und andere, nicht drahtlose Anwendungen können die vorliegende Erfindung nutzen. Wie in diesem drahtlosen Ausführungsbeispiel dargestellt, umfasst das Kommunikationsgerät 10 eine oder mehrere Antennenstrukturen 14, welche es Sendern/Empfängern ermöglichen mit anderen Funkkommunikationseinrichtungen zu kommunizieren. Dementsprechend können Kommunikationseinrichtungen 10 als zelluläre Geräte betrieben werden, oder als ein Gerät, welches in einem drahtlosen Netzwerk betrieben wird, wie beispielsweise in Wireless Fidelity(Wi-Fi)-Netzwerken, WiMax-Netzwerken, Mobile WiMax-Netzwerken, Wide Band Code Division Multiple Access(WCDMA)-Netzwerken und Global System for Mobile Communications(GSM)-Netzwerken, obwohl die vorliegende Erfindung nicht darauf beschränkt ist, nur in diesen Netzwerken zu funktionieren. Die Funksubsysteme, die zusammen auf der gleichen Plattform des Kommunikationsgeräts 10 angeordnet sind, stellen die Möglichkeit einer Kommunikation in unterschiedlichen Frequenzbändern in einem RF/Ortsbereich mit anderen Geräten in einem Netzwerk bereit.The embodiment of the in 1 is illustrated, shows a communication device 10 which may comprise a nonvolatile memory having a virtualized ECC NAND controller serving multiple NAND flash devices in accordance with the present invention. The present invention is not limited to embodiments of wireless communication, and other non-wireless applications may utilize the present invention. As illustrated in this wireless embodiment, the communication device includes 10 one or more antenna structures 14 which allow transmitters / receivers to communicate with other radio communication devices. Accordingly, communication devices 10 operating as cellular devices, or as a device operating in a wireless network such as Wireless Fidelity (Wi-Fi) networks, WiMax networks, Mobile WiMax networks, Wide Band Code Division Multiple Access (WCDMA) Networks and Global System for Mobile Communications (GSM) networks, although the present invention is not limited to operating only in these networks. The radio subsystems, which together on the same platform of the communication device 10 are arranged, provide the possibility of communication in different frequency bands in an RF / local area with other devices in a network.

Die Ausführungsform zeigt die Verbindung einer Antennenstruktur 14 mit einem Sende/Eempfangsgerät 12 um eine Modulation/Demodulation zu umfassen. Im Allgemeinen kann ein analoges Front-End-Sendeempfangsgerät 12 ein diskreter oder integrierter analoger Stand-Alone-Radiofrequenz(RF)-Schaltkreis sein, oder das Sende/Empfangsgerät 12 kann in eine zentrale Recheneinheit (CPU) 20 eines Hosts integriert sein, welche einen oder mehrere Prozessorkerne 16 und 18 enthält. Die mehreren Kerne ermöglichen es, Verarbeitungsbelastungen auf die Kerne zu verteilen und Basisbandfunktionen und Applikationsfunktionen zu verarbeiten. Daten und Anweisungen können zwischen der CPU und dem Speicher durch eine Speicherschnittstelle 28 transferiert werden.The embodiment shows the connection of an antenna structure 14 with a transmitting / receiving device 12 to include a modulation / demodulation. In general, an analog front-end transceiver can 12 be a discrete or integrated analog stand-alone radio frequency (RF) circuit, or the transceiver 12 can be transferred to a central processing unit (CPU) 20 a host that integrates one or more processor cores 16 and 18 contains. The multiple cores allow to distribute processing loads to the cores and to process baseband functions and application functions. Data and instructions can be transferred between the CPU and the memory through a memory interface 28 be transferred.

Der Systemspeicher 22 kann sowohl flüchtigen Speicher, als auch nicht-flüchtigen Speicher wie beispielsweise NAND-Speicherstrukturen 24 umfassen. Es sollte erwähnt werden, dass die flüchtigen und nicht-flüchtigen Speicher in einem separaten Package angeordnet sein können oder alternativ in einem Stapelprozess (Stacking) kombiniert sein können. Im Speziellen können die mehreren NAND-Speicherstrukturen in einem Multi-Chip Package (MCP) angeordnet sein, um ihre Grundfläche auf einer Leiterplatte zu verringern. Daher zeigen die verschiedenen Ausführungsformen des Systemspeichers 22, dass Speichervorrichtungen in unterschiedlichen Arten angeordnet sein können, indem Speichergeräte gemischt werden und Konfigurationen gemischt werden, um den begrenzten Raum innerhalb des Kommunikationsprodukts zu nutzen. Verschiedene Package-Optionen können verwendet werden, um die richtige Kombination von niedriger Leistung und hoher Zuverlässigkeit zu finden. The system memory 22 can handle both volatile memory and non-volatile memory such as NAND memory structures 24 include. It should be noted that the volatile and non-volatile memories may be arranged in a separate package or alternatively may be combined in a stacking process. In particular, the multiple NAND memory structures may be arranged in a multi-chip package (MCP) to reduce their footprint on a printed circuit board. Therefore, the various embodiments of the system memory show 22 in that memory devices can be arranged in different ways by mixing storage devices and mixing configurations to take advantage of the limited space within the communication product. Different package options can be used to find the right combination of low power and high reliability.

Im Stand der Technik ist ein ECC(Fehlerkorrekturcode)-Algorithmus, der innerhalb eines NAND-Speichers durchgeführt wird, darauf beschränkt, Fehlererkennungs- und korrekturmechanismen bereitzustellen, die nur auf dieses einzelne Speichergerät anwendbar sind. Es ist aufwändig, eine feste Host-Plattform zu erneuern, um eine neue NAND-Technologie hinsichtlich der ECC-Anforderungen, Seitengröße, Adressierungsmöglichkeiten, neuen Befehlssatzspezifikationen, etc. zu erneuern. Weiter einschränkend ist, dass der ECC-Algorithmus technologiespezifisch ist. Beispielsweise würde ein Wechsel zwischen der Single Level Cell(SLC)-Technologie und der Multi Level Cell(MLC)-Technologie den verwendeten ECC-Algorithmus unbrauchbar machen. Zusätzlich würde ein Ersatzspeicher, welcher ein unterschiedliches Produktkompressionsniveau aufweist, Modifikationen an dem existierenden ECC-Algorithmus notwendig machen. Zusätzlich rufen aktuelle Speichergärte, die eine intern eingebaute ECC aufweisen, einen Kostennachteil hervor, basierend auf dem kombinierten Chipbereich für den Flash und die ECC-Algorithmuslogik.In the prior art, an ECC (error correction code) algorithm performed within a NAND memory is limited to providing error detection and correction mechanisms that are applicable only to this single memory device. It is costly to renew a fixed host platform to renew a new NAND technology in terms of ECC requirements, page size, addressing capabilities, new instruction set specifications, etc. Further limiting is that the ECC algorithm is technology specific. For example, switching between Single Level Cell (SLC) technology and Multi Level Cell (MLC) technology would render the ECC algorithm unusable. In addition, a spare memory having a different product compression level would necessitate modifications to the existing ECC algorithm. In addition, current memory levels that have an internally incorporated ECC cause a cost penalty based on the combined chip area for the flash and the ECC algorithm logic.

Um diese Nachteile zu überwinden und in Einklang mit der vorliegenden Erfindung, ermöglicht die Architektur, die in 2 dargestellt ist, es mit einem einzelnen virtualisierten ECC-NAND-Controller 26 mehrere NAND-Speicherstrukturen zu unterstützen, z. B. einen „Roh”-Speicherstapel 24. Der Ausdruck „roh” impliziert, dass die NAND-Speicher-Geräte intern keinen ECC-Algorithmus implementieren. Die Host-CPU 20 betreibt den virtualisierten ECC-NAND-Controller 26 und die rohen NAND-Speicherstrukturen als ein einzelnes Speichersystem, unabhängig von der Anzahl der rohen NAND-Speicher, die sich darin befinden. Darüber hinaus ist der Energieverbrauch verringert verglichen mit einer gestapelten Architektur nach dem Stand der Technik, weil diese Lösung ein NAND zu einer Zeit auswählen kann. Der virtualisierte ECC-NAND-Controller 26 umfasst ein Protokollschnittstelle 30, welches Signale mit einer Host-CPU 20 austauscht, eine ECC-Engine 32, die dazu dient, den ECC-Algorithmus zu implementieren und eine NAND-Schnittstelle 43, das den Speicherstapel 24 verwaltet.In order to overcome these disadvantages and in accordance with the present invention, the architecture enabled in 2 It is presented with a single virtualized ECC NAND controller 26 support multiple NAND memory structures, e.g. B. a "raw" storage stack 24 , The term "raw" implies that the NAND storage devices do not internally implement an ECC algorithm. The host CPU 20 runs the virtualized ECC NAND controller 26 and the raw NAND memory structures as a single memory system, regardless of the number of raw NAND memory residing therein. In addition, power consumption is reduced compared to a prior art stacked architecture because this solution can select one NAND at a time. The virtualized ECC NAND controller 26 includes a protocol interface 30 which signals with a host CPU 20 exchanges, an ECC engine 32 , which serves to implement the ECC algorithm and a NAND interface 43 that the memory pile 24 managed.

Der virtualisierte ECC-NAND-Controller 26 dient als die Brücke von der Host-NAND-Schnittstelle zu dem rohen NAND-Speicherstapel und stellt den richtigen ECC-Algorithmus dem Host für das rohe NAND bereit, das in dem Systemspeicher bereitgestellt ist. Die Host-Seite arbeitet mit ihrer Standard-NAND-Schnittstelle, Adressbereich, Befehlssatz, Seitengröße, ECC, etc. und der virtualisierte ECC-NAND-Controller 26 adaptiert die Host-Seite zu dem spezifischen rohen NAND, das in dem Speicherstapel enthalten ist.The virtualized ECC NAND controller 26 serves as the bridge from the host NAND interface to the raw NAND memory stack and provides the proper ECC algorithm to the host for the raw NAND provided in the system memory. The host side works with its standard NAND interface, address range, command set, page size, ECC, etc., and the virtualized ECC NAND controller 26 adapts the host page to the specific raw NAND contained in the memory stack.

Durch das Entfernen der ECC-Funktionalität von den individuellen NAND-Speichergeräten in dem NAND-Stapel und durch Einbringen dieser Funktionalität in den ECC-NAND-Controller 26 können eine Vielzahl von Merkmalen realisiert werden. Durch einen ECC-NAND-Controller 26, der extern zu den NAND-Speichergeräten ist, realisiert die Host-Seite einen virtualisierten Adressbereich, welcher es ermöglicht, dass der Host das System als ein Single-NAND-Chip betreibt, obwohl mehrere NAND-Speichergeräte in dem Speichersystem vorhanden sind. Dadurch ist es dem Host-CPU 20 freigestellt, mehrere Chips an dieser Schnittstelle zu verwalten. In anderen Worten kann, während die Host-CPU 20 einen Chip an der Schnittstelle verwalten kann, der virtualisierte ECC-NAND-Controller 26 die NAND-Speichergeräte in dem gestapelten Speicher verwalten.By removing the ECC functionality from the individual NAND storage devices in the NAND stack and by bringing this functionality into the ECC NAND controller 26 a variety of features can be realized. Through an ECC NAND controller 26 external to the NAND storage devices, the host side realizes a virtualized address space which allows the host to operate the system as a single-NAND chip, although several NAND storage devices are present in the storage system. This makes it the host CPU 20 free to manage multiple chips at this interface. In other words, while the host CPU 20 can manage a chip at the interface, the virtualized ECC NAND controller 26 manage the NAND storage devices in the stacked storage.

Produkte nach dem Stand der Technik implementieren ECC zusammen mit Datenmanagementalgorithmen, wie z. B. einem Flash Translation Layer (FTL), Wear Levelling, Bad Block Management, etc. innerhalb eines gemeinsamen integrierten Schaltkreises. Im Gegensatz dazu separiert die Architektur, die in den Figuren dargestellt ist, ECC von den Datenmanagementalgorithmen. Der virtualisierte ECC-NAND-Controller 26 implementiert nur den ECC-Algorithmus und keinen anderen Datenmanagementalgorithmus. Dies ermöglicht es der Host-CPU 20, eine volle Kontrolle über den virtualisierten Speicher hinsichtlich der Datenseiten und des Metadatenbereichs aufrecht zu erhalten und der virtualisierte ECC-NAND-Controller 26 stellt eine bessere ECC-Engine bereit.Prior art products implement ECC together with data management algorithms, such as data management algorithms. As a Flash Translation Layer (FTL), Wear Leveling, Bad Block Management, etc. within a common integrated circuit. In contrast, the architecture illustrated in the figures separates ECC from the data management algorithms. The virtualized ECC NAND controller 26 implements only the ECC algorithm and no other data management algorithm. This allows the host CPU 20 to maintain full control of the virtualized storage in terms of the data pages and metadata space, and the virtualized ECC NAND controller 26 provides a better ECC engine.

Durch die Verwendung eines virtualisierten ECC-NAND-Controllers 26 als Brücke von der Host-NAND-Schnittstelle zu dem rohen NAND-Speicherstapel kann die Host-Plattform eine Seitengröße verwalten, welche unterschiedlich ist von der Seitengröße des rohen NAND. Weiterhin isoliert der ECC-NAND-Controller 26 die Host-Plattform von dem Speicherstapel, was ermöglicht, dass die Host-CPU 20 einige Befehle verwendet, welche nicht von dem rohen NAND unterstützt werden. In einer Ausführungsform kann die Host-CPU 20 einen größeren Befehlssatz aufweisen als den Befehlssatz der physikalischen Speichergeräte in dem virtualisierten ECC-NAND, während in einer anderen Ausführungsform der Befehlssatz des Host ein verringerter Befehlssatz ist, verglichen mit dem Befehlssatz innerhalb des virtualisierten ECC-NAND. In jeder Ausführungsform adaptiert die Logik innerhalb des ECC-NAND-Controllers 26 den Befehlssatz der Host-CPU 20 zu dem Befehlssatz der physikalischen Speichergeräte. Die Host-Plattform kann einen Basis-NAND-Befehlssatz verwenden und der virtualisierte NAND-Controller 26 kann einen erweiterten neuen Befehlssatz verwenden.By using a virtualized ECC NAND controller 26 As a bridge from the host NAND interface to the raw NAND memory stack, the host platform can manage a page size that is different from the one used by the host platform Page size of raw NAND. Furthermore, the ECC NAND controller is isolated 26 the host platform from the memory stack, which allows the host CPU 20 uses some commands that are not supported by the raw NAND. In one embodiment, the host CPU 20 have a larger instruction set than the instruction set of the physical storage devices in the virtualized ECC NAND, while in another embodiment the instruction set of the host is a reduced instruction set compared to the instruction set within the virtualized ECC NAND. In each embodiment, the logic adapts within the ECC NAND controller 26 the instruction set of the host CPU 20 to the instruction set of physical storage devices. The host platform can use a basic NAND instruction set and the virtualized NAND controller 26 can use an extended new instruction set.

Die 3 zeigt weitere Details, die es der Host-CPU 20 erlauben, mit der Protokollschnittstelle 30 über elektrische Verbindungen, welche gegenüber der Protokollspezifikation unverändert verbleiben, eine Schnittstelle einzugehen, was es dem Host ermöglicht, mit einem einzigen Speichersystem mit einem großen fehlerfreien Adressbereich zu kommunizieren. Um es anders auszudrücken, ermöglicht diese Architektur der Host-CPU 20 Datenaustausche bereitzustellen als eine Standard-NAND-Schnittstelle mit einem Speicherstapel 24, wobei ein virtueller Befehlssatz und Adressbereich beibehalten wird.The 3 shows more details that it's the host CPU 20 allow, with the protocol interface 30 to interface via electrical connections that remain unchanged from the protocol specification, allowing the host to communicate with a single memory system with a large error-free address space. To put it another way, this architecture enables the host CPU 20 Provide data exchanges as a standard NAND interface with a memory stack 24 maintaining a virtual instruction set and address range.

Gleichzeitig und ohne interne Logik der Host-Plattform hinzuzufügen, stellt das ECC-NAND 26 die ECC-Funktion bereit, um die Gesamtzuverlässigkeit des Datenaustauschs zu erhöhen, indem Bitfehler in dem rohen NAND korrigiert werden. Die Adressierung ist virtualisiert, weil die Host-CPU 20 das angeschlossene Speichergerät so betreibt, als wäre es ein einziger NAND-Chip, während der virtualisierte ECC-NAND-Controller 26 die Daten zu einem ausgewählten NAND des Stapels umleitet. Daher verwaltet ein einzelner virtualisierter ECC-NAND-Controller 26 den Stapel von NAND-Flash-Speichern und führt den ECC-Algorithmus aus.At the same time and without adding internal logic to the host platform, this provides the ECC NAND 26 provide the ECC function to increase the overall reliability of the data exchange by correcting bit errors in the raw NAND. The addressing is virtualized because the host CPU 20 the attached storage device operates as if it were a single NAND chip, while the virtualized ECC NAND controller 26 redirects the data to a selected NAND of the stack. Therefore, a single virtualized ECC NAND controller manages 26 the stack of NAND flash memories and executes the ECC algorithm.

Weiterhin macht diese Architektur mit dem virtualisierten ECC-NAND-Controller 26 zwischen der Host-CPU 20 und einem Speicherstapel 24 es möglich, die Verwendung eines einzigen NAND-Geräts zu einem Host zu adaptieren, der in der Lage ist, einen Satz von NAND-Speichern zu verwalten, die unterschiedliche Chip-Enable-(CE)-Pins verwenden. In einer Ausführungsform betreibt die Host-Schnittstelle selektiv unterschiedliche Flash-Speicher durch die Verwendung des CE-Signals, während das virtualisierte ECC-NAND aus einem einzigen NAND-Chip höherer Dichten besteht. Die interne Logik des virtualisierten ECC-NAND-Controllers 26 übersetzt die Anfrage von der Host-CPU 20, welche einen der CEs in Betrieb setzt, was einen Bereich des NAND-Arrays adressiert, und codiert die Anfrage in dem Adresszyklus, was durch das ausgewählte NAND-Speichergerät selbst unterstützt wird. Es sollte erwähnt werden, dass die Host-CPU 20 eine Anzahl von Adresszyklen aufweisen kann, die niedriger ist, als die Anzahl der Zyklen, die von einem rohen NAND-Speichergerät benötigt werden. Wiederum kann die Host-Plattform eine Seitengröße verwalten, die unterschiedlich ist von der Seitengröße eines rohen Speichergeräts und sogar einige Befehle verwenden kann, die nicht durch das Speichergerät unterstützt werden, wie beispielsweise eine Mehrebenenfunktion oder eine Cache-Funktion.This architecture continues with the virtualized ECC NAND controller 26 between the host CPU 20 and a memory stack 24 It is possible to adapt the use of a single NAND device to a host capable of managing a set of NAND stores using different chip enable (CE) pins. In one embodiment, the host interface selectively operates different flash memories through the use of the CE signal, while the virtualized ECC NAND consists of a single higher density NAND chip. The internal logic of the virtualized ECC NAND controller 26 translates the request from the host CPU 20 which initiates one of the CEs, which addresses a portion of the NAND array, and encodes the request in the address cycle, which is supported by the selected NAND memory device itself. It should be mentioned that the host CPU 20 may have a number of address cycles that is less than the number of cycles needed by a raw NAND storage device. Again, the host platform can manage a page size that is different than the page size of a raw storage device and can even use some commands that are not supported by the storage device, such as a multi-level function or a cache function.

Beispielsweise kann, wenn das rohe NAND-Speichergerät nicht die Mehrebenenfunktionen unterstützt, der virtualisierte ECC-NAND-Controller 26 Befehle durch zwei Kanäle emulieren. Wenn das rohe NAND-Speichergerät nicht die Cache-Funktionen unterstützt, kann der virtualisierte ECC-NAND-Controller 26 die Kommandos mit einem internen Ping-Pong-Puffer, etc. emulieren. Darüber hinaus, wenn die Host-Plattform eine Seitengröße benötigt, die unterschiedlich ist von der Seitengröße des rohen NAND-Speichergeräts, stellt der virtualisierte ECC-NAND-Controller 26 einen virtualisierten physikalischen Block mit einer Seitengröße und einer Anzahl von Seiten bereit, die unterschiedlich sind von den tatsächlichen.For example, if the raw NAND storage device does not support the multilevel functions, the virtualized ECC NAND controller may 26 Emulate commands through two channels. If the raw NAND storage device does not support the cache functions, the virtualized ECC NAND controller may be used 26 emulate the commands with an internal ping-pong buffer, etc. In addition, if the host platform requires a page size that is different from the page size of the raw NAND storage device, it represents the virtualized ECC NAND controller 26 a virtualized physical block with a page size and a number of pages ready that are different from the actual ones.

Die Protokoll-Schnittstelle 30 ist der Bereich des virtualisierten ECC-NAND-Controllers 26 der mit der Host-CPU 20 kommuniziert unter Verwendung des Standard-NAND-Kommunikationsprotokolls. Die Protokollschnittstelle 30 interpretiert jeden empfangenen Befehl und leitet weiterhin das Speichern von jeglichen Daten, die der Host überträgt. Darüber hinaus verwaltet die Protokollschnittstelle 30 das NAN-Bereit/Beschäftigt-Signal, um die Latenz des ECC-Algorithmus zu berücksichtigen. Die Protokollschnittstelle 30 umfasst einen internen Puffer 36, um Daten zu speichern, die von der Host-CPU 20 während einer Programmausführung übertragen werden. Nachfolgend setzt eine Bestätigungsbefehlprotokollschnittstelle 30 das Beschäftigt-Signal auf einen niedrigen Wert, um jede Art von Datenbetrieb in Richtung des virtualisierten ECC-NAND-Controllers 26 zu vermeiden.The protocol interface 30 is the scope of the virtualized ECC NAND controller 26 the one with the host CPU 20 communicates using the standard NAND communication protocol. The protocol interface 30 interprets each received command and also forwards the storage of any data that the host transmits. It also manages the protocol interface 30 the NAN ready / busy signal to account for the latency of the ECC algorithm. The protocol interface 30 includes an internal buffer 36 to save data by the host CPU 20 during a program execution. Below is a confirmation command protocol interface 30 the busy signal to a low value to any kind of data operation towards the virtualized ECC NAND controller 26 to avoid.

Die Größe des Puffers 36 wird geeignet gewählt, um die Latenz zu verringern, die durch die ECC-Berechnung eingebracht wird. Mit der geeigneten Puffergröße kann die Host-CPU 20 damit beginnen, eine neue Seite zu senden während einer Schreibeoperation, ohne darauf zu warten, dass die vorhergehende Flash-Programmoperation beendet ist. Dieser Zeitvorteil ist vorteilhaft während einer sequenziellen Leseoperation und daher kann während die ECC-Engine 32 die Redundanz auf der gegenwärtigen Seite berechnet, die nächste Seite von dem rohen NAND abgerufen werden.The size of the buffer 36 is suitably chosen to reduce the latency introduced by the ECC calculation. With the appropriate buffer size, the host CPU 20 begin sending a new page during a write operation without waiting for the previous Flash program operation to complete. This time advantage is advantageous during a sequential read operation and therefore can while the ECC engine 32 the redundancy calculated on the current page, the next page is retrieved from the raw NAND.

Die ECC-Engine 32 ist der Bereich des virtualisierten ECC-NAND-Controllers 26, der dazu dient, die ECC-Algorithmen zu implementieren, welche die Redundanz der Daten berechnet, die durch die Host-CPU 20 gesendet werden. Der ECC-Algorithmus wird verwendet, um Fehler zu detektieren und zu korrigieren, welche auftreten bei den Originalinformationen, während des Speicherns, Schreibens oder Lesens zu und von dem gestapelten Speicher 24. Der ECC-Algorithmus kann multilevel zyklische fehlerkorrigierende Digitalcodes mit variabler Länge implementieren, um mehrere zufällige Fehlermuster zu korrigieren. Insofern kann die ECC-Engine 32 einen BCH-Code oder einen Reed-Solomon-Algorithmus implementieren.The ECC engine 32 is the scope of the virtualized ECC NAND controller 26 which is used to implement the ECC algorithms, which calculates the redundancy of the data provided by the host CPU 20 be sent. The ECC algorithm is used to detect and correct errors that occur in the original information, during storage, writing or reading to and from the stacked memory 24 , The ECC algorithm can implement multilevel variable-length cyclic error-correcting digital codes to correct for multiple random error patterns. In that sense, the ECC engine 32 implement a BCH code or a Reed-Solomon algorithm.

Während einer Schreibeoperation berechnet der ECC-Algorithmus die Redundanz der Daten, die durch den Host gesendet werden. Die Redundanz wird, sobald sie berechnet ist, zu den Host-Daten hinzu addiert und zu dem NAND-Flash-Seitenpuffer transferriert. Während einer Leseoperation berechnet die NAND-Engine 32 wiederum die Redundanz der Daten, die von den rohen NANDs kommen, um sie mit dem alten Redundanzwert zu vergleichen, der vorher in dem Flash-Speicher gespeichert wurde. Wenn die zwei Redundanzwerte gleich sind, dann sind die Daten korrekt und zugelassen, um von dem Protkollschnittstellenpuffer zu der Host-CPU 20 transferiert zu werden. Jedoch, wenn die zwei Redundanzwerte nicht gleich sind, korrigiert die ECC-Engine 32 die fehlerhaften Datenbits, bevor die Daten zu der Host-CPU 20 transferiert werden.During a write operation, the ECC algorithm calculates the redundancy of the data sent by the host. The redundancy, once calculated, is added to the host data and transferred to the NAND flash page buffer. During a read operation, the NAND engine calculates 32 again, the redundancy of the data coming from the raw NANDs to compare with the old redundancy value previously stored in the flash memory. If the two redundancy values are equal, then the data is correct and allowed to pass from the protocol interface buffer to the host CPU 20 to be transferred. However, if the two redundancy values are not equal, the ECC engine corrects 32 the erroneous data bits before the data to the host CPU 20 be transferred.

Ein Lesefehler wird der Host-CPU 20 signalisiert, wenn die Anzahl der Fehler höher ist, als die ECC-Korrekturmöglichkeit.A read error will be the host CPU 20 signals when the number of errors is higher than the ECC correction possibility.

Das NAND-Schnittstelle 34 ist der Bereich des virtualisierten ECC-NAND-Controllers 26, der dazu dient, mit den rohen NANDs zu kommunizieren, indem sowohl die Befehle, als auch die Adressen, die von der Host-CPU 20 empfangen werden, neu ausgearbeitet werden. Daher werden in einer Schreibeoperation die Daten von dem Protkollschnittstellenpuffer zu dem ausgewählten Flash-Speicher übertragen. In dieser Funktion decodiert die NAND-Schnittstelle 34 die Adresse, um die empfangenen Daten zu dem ausgewählten NAND umzuleiten und sendet die neue Nutzlast der Daten plus die ECC-Redundanz zu dem ausgewählten rohen NAND in dem gestapelten Speicher 24. Während dieser Operation verbleibt das Beschäftigt-Signal niedrig und wechselt zu einem hohen Signalniveau, wenn die Programmoperation des rohen NAND endet.The NAND interface 34 is the scope of the virtualized ECC NAND controller 26 which serves to communicate with the raw NANDs by using both the commands and the addresses provided by the host CPU 20 be received, recalculated. Therefore, in a write operation, the data is transferred from the protocol interface buffer to the selected flash memory. In this function decodes the NAND interface 34 the address to redirect the received data to the selected NAND and sends the new payload of the data plus the ECC redundancy to the selected raw NAND in the stacked memory 24 , During this operation, the busy signal remains low and changes to a high signal level when the program operation of the raw NAND ends.

Während einer Leseoperation überträgt die NAND-Schnittstelle 34 Daten von dem ausgewählten rohen NAND zu dem Puffer 36 in der Protokollschnittstelle 30. In der Zwischenzeit verarbeitet die ECC-Engine 32 die Daten, um die zugehörige Parität zu berechnen für einen Vergleich mit der Redundanz, die aus dem Flash-Speicher gelesen wird, und wenn notwendig werden Bitkorrekturen durchgeführt.During a read operation, the NAND interface transfers 34 Data from the selected raw NAND to the buffer 36 in the protocol interface 30 , In the meantime, the ECC engine is processing 32 the data to calculate the associated parity for comparison with the redundancy read from the flash memory and, if necessary, bit corrections are made.

Wenn die Protokollschnittstelle 30 einen Chip-Enable-Pin aufweist und die NAND-Schnittstelle 34 mehr als einen Chip-Enable-Pin aufweist, wird die Adresse decodiert, um die Daten zu dem ausgewählten rohen NAND-Speichergerät des Speicherstapels umzuleiten. Andererseits wird, wenn die Protokollschnittstelle 30 mehr Chip-Enable-Pins als die NAND-Schnittstelle 34 aufweist, die Adresse decodiert, um die Daten zu dem richtigen Teil des rohen NAND umzuleiten, in Abhängigkeit davon welches Chip-Enable-Signal niedrig ist.If the protocol interface 30 has a chip enable pin and the NAND interface 34 has more than one chip enable pin, the address is decoded to redirect the data to the selected raw NAND storage device of the memory stack. On the other hand, if the protocol interface 30 more chip-enable pins than the NAND interface 34 the address is decoded to redirect the data to the correct portion of the raw NAND, depending on which chip enable signal is low.

Durch die Verwendung eines virtualisierten ECC-NAND-Controllers 26 um den ECC-Algorithmus extern zu dem Stapel der NAND-Flash-Speicher auszuführen, wird eine flexible Speichersystemlösung hinsichtlich der Technologie und der Anzahl der Speichergeräte sichergestellt. Tatsächlich kann der virtualisierte ECC-NAND-Controller 26 weiterarbeiten, unabhängig davon, ob der nicht-flüchtige Speicher, der in dem Speicherstapel 24 enthalten ist, SLC und/oder MLC ist. Weiterhin ist der virtualisierte ECC-NAND-Controller 26 in der Lage, mehrere Flash-NAND-Geräte zu verwalten und berücksichtigt auch Speichergeräte, die unterschiedliche Kompressionsniveaus aufweisen. Es sollte auch beachtet werden, dass ein Wechsel der ECC-Korrekturmöglichkeiten innerhalb des virtualisierten ECC-NAND-Controllers 26 keinen Einfluss auf das Flash-NAND-Design hat. Darüber hinaus ist der Energieverbrauch verglichen mit der traditionellen gestapelten Architektur verringert, da mit der Lösung, die durch die Architektur, die in 3 dargestellt ist, ein NAND-Speichergerät zu einer Zeitausgewählt werden kann.By using a virtualized ECC NAND controller 26 To execute the ECC algorithm external to the stack of NAND flash memories, a flexible storage system solution is ensured in terms of technology and the number of storage devices. In fact, the virtualized ECC NAND controller 26 continue working, regardless of whether the non-volatile memory in the memory stack 24 contained, SLC and / or MLC is. Furthermore, the virtualized ECC NAND controller 26 able to manage multiple Flash NAND devices and also considers storage devices that have different compression levels. It should also be noted that a change of ECC correction capabilities within the virtualized ECC NAND controller 26 has no effect on the Flash NAND design. In addition, the energy consumption is reduced compared to the traditional stacked architecture, as with the solution provided by the architecture in the 3 1, a NAND storage device may be selected at one time.

Da neue Speichertechnologien die Anzahl der Bits, die in einer einzelnen Zelle gespeichert werden, vergrößert, vergrößert sich auch die Wahrscheinlichkeit von Lese-, Schreibe- und Speicherfehlern. Dies erfordert die Verwendung von vollständigeren ECC-Algorithmen, die Codes aufweisen mit einer verbesserten Korrekturleistung. Um diese technischen Schwierigkeiten zu lösen, sollte es nun offensichtlich sein, dass die dargestellten Ausführungsformen der vorliegenden Erfindung eine Architektur bereitstellen, in der ein einziger Controller einen Stapel von NAND-Flash-Speichern verwaltet, zusammen mit dem Ausführen des ECC-Algorithmus. Diese Architektur ermöglicht es der Host-CPU, ein einziges Speichersystem zu betreiben mit einem großen fehlerfreien Adressbereich, unter Verwendung eines Standard-NAND-Protokolls. Durch Anordnen der ECC-Korrekturmöglichkeit in dem externen Controller, können Änderungen an dem ECC-Algorithmus erleichtert werden, ohne Änderungen in der Flash-Maske hervorzurufen. Der externe Controller ermöglicht auch die Verwendung von unterschiedlichen Technologien für den Controller und die NAND-Speicher und ermöglicht Speichergeräte mit unterschiedlichen Kompressionsniveaus.As new storage technologies increase the number of bits stored in a single cell, the likelihood of read, write, and memory errors also increases. This requires the use of more complete ECC algorithms having codes with improved correction performance. To solve these technical difficulties, it should now be apparent that the illustrated embodiments of the present invention provide an architecture in which a single controller manages a stack of NAND flash memories, along with performing the ECC algorithm. This architecture allows the host CPU to operate a single memory system with a large error free address space using a standard NAND protocol. By placing the ECC correction capability in the external controller, changes to the ECC algorithm can be facilitated without causing changes in the flash mask. The external controller also allows the use of different technologies for the controller and the NAND memory and allows storage devices with different compression levels.

Während bestimmte Merkmale dieser Erfindung hierin dargestellt und beschrieben wurden, können Modifikationen, Ersetzungen, Änderungen und Äquivalente nun den Fachleuten in den Sinn kommen. Es sollte daher verstanden werden, dass die beiliegenden Ansprüche alle solche Modifikationen und Änderungen abdecken sollen, die unter den wahren Geist der Erfindung fallen.While certain features of this invention have been illustrated and described herein, modifications, substitutions, changes, and equivalents may now occur to those skilled in the art. It is therefore to be understood that the appended claims are intended to cover all such modifications and changes as fall within the true spirit of the invention.

Claims (20)

Ein Speichersystem, zum Verbinden mit einem Host, aufweisend: erste und zweite NAND-Speichergeräte in dem Speichersystem; und einen Controller, der extern zu den ersten und zweiten NAND-Speichergeräten ist, welcher einen virtualisierten Adressbereich zum dem Host exportiert, um es dem Host zu ermöglichen, das Speichersystem zu als einen einzigen NAND-Chip betreiben, sogar wenn das Speichersystem mehrere NAND-Speichergeräte umfasst.A storage system for connecting to a host, comprising: first and second NAND storage devices in the storage system; and a controller that is external to the first and second NAND storage devices that exports a virtualized address space to the host to allow the host to operate the storage system as a single NAND chip, even if the storage system has multiple NAND storage devices includes. Das Speichersystem gemäß Anspruch 1, wobei der Controller einen Fehlerkorrekturcode-(ECC)-Algorithmus implementiert und keine Datenmanagement-Algorithmen des Wear-Levelings und Bad-Block Managements.The memory system of claim 1, wherein the controller implements an error correction code (ECC) algorithm and not data management algorithms of wear leveling and bad block management. Das Speichersystem gemäß Anspruch 2, wobei der Controller ein Protokollschnittstellenschaltkreis umfasst, mit einem Puffer, um die Latenzzeit zu verringern, die durch Berechnungen des ECC-Algorithmus eingebracht wird.The memory system of claim 2, wherein the controller comprises a protocol interface circuit having a buffer for reducing the latency introduced by calculations of the ECC algorithm. Das Speichersystem gemäß Anspruch 3, wobei der Protokollschnittstellenschaltkreis ein NAND-Bereit/Beschäftigt-Signal an den Host-Prozessor verwaltet, um die Latenz für den ECC-Algorithmus zu berücksichtigen.The memory system of claim 3, wherein the protocol interface circuit manages a NAND ready / busy signal to the host processor to account for latency for the ECC algorithm. Das Speichersystem gemäß Anspruch 1, wobei der Controller eine Seitengröße des ersten NAND-Speichergeräts verwaltet, welche von der Seitengröße des Host unterschiedlich ist.The storage system of claim 1, wherein the controller manages a page size of the first NAND storage device that is different than the page size of the host. Das Speichersystem gemäß Anspruch 1, wobei der Controller Befehle adaptiert, welche von dem Host ausgegeben werden, welche nicht von den ersten und zweiten NAND-Speichergeräten unterstützt werden.The storage system of claim 1, wherein the controller adopts instructions issued by the host that are not supported by the first and second NAND storage devices. Das Speichersystem gemäß Anspruch 1, wobei der Controller ein nicht-flüchtiges Speichergerät ist, welches Daten, die von dem Host-Prozessor empfangen werden zu einem ausgewählten NAND-Speichergerät umleitet.The storage system of claim 1, wherein the controller is a non-volatile storage device that redirects data received from the host processor to a selected NAND storage device. Ein Controller, zum Bilden einer Schnittstelle mit einem NAND-Speicher in einem Speichersystem, aufweisend: einen Protokollschnittstellenschaltkreis, um Signale mit einem Host-Prozessor auszutauschen; eine ECC-Engine, um einen ECC-Algorithmus zu implementieren; und eine NAND-Schnittstelle, um den NAND-Speicher zu verwalten, wobei Befehle die von dem Host-Prozessor ausgegeben werden, welche nicht von dem NAND-Speicher unterstützt werden, in dem Controller emuliert werden.A controller for interfacing with a NAND memory in a memory system, comprising: a protocol interface circuit for exchanging signals with a host processor; an ECC engine to implement an ECC algorithm; and a NAND interface to manage the NAND memory, with instructions issued by the host processor that are not supported by the NAND memory in which controllers are emulated. Der Controller gemäß Anspruch 8, wobei der Controller eine Brücke von einer Host-NAND-Schnittstelle zu dem NAND-Speicher ist, welche einen ECC-Algorithmus für den Host-Prozessor auswählt für den NAND-Speicher, der in dem Speichersystem bereitgestellt wird.The controller of claim 8, wherein the controller is a bridge from a host NAND interface to the NAND memory, which selects an ECC algorithm for the host processor for the NAND memory provided in the memory system. Der Controller gemäß Anspruch 8, wobei der Controller eine Seitengröße des Host-Prozessors verwaltet, die unterschiedlich ist von der Seitengröße des NAND-Speichers.The controller of claim 8, wherein the controller manages a page size of the host processor that is different than the page size of the NAND memory. Der Controller gemäß Anspruch 8, wobei der Controller eine einzige NAND-Schnittstelle zu dem Hostprozessor bereitstellt, was eine Beschränkung einer Anzahl der verwendbaren Flash-Speicher in dem NAND-Speicher aufgrund der verfügbaren Adresseingabezyklen entfernt.The controller of claim 8, wherein the controller provides a single NAND interface to the host processor, which removes a restriction on a number of usable flash memories in the NAND memory due to the available address input cycles. Der Controller gemäß Anspruch 8, wobei der Controller einen Protokollschnittstellenschaltkreis mit einem Puffer umfasst, um Daten zu dem Host-Prozessor zu übertragen, aufweisend Puffermöglichkeiten, um eine zweite Seite von Daten zu lesen, um eine Ausführung des ECC-Algorithmus in eine sequenzielle Leseoperation zu parallelisieren.The controller of claim 8, wherein the controller comprises a protocol interface circuit having a buffer for transferring data to the host processor, having buffering capabilities for reading a second page of data to enable execution of the ECC algorithm in a sequential read operation parallelize. Der Controller nach Anspruch 12, wobei der Protokollschnittstellenschaltkreis ein NAND-Bereit/Beschäftigt-Signal an den Host-Prozessor verwaltet, um die Latenz des ECC-Algorithmus zu berücksichtigen.The controller of claim 12, wherein the protocol interface circuit manages a NAND ready / busy signal to the host processor to account for the latency of the ECC algorithm. Ein Verfahren zum Verwalten eines Stapels von NAND-Speicher-Geräten, welche intern keinen ECC-Algorithmus implementieren, aufweisend: eine Verwendung eines Protokoll-Interface-Blocks eines Controllergeräts, um Signale mit einem Host-Prozessor auszutauschen, welche ermöglicht, dass der Host-Prozessor mit einem großen fehlerfreien Adressbereich kommuniziert; ein Implementieren eines ECC-Algorithmus durch einen ECC-Engine-Block der in dem Controllergerät eingebettet ist; und ein Wiederausarbeiten sowohl von Befehlen als auch von Adressen, die von dem Host-Prozessor durch einen NAND-Schnittstellen-Block empfangen werden, welcher in dem Controllergerät eingebettet ist, um Datenübertragungen zu dem Stapel von NAND-Speichergeräten zu verwalten.A method of managing a stack of NAND storage devices that internally do not implement an ECC algorithm, comprising: using a protocol interface block of a controller device to send signals to a host device; Exchange processor, which allows the host processor communicates with a large error-free address space; implementing an ECC algorithm by an ECC engine block embedded in the controller device; and re-processing both instructions and addresses received by the host processor through a NAND interface block embedded in the controller device to manage data transfers to the stack of NAND storage devices. Das Verfahren gemäß Anspruch 14, weiterhin aufweisend: ein Interpretieren von Befehlen, die von dem Host-Prozessor durch den Protokoll-Interface-Block empfangen werden, um das Speichern von Daten von dem Host-Prozessor zu leiten.The method of claim 14, further comprising: interpreting instructions received by the host processor through the protocol interface block to direct the storage of data from the host processor. Das Verfahren gemäß Anspruch 14, weiterhin aufweisend: ein Laden eines Puffers in dem Protokoll-Interface-Block, welcher Puffermöglichkeiten aufweist, um eine zweite Seite von Daten zu lesen, um die Ausführung eines ECC-Algorithmus in eine sequenzielle Leseoperation zu parallelisieren.The method of claim 14, further comprising: loading a buffer in the protocol interface block having buffer capabilities to read a second page of data to parallelize the execution of an ECC algorithm into a sequential read operation. Ein drahtloses Kommunikationssystem umfassend, mehrere NAND-Speichergeräte, aufweisend: einen Sender/Empfänger; einen Prozessor mit ersten und zweiten Prozessorkernen, wobei der Prozessor mit dem Sender/Empfänger gekoppelt ist; und einen ECC Controller, der einen eingebeteten NAND-Schnittstellen-Block aufweist, um Kommandos und Adressen zu empfangen und um Signale mit dem Prozessor auszutauschen; eine ECC-Engine, um einen ECC-Algorithmus zu implementieren; und einen NAND-Schnittstellenschaltkreis, um sowohl Befehle als auch Adressen wieder auszuarbeiten, die von dem Hostprozessor empfangen werden, um Datenübertragungen an die mehreren NAND-Speichergeräte zu leiten.A wireless communication system comprising a plurality of NAND storage devices, comprising: a transmitter / receiver; a processor having first and second processor cores, wherein the processor is coupled to the transceiver; and an ECC controller having an NAND interface block embedded to receive commands and addresses and to exchange signals with the processor; an ECC engine to implement an ECC algorithm; and a NAND interface circuit to rework both instructions and addresses received from the host processor to pass data transfers to the multiple NAND storage devices. Das drahtlose Kommunikationssystem gemäß Anspruch 17, wobei der ECC-Controller weiterhin einen Protokollschnittstellenschaltkreis umfasst, der einen Puffer aufweist, um die Latenz, die durch die Berechnung der ECC-Algorhythmen eingebracht wird, zu verringern.The wireless communication system of claim 17, wherein the ECC controller further comprises a protocol interface circuit having a buffer for reducing the latency introduced by the calculation of ECC algorithms. Das drahtlose Kommunikationssystem gemäß Anspruch 17, wobei der ECC-Controller es dem Prozessor ermöglicht, die mehreren NAND-Speichergärte als einen einzigen NAND-Chip zu betreiben, wobei der ECC-Controller Daten, die von dem Prozessor empfangen werden, zu einem ausgewählten NAND-Speichergerät umleitet.The wireless communication system of claim 17, wherein the ECC controller enables the processor to operate the multiple NAND memory hardware as a single NAND chip, the ECC controller receiving data received from the processor to a selected NAND chip. Memory device redirects. Das drahtlose Kommunikationssystem gemäß Anspruch 17, wobei der ECC-Controller es dem Prozessor ermöglicht, eine Seitengröße zu verwalten, die unterschiedlich ist von einer Seitengröße der mehreren NAND-Speichergeräte.The wireless communication system of claim 17, wherein the ECC controller enables the processor to manage a page size that is different than a page size of the plurality of NAND storage devices.
DE112008004033T 2008-10-09 2008-10-09 Virtualized Ecc Nand Ceased DE112008004033T5 (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/IB2008/002658 WO2010041093A1 (en) 2008-10-09 2008-10-09 Virtualized ecc nand

Publications (1)

Publication Number Publication Date
DE112008004033T5 true DE112008004033T5 (en) 2012-01-19

Family

ID=41092022

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112008004033T Ceased DE112008004033T5 (en) 2008-10-09 2008-10-09 Virtualized Ecc Nand

Country Status (5)

Country Link
US (4) US8806293B2 (en)
JP (1) JP5650116B2 (en)
CN (1) CN102272730B (en)
DE (1) DE112008004033T5 (en)
WO (1) WO2010041093A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8806293B2 (en) 2008-10-09 2014-08-12 Micron Technology, Inc. Controller to execute error correcting code algorithms and manage NAND memories

Families Citing this family (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8291295B2 (en) 2005-09-26 2012-10-16 Sandisk Il Ltd. NAND flash memory controller exporting a NAND interface
US20110041039A1 (en) * 2009-08-11 2011-02-17 Eliyahou Harari Controller and Method for Interfacing Between a Host Controller in a Host and a Flash Memory Device
US20110041005A1 (en) * 2009-08-11 2011-02-17 Selinger Robert D Controller and Method for Providing Read Status and Spare Block Management Information in a Flash Memory System
US8413015B2 (en) * 2009-09-21 2013-04-02 Sandisk Technologies Inc. Nonvolatile memory controller with scalable pipelined error correction
KR20110105257A (en) * 2010-03-18 2011-09-26 삼성전자주식회사 Stacked memory device and method of correcting error of the same
US9600410B1 (en) * 2010-07-09 2017-03-21 Crossbar, Inc. ReRAM based NAND like architecture with configurable page size
KR20130028349A (en) * 2011-09-09 2013-03-19 삼성전자주식회사 Memory device, memory system and data-memorizing method thereof
US9223649B2 (en) * 2012-02-15 2015-12-29 Sandisk Technologies Inc. System and method of sending correction data to a buffer of a non-volatile memory
US9146856B2 (en) 2012-04-10 2015-09-29 Micron Technology, Inc. Remapping and compacting in a memory device
US20130304970A1 (en) * 2012-04-20 2013-11-14 Stec, Inc. Systems and methods for providing high performance redundant array of independent disks in a solid-state device
KR101961318B1 (en) 2012-09-07 2019-07-17 삼성전자주식회사 Recovery code managing method for reducing occupancy time in processor and memory system thereof
CN102929655A (en) * 2012-09-26 2013-02-13 瑞斯康达科技发展股份有限公司 Method for writing data files into flash memory chip as well as pre-treatment method and device
KR102002925B1 (en) * 2012-11-01 2019-07-23 삼성전자주식회사 Memory module, memory system havint the same, and driving method thereof
US9324450B2 (en) * 2013-03-13 2016-04-26 Winbond Electronics Corporation NAND flash memory
US9354973B2 (en) * 2013-03-13 2016-05-31 Intel Corporation Data integrity management in memory systems
US9152584B2 (en) * 2013-10-29 2015-10-06 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Providing bus resiliency in a hybrid memory system
KR20150091918A (en) * 2014-02-04 2015-08-12 삼성전자주식회사 Storage device and operating method thereof
US9471428B2 (en) 2014-05-06 2016-10-18 International Business Machines Corporation Using spare capacity in solid state drives
US9652321B2 (en) * 2014-09-23 2017-05-16 Intel Corporation Recovery algorithm in non-volatile memory
US9880748B2 (en) * 2015-02-13 2018-01-30 Qualcomm Incorporated Bifurcated memory management for memory elements
US9830093B2 (en) 2015-03-27 2017-11-28 Intel Corporation Method and apparatus for improving immunity to defects in a non-volatile memory
KR102480016B1 (en) 2015-08-18 2022-12-21 삼성전자 주식회사 Non-volatile memory system using a plurality of mapping units and Operating method thereof
US10528423B2 (en) 2015-12-01 2020-01-07 Nvidia Corporation Memory management systems and methods
CN105512054B (en) 2015-12-09 2018-11-09 上海兆芯集成电路有限公司 Host interface controller and storage device control method
US9940186B2 (en) * 2015-12-22 2018-04-10 Nxp Usa, Inc. Memory controller and method of operating a memory controller
US10096366B2 (en) 2016-01-28 2018-10-09 Toshiba Memory Corporation Memory system including multi-plane flash memory and controller
US10331561B1 (en) 2016-06-29 2019-06-25 Emc Corporation Systems and methods for rebuilding a cache index
US10089025B1 (en) 2016-06-29 2018-10-02 EMC IP Holding Company LLC Bloom filters in a flash memory
US10037164B1 (en) * 2016-06-29 2018-07-31 EMC IP Holding Company LLC Flash interface for processing datasets
US10055351B1 (en) 2016-06-29 2018-08-21 EMC IP Holding Company LLC Low-overhead index for a flash cache
US10146438B1 (en) 2016-06-29 2018-12-04 EMC IP Holding Company LLC Additive library for data structures in a flash memory
US10381327B2 (en) 2016-10-06 2019-08-13 Sandisk Technologies Llc Non-volatile memory system with wide I/O memory die
US10866912B2 (en) 2017-03-10 2020-12-15 Toshiba Memory Corporation Integrated heterogeneous solid state storage drive
US10845866B2 (en) * 2017-06-22 2020-11-24 Micron Technology, Inc. Non-volatile memory system or sub-system
US11061772B2 (en) 2018-12-14 2021-07-13 Samsung Electronics Co., Ltd. FPGA acceleration system for MSR codes
CN109783411B (en) * 2018-12-20 2022-05-17 成都旋极历通信息技术有限公司 FLASH array control method based on FPGA and controller
US11016965B2 (en) 2019-01-22 2021-05-25 International Business Machines Corporation Graphical user interface for defining atomic query for querying knowledge graph databases
US10937512B2 (en) 2019-01-22 2021-03-02 International Business Machines Corporation Managing programming errors in NAND flash memory
US11392509B2 (en) * 2020-08-18 2022-07-19 PetaIO Inc. Command memory buffer systems and methods
US11625173B1 (en) * 2020-09-09 2023-04-11 Marvell Asia Pte Ltd Reduced power consumption by SSD using host memory buffer

Family Cites Families (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3015A (en) * 1843-03-21 Improvement in gilding, silvering
US8004A (en) * 1851-03-25 Francis b
US5887145A (en) * 1993-09-01 1999-03-23 Sandisk Corporation Removable mother/daughter peripheral card
US5918242A (en) 1994-03-14 1999-06-29 International Business Machines Corporation General-purpose customizable memory controller
US7457897B1 (en) * 2004-03-17 2008-11-25 Suoer Talent Electronics, Inc. PCI express-compatible controller and interface for flash memory
US7702831B2 (en) * 2000-01-06 2010-04-20 Super Talent Electronics, Inc. Flash memory controller for electronic data flash card
US8108590B2 (en) * 2000-01-06 2012-01-31 Super Talent Electronics, Inc. Multi-operation write aggregator using a page buffer and a scratch flash block in each of multiple channels of a large array of flash memory to reduce block wear
US7483329B2 (en) * 2000-01-06 2009-01-27 Super Talent Electronics, Inc. Flash card and controller with integrated voltage converter for attachment to a bus that can operate at either of two power-supply voltages
JP2002032990A (en) * 2000-07-17 2002-01-31 Mitsubishi Electric Corp Semiconductor memory
JP4220690B2 (en) 2001-07-05 2009-02-04 Tdk株式会社 MEMORY CONTROLLER, FLASH MEMORY SYSTEM PROVIDED WITH MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD
JP2003242470A (en) 2002-02-21 2003-08-29 Sony Corp External connecting device and host device
US6683817B2 (en) * 2002-02-21 2004-01-27 Qualcomm, Incorporated Direct memory swapping between NAND flash and SRAM with error correction coding
US7433712B2 (en) * 2003-02-06 2008-10-07 Modu Ltd. Multi-access solid state memory devices and a telephone utilizing such
JP2004318940A (en) * 2003-04-14 2004-11-11 Renesas Technology Corp Storage device
US7424659B2 (en) * 2003-10-31 2008-09-09 Sandisk Il Ltd. System-in-package and method of testing thereof
US7173863B2 (en) 2004-03-08 2007-02-06 Sandisk Corporation Flash controller cache architecture
US8180931B2 (en) * 2004-01-20 2012-05-15 Super Talent Electronics, Inc. USB-attached-SCSI flash-memory system with additional command, status, and control pipes to a smart-storage switch
US7350044B2 (en) * 2004-01-30 2008-03-25 Micron Technology, Inc. Data move method and apparatus
US7136973B2 (en) * 2004-02-04 2006-11-14 Sandisk Corporation Dual media storage device
US7127549B2 (en) * 2004-02-04 2006-10-24 Sandisk Corporation Disk acceleration using first and second storage devices
KR100574989B1 (en) * 2004-11-04 2006-05-02 삼성전자주식회사 Memory device for improving efficiency of data strobe bus line and memory system including the same, and data strobe signal control method thereof
US8041844B2 (en) * 2004-12-29 2011-10-18 Intel Corporation Autodetection of a PCI express device operating at a wireless RF mitigation frequency
WO2006085324A2 (en) * 2005-02-11 2006-08-17 Sandisk Il Ltd. Nand flash memory system architecture
TW200712863A (en) 2005-09-23 2007-04-01 Via Tech Inc Method of detecting data error code
US7631245B2 (en) 2005-09-26 2009-12-08 Sandisk Il Ltd. NAND flash memory controller exporting a NAND interface
US8291295B2 (en) * 2005-09-26 2012-10-16 Sandisk Il Ltd. NAND flash memory controller exporting a NAND interface
US20070165457A1 (en) * 2005-09-30 2007-07-19 Jin-Ki Kim Nonvolatile memory system
TWI285378B (en) 2005-11-18 2007-08-11 Winbond Electronics Corp System and method for controlling flash memory
JP2007161748A (en) 2005-12-09 2007-06-28 Kagawa Univ Phosphor microparticle, method for producing the same and phosphor film using the same
JP4710753B2 (en) 2006-08-04 2011-06-29 Tdk株式会社 MEMORY CONTROLLER, FLASH MEMORY SYSTEM USING MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD
US20080046630A1 (en) 2006-08-21 2008-02-21 Sandisk Il Ltd. NAND flash memory controller exporting a logical sector-based interface
DE602006008480D1 (en) 2006-09-13 2009-09-24 Hynix Semiconductor Inc NAND flash memory device with ECC protected reserved area for non-volatile storage of redundancy data
JP2008090433A (en) 2006-09-29 2008-04-17 Toshiba Corp Memory controller, memory system and data transfer method
JP4582078B2 (en) 2006-10-18 2010-11-17 Tdk株式会社 Memory controller, flash memory system, and flash memory control method
WO2008068747A2 (en) * 2006-12-03 2008-06-12 Anobit Technologies Ltd. Automatic defect management in memory devices
KR100845529B1 (en) 2007-01-03 2008-07-10 삼성전자주식회사 Ecc controller for use in flash memory device and memory system including the same
TWI335502B (en) 2007-03-28 2011-01-01 Phison Electronics Corp Flash memory system and method for controlling the same
JP2009003994A (en) 2007-06-19 2009-01-08 Toshiba Corp Semiconductor memory device
KR100885923B1 (en) * 2007-06-19 2009-02-26 삼성전자주식회사 Semiconductor memory device for operating of a plurality of operating characteristics and method for controling the device
US8131912B2 (en) * 2007-09-27 2012-03-06 Kabushiki Kaisha Toshiba Memory system
DE112008004033T5 (en) 2008-10-09 2012-01-19 Numonyx B.V. Virtualized Ecc Nand
KR101527193B1 (en) * 2008-12-10 2015-06-08 삼성전자주식회사 Semiconductor device and method for arranging cell blocks thereof

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8806293B2 (en) 2008-10-09 2014-08-12 Micron Technology, Inc. Controller to execute error correcting code algorithms and manage NAND memories
US9213603B2 (en) 2008-10-09 2015-12-15 Micron Technology, Inc. Controller to manage NAND memories
US9569129B2 (en) 2008-10-09 2017-02-14 Micron Technology, Inc. Controller to manage NAND memories
US9971536B2 (en) 2008-10-09 2018-05-15 Micron Technology, Inc. Controller to manage NAND memories

Also Published As

Publication number Publication date
US20110307762A1 (en) 2011-12-15
JP2012505458A (en) 2012-03-01
CN102272730A (en) 2011-12-07
JP5650116B2 (en) 2015-01-07
WO2010041093A1 (en) 2010-04-15
WO2010041093A8 (en) 2011-05-26
US9569129B2 (en) 2017-02-14
US20160098223A1 (en) 2016-04-07
US8806293B2 (en) 2014-08-12
US20140351675A1 (en) 2014-11-27
US9213603B2 (en) 2015-12-15
US20170160973A1 (en) 2017-06-08
US9971536B2 (en) 2018-05-15
CN102272730B (en) 2017-05-24

Similar Documents

Publication Publication Date Title
DE112008004033T5 (en) Virtualized Ecc Nand
DE112020002526B4 (en) BLOCK MODE SWITCHING IN DATA STORAGE SYSTEM
DE112014005521T5 (en) A memory module and method for managing the mapping of logical addresses to physical addresses
DE102019116520A1 (en) DATA STORAGE SYSTEMS AND METHODS FOR IMPROVED DATA REDIRECTION BASED ON READ LEVEL VOLTAGES RELATED TO ERROR RECOVERY
DE102017120960A1 (en) Multi-channel memory operations based on bit error rates
DE112018003355T5 (en) TECHNIQUES TO SUPPORT SEVERAL PROTOCOLS BETWEEN COMPUTER SYSTEM CONNECTIONS
DE112018000834T5 (en) SYSTEM AND METHOD FOR ADAPTIVE COMMAND CALL AGGREGATION
DE102018113447A1 (en) A memory device for coupling with a host and methods for operating the host and the memory device
US9929967B2 (en) Packet deconstruction/reconstruction and link-control
DE112013003255T5 (en) Management mechanism for bad blocks
DE102017117066A1 (en) NONBINARY CODING FOR A NON-VOLATILE MEMORY
DE10334423A1 (en) Transfer of data in selectable transfer modes
DE112020006139T5 (en) PRE-READ AND READ THRESHOLD VOLTAGE OPTIMIZATION
DE102017128994A1 (en) Soft decoding planning
DE102010053097A1 (en) Memory controller functionalities to support data swizzling
DE102009026178A1 (en) Multi-level-control multi-flash device, has smart storage transaction manager managing transactions from host, and set of non-volatile memory blocks storing host data at block location identified by physical block address
DE112014005570T5 (en) Disable pages in a Nand flash memory system
DE102019117475A1 (en) Cache-coherent, high-throughput input / output controls
DE112020005395T5 (en) CAPACITY EXPANSION FOR STORAGE SUBSYSTEMS
DE102020103372A1 (en) PROACTIVE REDUCTION OF READING TRIP
DE112021000776T5 (en) MANAGEMENT OF WRITE OPERATIONS IN A NON-VOLATILE MEMORY DEVICE USING A VARIABLE READ-OUT VOLTAGE LEVEL
DE102022101607A1 (en) HOST MEMORY BUFFER ALLOCATION MANAGEMENT
DE102021107443A1 (en) DYNAMIC MEMORY CONTROL AND METHOD OF USING IT
DE112020003004T5 (en) DMA SCATTER AND GATHER OPERATIONS FOR NONCONTINUOUS MEMORY
DE102021122233A1 (en) ACCELERATOR CONTROLLER HUB

Legal Events

Date Code Title Description
R081 Change of applicant/patentee

Owner name: MICRON TECHNOLOGY, INC., US

Free format text: FORMER OWNER: NUMONYX B.V., ROLLE, CH

Effective date: 20111213

Owner name: MICRON TECHNOLOGY, INC., BOISE, US

Free format text: FORMER OWNER: NUMONYX B.V., ROLLE, CH

Effective date: 20111213

Owner name: MICRON TECHNOLOGY, INC., BOISE, US

Free format text: FORMER OWNER: ANTONIO POLLO,GLAUDIO CIACCIO,DANILO CARACCIO,GIOVVANNI CAMPARDO,MASSIMO OACULO,OMELLA VITALE,MANUELA SCOGNAMIGLIO,FEDERICO TIZI, , IT

Effective date: 20110411

Owner name: MICRON TECHNOLOGY, INC., BOISE, US

Free format text: FORMER OWNERS: POLLO, ANTONIO, VICO EQUENSE, IT; CIACCIO, GLAUDIO, TORRE DEL GRECO, IT; CARACCIO, DANILO, BUONALBERGO, IT; CAMPARDO, GIOVVANNI, BERGAMO, IT; OACULO, MASSIMO, SAN MARCO EVANGELISTA, IT; VITALE, OMELLA, CICCIANO, IT; SCOGNAMIGLIO, MANUELA, BURAGO MOLGORA, IT; TIZIANI, FEDERICO, MUGGIO, IT

Effective date: 20110411

R082 Change of representative

Representative=s name: PATENT- UND RECHTSANWAELTE BARDEHLE PAGENBERG, 816

Representative=s name: BARDEHLE PAGENBERG PARTNERSCHAFT PATENTANWAELT, DE

Effective date: 20111213

Representative=s name: BARDEHLE PAGENBERG PARTNERSCHAFT MBB PATENTANW, DE

Effective date: 20111213

Representative=s name: PATENT- UND RECHTSANWAELTE BARDEHLE PAGENBERG, DE

Effective date: 20111213

R012 Request for examination validly filed

Effective date: 20131025

R016 Response to examination communication
R002 Refusal decision in examination/registration proceedings
R003 Refusal decision now final