TWI475378B - Storage system to couple to a host, controller to interface with nand memory in storage system, and method of managing a stack of nand memory devices - Google Patents

Storage system to couple to a host, controller to interface with nand memory in storage system, and method of managing a stack of nand memory devices Download PDF

Info

Publication number
TWI475378B
TWI475378B TW097139047A TW97139047A TWI475378B TW I475378 B TWI475378 B TW I475378B TW 097139047 A TW097139047 A TW 097139047A TW 97139047 A TW97139047 A TW 97139047A TW I475378 B TWI475378 B TW I475378B
Authority
TW
Taiwan
Prior art keywords
controller
nand
ecc
nand memory
memory devices
Prior art date
Application number
TW097139047A
Other languages
Chinese (zh)
Other versions
TW201015294A (en
Inventor
Federico Tiziani
Giovanni Campardo
Massimo Iaculo
Claudio Giaccio
Manuela Scognamiglio
Danilo Caraccio
Ornella Vitale
Antonino Pollio
Original Assignee
Micron Technology Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Micron Technology Inc filed Critical Micron Technology Inc
Priority to TW097139047A priority Critical patent/TWI475378B/en
Publication of TW201015294A publication Critical patent/TW201015294A/en
Application granted granted Critical
Publication of TWI475378B publication Critical patent/TWI475378B/en

Links

Landscapes

  • Techniques For Improving Reliability Of Storages (AREA)

Description

耦合至一主機之儲存系統、與儲存系統中之NAND記憶體介接之控制器及管理NAND記憶體裝置堆疊之方法a storage system coupled to a host, a controller coupled to a NAND memory in the storage system, and a method of managing a stack of NAND memory devices

當今之通信裝置繼續變得更加複雜及多樣以提供增加之功能性。此等裝置支援需要更高容量記憶體(特定而言藉由多晶片封裝設計提供)之多媒體。通信鏈路、匯流排、晶片至晶片互連、儲存媒體可在高位準之內在信號/儲存故障之情形下運作。期望此等通信裝置併入有錯誤偵測及修正機制。ECC(錯誤修正碼)已移入至記憶體儲存結構中但需要額外改良。Today's communication devices continue to become more complex and diverse to provide increased functionality. These devices support multimedia that requires higher capacity memory, specifically provided by a multi-chip package design. Communication links, bus bars, chip-to-wafer interconnects, and storage media can operate in the event of signal/storage failures at high levels. It is expected that such communication devices incorporate error detection and correction mechanisms. The ECC (Bug Error Correction Code) has been moved into the memory storage structure but requires additional improvements.

在下文詳細說明中闡述大量特定細節以提供對本發明之充分理解。然而,熟悉此項技術者將瞭解無需該等特定細節亦可實施本發明。在其他情況下,未詳細闡述衆所周知之方法、程序、組件及電路,以使本發明不會被掩蓋。In the following detailed description, numerous specific details are set forth However, those skilled in the art will appreciate that the invention may be practiced without the specific details. In other instances, well known methods, procedures, components, and circuits have not been described in detail so that the invention is not concealed.

圖1中所圖解闡釋之實施例顯示一通信裝置10,根據本發明其可能包含具有一服務多個NAND快閃裝置之虛擬化ECC NAND控制器之非揮發性記憶體。本發明不侷限於無線通信實施例且其他非無線應用亦可使用本發明。如此無線實施例中所示,通信裝置10包含一或多個天線結構14以允許無線電與其他空中傳輸通信裝置進行通信。如此,通信裝置10可運作為一蜂巢式裝置或一在以下無線網路中運作之裝置,無線網路例如係:無線保真(Wi-Fi)、WiMax、行動WiMax、寬頻分碼多重近接(WCDMA)、及全球行動通信系統(GSM)網路,但本發明並不侷限於僅在此等網路中運作。並置於通信裝置10之相同平臺中之無線電子系統提供以不同頻帶在一RF/位置空間中與一網路中之其他裝置通信之能力。The embodiment illustrated in Figure 1 shows a communication device 10 that may include non-volatile memory having a virtualized ECC NAND controller that serves multiple NAND flash devices in accordance with the present invention. The invention is not limited to wireless communication embodiments and other non-wireless applications may also use the invention. As shown in such a wireless embodiment, communication device 10 includes one or more antenna structures 14 to allow radios to communicate with other over-the-air communication devices. As such, the communication device 10 can operate as a cellular device or a device operating in a wireless network such as: Wireless Fidelity (Wi-Fi), WiMax, Mobile WiMax, and Wideband Coded Multiple Proximity ( WCDMA), and Global System for Mobile Communications (GSM) networks, but the invention is not limited to operating only in such networks. The radio subsystems, which are placed in the same platform of the communication device 10, provide the ability to communicate with other devices in a network in a different RF/location space in different frequency bands.

該實施例圖解闡釋天線結構14耦合至收發器12以容納調變/解調變。一般而言,類比前端收發器12可能係一獨立射頻(RF)離散或集成類比電路,或收發器12可嵌入有一具有一或多個處理器核心16及18之主機中央處理單元(CPU)20。該等核心允許跨越該等核心分擔處理工作負載且處置基頻功能及應用功能。資料及指令可藉由一記憶體介面28在CPU與記憶體儲存器之間傳送。This embodiment illustrates that antenna structure 14 is coupled to transceiver 12 to accommodate modulation/demodulation variations. In general, the analog front end transceiver 12 may be a separate radio frequency (RF) discrete or integrated analog circuit, or the transceiver 12 may embed a host central processing unit (CPU) 20 having one or more processor cores 16 and 18. . These cores allow processing of workloads across these cores and handle baseband and application functions. Data and instructions can be transferred between the CPU and the memory bank by a memory interface 28.

系統記憶體22可包含揮發性記憶體及非揮發性記憶體兩者,例如NAND記憶體結構24。請注意,該等揮發性及非揮發性記憶體可單獨封裝,或者在一堆疊程序中加以組合。特定而言,可將多個NAND記憶體結構置於一多晶片封裝(MCP)中以減少一電路板上之佔用面積。因此,系統記憶體22之各種實施例顯示可藉由混合記憶體裝置及組態而以不同方式配置記憶體裝置來善加利用通信產品內之有限空間,且可使用各種封裝選項來找出低電力與高可靠性之良好組合。System memory 22 can include both volatile memory and non-volatile memory, such as NAND memory structure 24. Please note that these volatile and non-volatile memories can be packaged separately or combined in a stacking process. In particular, multiple NAND memory structures can be placed in a multi-chip package (MCP) to reduce the footprint on a board. Thus, various embodiments of system memory 22 show that memory devices can be configured in different ways by mixing memory devices and configurations to take advantage of the limited space within the communication product, and various package options can be used to find low A good combination of power and high reliability.

在先前技術中,在一NAND記憶體內部執行之一ECC(錯誤修正碼)演算法僅限於提供僅適合於單一記憶體裝置之錯誤偵測及修正機制。更新一固定主機平臺來支援一新NAND技術,將在ECC需求、頁大小、定址能力、新命令集規格等方面付出昂貴成本。其尚有進一步限制,該ECC演算法係特定技術。例如,單層單元技術(SLC)與多層單元技術(MLC)之間的改變將使使用中之ECC演算法失效。另外,一具有一不同產品縮小等級之替代記憶體將必須針對現有ECC演算法而加以修改。且內部併入有ECC之現有記憶體裝置基於快閃及ECC演算法邏輯之組合晶粒區域而付出成本代價。In the prior art, performing an ECC (Error Correction Code) algorithm inside a NAND memory is limited to providing an error detection and correction mechanism that is only suitable for a single memory device. Updating a fixed host platform to support a new NAND technology will cost you a lot of ECC requirements, page size, addressing capabilities, and new command set specifications. There are further limitations, and the ECC algorithm is a specific technique. For example, changes between single layer unit technology (SLC) and multi-level cell technology (MLC) will invalidate the ECC algorithm in use. In addition, an alternative memory with a different product reduction level will have to be modified for existing ECC algorithms. And existing memory devices incorporating ECC internally are costly based on the combined die area of the flash and ECC algorithm logic.

為克服此等缺點且根據本發明,圖2中所圖解闡釋之架構允許一單一虛擬化ECC NAND控制器26服務多個NAND記憶體結構,亦即,一"原始"記憶體堆疊24。術語"原始"暗指不在內部實施ECC演算法之NAND記憶體裝置。無論其內部原始NAND記憶體之數量為何,主機CPU 20都將虛擬化ECC NAND控制器26及原始NAND記憶體結構作為一單個記憶體系統來驅動。此外,因為此解決方案可一次選擇一個NAND,故與先前技術之堆疊式架構相比減少了電力消耗。虛擬化ECC NAND控制器26包含一與主機CPU 20交換信號之協定介面30、一伺服以實施ECC演算法之ECC引擎32、及一管理記憶體堆疊24之NAND介面34。To overcome these shortcomings and in accordance with the present invention, the architecture illustrated in Figure 2 allows a single virtualized ECC NAND controller 26 to serve multiple NAND memory structures, i.e., a "raw" memory stack 24. The term "raw" implies a NAND memory device that does not implement an ECC algorithm internally. Regardless of the number of internal raw NAND memories, the host CPU 20 drives the virtualized ECC NAND controller 26 and the raw NAND memory structure as a single memory system. In addition, because this solution can select one NAND at a time, power consumption is reduced compared to prior art stacked architectures. The virtualized ECC NAND controller 26 includes a protocol interface 30 for exchanging signals with the host CPU 20, an ECC engine 32 for performing an ECC algorithm, and a NAND interface 34 for managing the memory stack 24.

虛擬化ECC NAND控制器26用作自主機NAND介面至原始NAND記憶堆疊之橋接器,且向主機提供正確ECC演算法以用於提供於系統記憶體中之原始NAND。主機側以其標準NAND介面、位址空間、命令集、頁大小、ECC等運作,且虛擬化ECC NAND控制器26使主機側適應被併入至記憶體堆疊中之特定原始NAND。The virtualized ECC NAND controller 26 acts as a bridge from the host NAND interface to the original NAND memory stack and provides the host with the correct ECC algorithm for the raw NAND provided in the system memory. The host side operates with its standard NAND interface, address space, command set, page size, ECC, etc., and the virtualized ECC NAND controller 26 adapts the host side to the particular raw NAND that is incorporated into the memory stack.

藉由自NAND堆疊中之個別NAND記憶體裝置中移除ECC功能性且將該功能性併入於ECC NAND控制器26中,可實現多種特徵。在ECC NAND控制器26處於NAND記憶體裝置外部之情形下,主機側實現一容許主機將該系統作為一單個NAND晶片驅動之虛擬化位址空間,即使該儲存系統中有多個NAND記憶體裝置。因此,主機CPU 20自由地管理該介面處之更多晶片。換言之,在主機CPU 20管理介面處之一個晶片時,虛擬化ECC NAND控制器26可管理堆疊式記憶體中之多個NAND記憶體裝置。By removing ECC functionality from individual NAND memory devices in the NAND stack and incorporating the functionality into the ECC NAND controller 26, a variety of features can be implemented. In the case where the ECC NAND controller 26 is external to the NAND memory device, the host side implements a virtualized address space that allows the host to drive the system as a single NAND wafer, even if there are multiple NAND memory devices in the storage system. . Thus, host CPU 20 is free to manage more of the wafers at the interface. In other words, when the host CPU 20 manages one of the chips at the interface, the virtualized ECC NAND controller 26 can manage the plurality of NAND memory devices in the stacked memory.

先前技術產品將ECC連同資料管理演算法(例如,快閃轉譯層(FTL)、平均抹寫(wear leveling)、損壞區塊管理等)一起構建於一共同積體電路中。相比之下,圖中所呈現之架構將ECC與資料管理演算法分離。虛擬化ECC NAND控制器26僅實施ECC演算法且不實施任何其他資料管理演算法。此允許主機CPU 20在資料頁、元資料區域方面維持對虛擬化記憶體之全面控制,且允許虛擬化ECC NAND控制器26提供一較好的ECC引擎。Prior art products combine ECC along with data management algorithms (eg, Flash Translation Layer (FTL), wear leveling, damaged block management, etc.) in a common integrated circuit. In contrast, the architecture presented in the figure separates the ECC from the data management algorithm. The virtualized ECC NAND controller 26 implements only the ECC algorithm and does not implement any other data management algorithms. This allows the host CPU 20 to maintain full control of the virtualized memory in terms of data pages, metadata areas, and allows the virtualized ECC NAND controller 26 to provide a better ECC engine.

在將虛擬化ECC NAND控制器26用作自主機NAND介面至原始NAND記憶體堆疊之橋接器中,該主機平臺可管理一與該原始NAND之頁大小不同之頁大小。另外,虛擬化ECC NAND控制器26將主機平臺與記憶體堆疊隔離,以允許主機CPU 20使用某些不受原始NAND支援之命令。在一項實施例中,主機CPU 20可具有一比虛擬化ECC NAND中實體記憶體裝置之命令集大之命令集,而在另一實施例中,與虛擬化ECC NAND內部之命令集相比,該主機之命令集可係一減少之命令集。在任一實施例中,ECC NAND控制器26內之邏輯使主機CPU 20之命令集適應實體記憶體裝置之命令集。該主機平臺可使用一基本NAND命令集且虛擬化NAND控制器26可使用一經擴展之新命令集。In using the virtualized ECC NAND controller 26 as a bridge from the host NAND interface to the original NAND memory stack, the host platform can manage a page size that is different from the page size of the original NAND. In addition, the virtualized ECC NAND controller 26 isolates the host platform from the memory stack to allow the host CPU 20 to use certain commands that are not supported by the original NAND. In one embodiment, host CPU 20 may have a larger set of commands than the command set of the virtual memory device in the virtualized ECC NAND, while in another embodiment, compared to the command set internal to the virtualized ECC NAND. The command set of the host can be a reduced command set. In either embodiment, the logic within the ECC NAND controller 26 adapts the set of commands of the host CPU 20 to the set of commands of the physical memory device. The host platform can use a basic NAND command set and the virtualized NAND controller 26 can use a new set of commands that are extended.

圖3顯示允許主機CPU 20經由協定規範中未改變之電連接介接至協定介面30以允許該主機通信至一具有一大無錯誤位址空間之單個記憶體系統。換言之,此架構允許主機CPU 20作為一標準NAND介面提供與記憶體堆疊24之資料交換,以保持一虛擬命令集及位址空間。3 shows that host CPU 20 is allowed to interface to protocol interface 30 via an unaltered electrical connection in the protocol specification to allow the host to communicate to a single memory system with a large error free address space. In other words, this architecture allows the host CPU 20 to provide data exchange with the memory stack 24 as a standard NAND interface to maintain a virtual command set and address space.

同時且在不給主機平臺添加內部邏輯之情形下,ECC NAND 26提供ECC功能以藉由修正原始NAND中之位元錯誤來增加資料交換之總體可靠性。該定址係虛擬化的,因為主機CPU 20將所連接之記憶體裝置當作一單個NAND晶片那樣來驅動,而虛擬化ECC NAND控制器26將資料重新導向該堆疊之一所選NAND。因此,一單個虛擬化ECC NAND控制器26管理NAND快閃記憶體堆疊且執行ECC演算法。At the same time and without adding internal logic to the host platform, ECC NAND 26 provides ECC functionality to increase the overall reliability of the data exchange by correcting bit errors in the original NAND. The addressing is virtualized because the host CPU 20 drives the connected memory device as a single NAND die, and the virtualized ECC NAND controller 26 redirects the data to one of the selected NANDs of the stack. Thus, a single virtualized ECC NAND controller 26 manages the NAND flash memory stack and performs an ECC algorithm.

另外,此在主機CPU 20與記憶體堆疊24之間具有虛擬化ECC NAND控制器26之架構使得一單個NAND裝置之使用適應一能夠使用不同晶片啟用(CE)接針來管理一組NAND記憶體之主機。在一項實施例中,該主機介面藉由使用CE信號選擇性地驅動不同之快閃記憶體,儘管虛擬化ECC NAND係由一更高密度之單個NAND晶片構成。虛擬化ECC NAND控制器26之內部邏輯將來自主機CPU 20之請求(其斷定該等CE中之一者)轉譯成一定址該NAND陣列之一部分之作業,以在所選NAND記憶體裝置本身所支援之位址循環中編碼該請求。應注意,主機CPU 20可具有一低於一原始NAND記憶體裝置所需循環數量之位址循環數量。同樣,該主機平臺可管理一與一原始NAND記憶體裝置之頁大小不同之頁大小且甚至使用不受該記憶體裝置支援之某些命令,例如一多平面作業或一快取作業。Additionally, the architecture of the virtualized ECC NAND controller 26 between the host CPU 20 and the memory stack 24 enables the use of a single NAND device to accommodate the ability to manage a set of NAND memories using different wafer enable (CE) pins. Host. In one embodiment, the host interface selectively drives different flash memories by using CE signals, although the virtualized ECC NAND is comprised of a single NAND die of higher density. The internal logic of the virtualized ECC NAND controller 26 translates the request from the host CPU 20 (which concludes one of the CEs) into a portion of the NAND array that is addressed to the selected NAND memory device itself. The request is encoded in the address loop of the support. It should be noted that host CPU 20 may have a number of address cycles that are less than the number of cycles required for a raw NAND memory device. Similarly, the host platform can manage a page size that is different from the page size of a raw NAND memory device and even use certain commands that are not supported by the memory device, such as a multi-plane job or a cache job.

例如,若該原始NAND記憶體裝置不支援多平面作業,則虛擬化ECC NAND控制器26可藉由兩個通道模擬此等命令。若該原始NAND記憶體裝置不支援快取作業,則虛擬化ECC NAND控制器26可藉助一內部乒乓緩衝器等模擬該等命令。此外,若該主機平臺需要一與原始NAND記憶體裝置之頁大小不同之頁大小,則虛擬化ECC NAND控制器26便會提供一其一頁大小及頁數不同於真實實體區塊之虛擬化實體區塊。For example, if the original NAND memory device does not support multi-plane jobs, the virtualized ECC NAND controller 26 can emulate these commands by two channels. If the original NAND memory device does not support a cache job, the virtualized ECC NAND controller 26 can emulate the commands by means of an internal ping pong buffer or the like. In addition, if the host platform requires a page size different from the page size of the original NAND memory device, the virtualized ECC NAND controller 26 provides a virtualization of a page size and page number different from the real physical block. Physical block.

協定介面30係虛擬化ECC NAND控制器26中使用標準NAND通信協定與主機CPU 20通信之部分。協定介面30解譯任何所接收之命令且進一步導向以儲存主機所傳送之任何資料。此外,協定介面30管理NAND就緒/忙碌信號以考量ECC演算法之延時。協定介面30包含一內部緩衝器36以儲存主機CPU 20在一程式化作業期間所傳送之資料。遵循一確認命令,協定介面30將忙碌信號設定為低以避免任一種類之資料作業送往虛擬化ECC NAND控制器26。The protocol interface 30 is the portion of the virtualized ECC NAND controller 26 that communicates with the host CPU 20 using standard NAND communication protocols. The protocol interface 30 interprets any received commands and further directs to store any data transmitted by the host. In addition, the protocol interface 30 manages the NAND ready/busy signal to account for the latency of the ECC algorithm. The protocol interface 30 includes an internal buffer 36 for storing data transmitted by the host CPU 20 during a staging operation. Following a confirmation command, the protocol interface 30 sets the busy signal low to avoid any type of data job being sent to the virtualized ECC NAND controller 26.

緩衝器36之大小經適當挑選以縮減因ECC計算所引起之延時。在緩衝器大小合適之情形下,主機CPU 20可在一寫入作業期間開始發送一新頁而不等待先前快閃程式化作業結束。此時序優點將在一後續讀取作業期間發揮效益,且因此,在ECC引擎32計算當前頁上之冗餘之同時,即可自原始NAND擷取下一頁。The size of the buffer 36 is appropriately selected to reduce the delay caused by the ECC calculation. In the case where the buffer size is appropriate, the host CPU 20 can start transmitting a new page during a write operation without waiting for the previous flash stylized job to end. This timing advantage will benefit during a subsequent read operation, and thus, while the ECC engine 32 calculates the redundancy on the current page, the next page can be retrieved from the original NAND.

ECC引擎32係虛擬化ECC NAND控制器26中伺服以實施ECC演算法(其計算主機CPU 20所發送資料上之冗餘)之部分。該ECC演算法用於偵測及修正原始資訊在儲存、寫入至堆疊式記憶體24或自堆疊式記憶體24讀取期間發生之錯誤。該ECC演算法可實施多層、循環性、錯誤修正、可變長度數位碼來修正多個隨機錯誤型樣。如此,ECC引擎32可實施一BCH碼或一李德-所羅門演算法。The ECC engine 32 is a portion of the virtualized ECC NAND controller 26 that is servoed to implement an ECC algorithm that computes redundancy on the data sent by the host CPU 20. The ECC algorithm is used to detect and correct errors that occur during the storage or writing of the original information to the stacked memory 24 or from the stacked memory 24. The ECC algorithm can implement multiple layers, cyclicity, error correction, and variable length digital code to correct multiple random error patterns. As such, the ECC engine 32 can implement a BCH code or a Lie-Solomon algorithm.

在一寫入作業期間,該ECC演算法計算主機所發送資料上之冗餘。一旦計算出該冗餘,即將其新增至主機資料且傳送至NAND快閃頁緩衝器。在一讀取作業期間,ECC引擎32重新計算來自原始NAND之資料上之冗餘,以便與先前儲存在快閃記憶體中之舊冗餘值進行比較。若兩個冗餘相等,則該資料係正確的且允許將其自協定介面緩衝器傳送至主機CPU 20。但是,若兩個冗餘不相等,則ECC引擎32修正資料位元之錯誤,之後便可將資料傳送至主機CPU 20。若錯誤數量高於ECC修正能力,則用信號通知主機CPU 20一讀取失敗。During a write operation, the ECC algorithm calculates redundancy on the data sent by the host. Once the redundancy is calculated, it is added to the host data and transferred to the NAND flash page buffer. During a read operation, the ECC engine 32 recalculates the redundancy on the data from the original NAND for comparison with the old redundancy values previously stored in the flash memory. If the two redundancy are equal, then the data is correct and allows it to be transferred from the protocol interface buffer to the host CPU 20. However, if the two redundancy are not equal, the ECC engine 32 corrects the error of the data bit, and then the data can be transferred to the host CPU 20. If the number of errors is higher than the ECC correction capability, the host CPU 20 is signaled to a read failure.

NAND介面34係虛擬化ECC NAND控制器26伺服以藉由重新規劃先前自主機CPU 20接收之命令及位址兩者而與原始NAND通信之部分。因此,在一寫入作業中,自協定介面緩衝器傳送資料至所選快閃記憶體。以此功能,NAND介面34解碼該位址以將所接收之資料重新導向至所選NAND,且將資料加ECC冗餘之新有效負載發送至堆疊式記憶體24中之所選原始NAND。在此作業期間,該忙碌信號保持低且在原始NAND程式化作業結束時轉變至一高信號位準。The NAND interface 34 is a virtualized ECC NAND controller 26 servo to communicate with the original NAND by re-planning both the commands and addresses previously received from the host CPU 20. Thus, in a write operation, data is transferred from the protocol interface buffer to the selected flash memory. With this function, the NAND interface 34 decodes the address to redirect the received data to the selected NAND and sends the new payload of data plus ECC redundancy to the selected original NAND in the stacked memory 24. During this operation, the busy signal remains low and transitions to a high signal level at the end of the original NAND stylization job.

在一讀取作業期間,NAND介面34將資料自所選原始NAND傳送至協定介面30中之緩衝器36。同時,ECC引擎32處理資料以計算相關之同位檢查(parity),以便與自快閃儲存器讀取之冗餘相比較,且若需要,則進行位元修正。During a read operation, the NAND interface 34 transfers the data from the selected raw NAND to the buffer 36 in the protocol interface 30. At the same time, the ECC engine 32 processes the data to calculate the associated parity check to compare with the redundancy read from the flash memory and, if necessary, perform bit correction.

當協定介面30具有一個晶片啟用接針,且NAND介面34具有多於一個晶片啟用接針時,對位址進行解碼以將該資料重新導向至該記憶體堆疊之所選原始NAND記憶體裝置。另一方面,當協定介面30具有比NAND介面34多之晶片啟用接針時,對該位址進行解碼以將該資料重新導向至原始NAND之正確部分,此取決於哪一晶片啟用為低。When the protocol interface 30 has a wafer enable pin and the NAND interface 34 has more than one wafer enable pin, the address is decoded to redirect the data to the selected original NAND memory device of the memory stack. On the other hand, when the protocol interface 30 has more wafer enable pins than the NAND interface 34, the address is decoded to redirect the data to the correct portion of the original NAND, depending on which wafer enable is low.

藉由使用虛擬化ECC NAND控制器26在NAND快閃記憶體堆疊外部執行ECC演算法,就當前技術及記憶體裝置數量而言,可確保一靈活記憶體系統解決方案。事實上,虛擬化ECC NAND控制器26可繼續運作,而不論記憶體堆疊24中所包含之之非揮發性記憶體係SLC及/或MLC。此外,虛擬化ECC NAND控制器26能夠管理多個快閃NAND裝置且甚至容納具有不同縮小等級之記憶體裝置。亦應注意,虛擬化ECC NAND控制器26內之ECC修正能力之一改變不影響快閃NAND設計。另外,由於藉由圖3中所示架構所圖解闡釋之解決方案可一次選擇一個NAND記憶體裝置,因此與傳統堆疊式架構相比較減少了電力消耗。By using the virtualized ECC NAND controller 26 to perform ECC algorithms outside of the NAND flash memory stack, a flexible memory system solution can be secured in terms of current technology and number of memory devices. In fact, the virtualized ECC NAND controller 26 can continue to operate regardless of the non-volatile memory system SLC and/or MLC included in the memory stack 24. In addition, the virtualized ECC NAND controller 26 is capable of managing multiple flash NAND devices and even accommodating memory devices having different reduction levels. It should also be noted that one of the ECC correction capabilities within the virtualized ECC NAND controller 26 does not affect the flash NAND design. In addition, since one NAND memory device can be selected at a time by the solution illustrated by the architecture shown in FIG. 3, power consumption is reduced as compared to a conventional stacked architecture.

由於新記憶體技術增加了一單個單元中所儲存之位元數量,因此亦增加了讀取、寫入及保持錯誤之機率。此使得使用更完整ECC演算法(其碼具有增加之修正本領)成為必須。為解決此等技術難題,應瞭解到目前為止,本發明所呈現之實施例提供一其中一單個控制器管理一NAND快閃記憶體堆疊連同執行ECC演算法之架構。此架構允許主機CPU使用一標準NAND協定驅動一具有一大無錯誤位址空間之單個記憶體系統。藉由在外部控制器中置入ECC修正能力,可在不必改變快閃遮罩之情形下促進對ECC演算法之改變。該外部控制器亦容許對控制器及NAND記憶體使用不同技術,且允許記憶體裝置具有不同之縮小等級。Since the new memory technology increases the number of bits stored in a single unit, it also increases the chances of reading, writing, and maintaining errors. This necessitates the use of a more complete ECC algorithm whose code has an increased correction capability. To address these technical challenges, it should be understood that the embodiments presented herein provide an architecture in which a single controller manages a NAND flash memory stack along with an ECC algorithm. This architecture allows the host CPU to drive 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 having to change the flash mask. The external controller also allows for different techniques to be used for the controller and NAND memory, and allows the memory devices to have different levels of downsizing.

儘管本文已圖解闡釋且闡述了本發明之某些特徵,然而熟習此項技術者現在將能想出許多修改、替代、改變及等效形式。因此,應瞭解,隨附申請專利範圍意欲涵蓋歸屬於本發明之真正精神內之所有此等修改及改變形式。While the invention has been shown and described with reference Therefore, it is to be understood that the appended claims are intended to cover all such modifications and

10...通信裝置10. . . Communication device

12...RF收發器12. . . RF transceiver

14...天線14. . . antenna

16...處理器核心16. . . Processor core

18...處理器核心18. . . Processor core

20...主機CPU20. . . Host CPU

22...系統記憶體twenty two. . . System memory

24...記憶體堆疊twenty four. . . Memory stack

26...虛擬化ECC NAND控制器26. . . Virtualized ECC NAND controller

28...記憶體介面28. . . Memory interface

30...協定介面30. . . Agreement interface

32...ECC引擎32. . . ECC engine

34...NAND介面34. . . NAND interface

36...緩衝器36. . . buffer

本說明書之結論部分中已特別指出且清晰地主張了關於本發明之標的物。然而,結合閱讀附圖來參考以上詳細說明可最佳理解本發明之組織及運作方法兩者、以及其目的、特徵及優點。The subject matter of the present invention has been particularly pointed out and clearly claimed in the conclusion of the specification. The organization and method of operation of the present invention, as well as the objects, features and advantages thereof, may be best understood from the following detailed description.

圖1圖解闡釋一無線架構,其根據本發明併入有一虛擬化ECC NAND控制器以執行ECC演算法且管理一主機處理器與一NAND記憶體堆疊之間的資料傳送;1 illustrates a wireless architecture incorporating a virtualized ECC NAND controller to perform an ECC algorithm and manage data transfer between a host processor and a NAND memory stack in accordance with the present invention;

圖2圖解闡釋主機處理器至記憶體之介面,其中虛擬化ECC NAND控制器提供既執行ECC演算法亦管理對NAND記憶體堆疊之資料傳送之功能塊;及2 illustrates a host processor-to-memory interface, wherein a virtualized ECC NAND controller provides functional blocks that perform both ECC algorithms and data transfers to the NAND memory stack;

圖3顯示虛擬化ECC NAND控制器之進一步細節。Figure 3 shows further details of the virtualized ECC NAND controller.

應瞭解,為簡潔及清晰圖解闡釋起見,圖中所圖解闡釋之元件未必按比例繪製。例如,為清晰起見,可相對於其他元件誇大某些元件之尺寸。另外,在認為適當之處,重複參考編號來指示圖中對應或類似之元件。It should be understood that the elements illustrated in the drawings are not necessarily to scale. For example, the dimensions of some of the elements may be exaggerated relative to other elements for clarity. Further, where considered appropriate, the reference numbers are repeated to refer to the corresponding or.

10...通信裝置10. . . Communication device

12...RF收發器12. . . RF transceiver

14...天線14. . . antenna

16...處理器核心16. . . Processor core

18...處理器核心18. . . Processor core

20...主機CPU20. . . Host CPU

22...系統記憶體twenty two. . . System memory

24...記憶體堆疊twenty four. . . Memory stack

26...虛擬化ECC NAND控制器26. . . Virtualized ECC NAND controller

28...記憶體介面28. . . Memory interface

Claims (20)

一種耦合至一主機之儲存系統,該儲存系統包括:複數個NAND記憶體裝置,該複數個NAND記憶體裝置不在內部實施錯誤修正碼(ECC)演算法;及一在該複數個NAND記憶體裝置外部之控制器,該控制器向該主機輸出一虛擬化位址空間以允許該主機將該儲存系統作為一單一NAND記憶體裝置來驅動,即使該儲存系統包含複數個NAND記憶體裝置,該控制器進一步提供用於該複數個NAND記憶體裝置之每一者的一單一虛擬化ECC演算法。 A storage system coupled to a host, the storage system comprising: a plurality of NAND memory devices, the plurality of NAND memory devices not internally implementing an error correction code (ECC) algorithm; and a plurality of NAND memory devices An external controller that outputs a virtualized address space to the host to allow the host to drive the storage system as a single NAND memory device, even if the storage system includes a plurality of NAND memory devices, the control The device further provides a single virtualized ECC algorithm for each of the plurality of NAND memory devices. 如請求項1之儲存系統,其中該控制器實施一ECC演算法且不實施平均抹寫及損壞區塊管理之資料管理演算法。 The storage system of claim 1, wherein the controller implements an ECC algorithm and does not implement a data management algorithm for average smearing and corrupted block management. 如請求項2之儲存系統,其中該控制器包含一具有一緩衝器之協定介面電路,以減少因該ECC演算法之計算所引起之延時。 The storage system of claim 2, wherein the controller includes a protocol interface circuit having a buffer to reduce delays caused by calculations of the ECC algorithm. 如請求項3之儲存系統,其中該協定介面電路管理一傳至該主機處理器之NAND就緒/忙碌信號以考量ECC演算法之延時。 The storage system of claim 3, wherein the protocol interface circuit manages a NAND ready/busy signal transmitted to the host processor to account for a delay of the ECC algorithm. 如請求項1之儲存系統,其中該控制器管理該複數個NAND記憶體裝置之每一者之一不同於該主機之頁大小之頁大小。 The storage system of claim 1, wherein the controller manages one of the plurality of NAND memory devices different from a page size of the page size of the host. 如請求項1之儲存系統,其中該控制器改寫由該主機發出之不受該複數個NAND記憶體裝置支援之命令。 The storage system of claim 1, wherein the controller overwrites a command issued by the host that is not supported by the plurality of NAND memory devices. 如請求項1之儲存系統,其中該控制器經組態以將自該 主機處理器所接收之資料重新導向至該複數個NAND記憶體裝置之所選之一或多者。 The storage system of claim 1, wherein the controller is configured to The data received by the host processor is redirected to one or more of the selected plurality of NAND memory devices. 一種用以與一儲存系統中之複數個NAND記憶體裝置介接之控制器,該控制器包括:一協定介面電路,其用以與一主機處理器交換信號;一錯誤修正碼(ECC)引擎,其用以實施一ECC演算法;及一NAND介面,其用以管理該複數個NAND記憶體,該NAND介面經組態以模擬由該主機處理器發出之不受該複數個NAND記憶體裝置支援之命令,該NAND介面進一步經組態以一次提供電力至該複數個NAND記憶體裝置之所選之一者以用於節約該儲存系統之整體電力消耗。 A controller for interfacing with a plurality of NAND memory devices in a storage system, the controller comprising: a protocol interface circuit for exchanging signals with a host processor; an error correction code (ECC) engine And an NAND interface for managing the plurality of NAND memories, the NAND interface configured to simulate that the plurality of NAND memory devices are not issued by the host processor In support of the command, the NAND interface is further configured to provide power to one of the plurality of NAND memory devices at a time for saving overall power consumption of the storage system. 如請求項8之控制器,其中該控制器係自一主機NAND介面至該複數個NAND記憶體裝置之一橋接器,其對該主機處理器選擇一ECC演算法以用於該儲存系統中具備之該複數個NAND記憶體裝置。 The controller of claim 8, wherein the controller is from a host NAND interface to a bridge of the plurality of NAND memory devices, wherein the host processor selects an ECC algorithm for use in the storage system The plurality of NAND memory devices. 如請求項8之控制器,其中該控制器管理一來自該主機處理器之不同於該複數個NAND記憶體裝置之頁大小之頁大小。 The controller of claim 8, wherein the controller manages a page size from the host processor that is different from a page size of the plurality of NAND memory devices. 如請求項8之控制器,其中該控制器提供一單一NAND介面至該主機處理器一虛擬化位址空間以允許該主機將該儲存系統作為一單一NAND記憶體裝置來驅動,即使該儲存系統包含該複數個NAND記憶體裝置。 The controller of claim 8, wherein the controller provides a single NAND interface to the host processor-virtualized address space to allow the host to drive the storage system as a single NAND memory device, even if the storage system The plurality of NAND memory devices are included. 如請求項8之控制器,其中該控制器包含一具有一緩衝器之協定介面電路以將資料傳送至該主機處理器,該緩衝器具有讀取一第二資料頁之緩衝能力以在一後續讀取作業中平行處理ECC演算法執行。 The controller of claim 8, wherein the controller includes a protocol interface circuit having a buffer for transferring data to the host processor, the buffer having a buffering capability for reading a second data page for subsequent Parallel processing ECC algorithm execution in the read job. 如請求項12之控制器,其中該協定介面電路管理一傳至該主機處理器之NAND就緒/忙碌信號以考量ECC演算法之延時。 The controller of claim 12, wherein the protocol interface circuit manages a NAND ready/busy signal transmitted to the host processor to account for a delay of the ECC algorithm. 一種管理一不在內部實施一錯誤修正碼(ECC)演算法之NAND記憶體裝置堆疊之方法,該方法包括:使用一控制器裝置之一協定介面區塊與一主機處理器交換信號以允許該主機處理器與一大無錯誤位址空間通信;藉由一嵌入該控制器裝置中之ECC引擎區塊實施一單一虛擬化ECC演算法;及藉由一嵌入該控制器裝置中之NAND介面區塊重新規劃自該主機處理器所接收之命令及位址兩者,而管理對該NAND記憶體裝置堆疊之資料傳送。 A method of managing a NAND memory device stack that does not internally implement an error correction code (ECC) algorithm, the method comprising: exchanging signals with a host processor using one of a controller device protocol interface to allow the host The processor is in communication with a large error-free address space; a single virtualized ECC algorithm is implemented by an ECC engine block embedded in the controller device; and by a NAND interface block embedded in the controller device The command and address received from the host processor are re-planned to manage the data transfer to the NAND memory device stack. 如請求項14之方法,其進一步包含藉由該協定介面區塊解譯自該主機處理器所接收之命令以導向對來自該主機處理器之資料之儲存。 The method of claim 14, further comprising interpreting commands received from the host processor by the protocol interface block to direct storage of data from the host processor. 如請求項14之方法,其進一步包含在該協定介面區塊中載入一緩衝器,該緩衝器具有讀取一第二資料頁之緩衝能力以在一後續讀取作業中平行處理ECC演算法執行。 The method of claim 14, further comprising loading a buffer in the protocol interface block, the buffer having a buffering capability to read a second data page to process the ECC algorithm in parallel in a subsequent read job carried out. 一種包含多個NAND記憶體裝置之無線通信系統,該無 線通信系統包括:一收發器;一處理器,其具有第一及第二處理器核心,該處理器耦合至該收發器;及一錯誤修正碼(ECC)控制器,其具有:一嵌入式NAND介面區塊,其用以接收命令及位址且與該處理器交換信號;一ECC引擎,其用以實施一ECC演算法;及一NAND介面電路,其用以重新規劃自該主機處理器所接收之命令及位址兩者以導向與該等NAND記憶體裝置之資料傳送,該等NAND記憶體裝置不在內部實施該ECC演算法。 A wireless communication system including a plurality of NAND memory devices, the The line communication system includes: a transceiver; a processor having first and second processor cores coupled to the transceiver; and an error correction code (ECC) controller having: an embedded a NAND interface block for receiving commands and addresses and exchanging signals with the processor; an ECC engine for implementing an ECC algorithm; and a NAND interface circuit for re-planning from the host processor Both the received command and the address are directed to data transfer with the NAND memory devices, and the NAND memory devices do not implement the ECC algorithm internally. 如請求項17之無線通信系統,其中該ECC控制器進一步包含一具有一緩衝器之協定介面電路以減少因該ECC演算法之計算所引起之延時。 The wireless communication system of claim 17, wherein the ECC controller further comprises a protocol interface circuit having a buffer to reduce delays caused by calculations of the ECC algorithm. 如請求項17之無線通信系統,其中該ECC控制器允許該處理器在該ECC控制器將自該處理器所接收之資料重新導向至一所選NAND記憶體裝置時,將該等NAND記憶體裝置作為一單一NAND記憶體裝置驅動。 The wireless communication system of claim 17, wherein the ECC controller allows the processor to redirect the data received from the processor to a selected NAND memory device when the ECC controller redirects data received from the processor The device is driven as a single NAND memory device. 如請求項17之無線通信系統,其中該ECC控制器允許該處理器管理一不同於該等NAND記憶體裝置之一頁大小之頁大小。A wireless communication system according to claim 17, wherein the ECC controller allows the processor to manage a page size different from a page size of the NAND memory devices.
TW097139047A 2008-10-09 2008-10-09 Storage system to couple to a host, controller to interface with nand memory in storage system, and method of managing a stack of nand memory devices TWI475378B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
TW097139047A TWI475378B (en) 2008-10-09 2008-10-09 Storage system to couple to a host, controller to interface with nand memory in storage system, and method of managing a stack of nand memory devices

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW097139047A TWI475378B (en) 2008-10-09 2008-10-09 Storage system to couple to a host, controller to interface with nand memory in storage system, and method of managing a stack of nand memory devices

Publications (2)

Publication Number Publication Date
TW201015294A TW201015294A (en) 2010-04-16
TWI475378B true TWI475378B (en) 2015-03-01

Family

ID=44829966

Family Applications (1)

Application Number Title Priority Date Filing Date
TW097139047A TWI475378B (en) 2008-10-09 2008-10-09 Storage system to couple to a host, controller to interface with nand memory in storage system, and method of managing a stack of nand memory devices

Country Status (1)

Country Link
TW (1) TWI475378B (en)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI267862B (en) * 2004-03-08 2006-12-01 Sandisk Corp Flash controller cache architecture
US20070074093A1 (en) * 2005-09-26 2007-03-29 M-Systems Flash Disk Pioneers Ltd. NAND flash memory controller exporting and NAND interface
TW200712863A (en) * 2005-09-23 2007-04-01 Via Tech Inc Method of detecting data error code
TWI285378B (en) * 2005-11-18 2007-08-11 Winbond Electronics Corp System and method for controlling flash memory
US20080065937A1 (en) * 2006-09-13 2008-03-13 Stmicroelectronics S.R.I. Nand flash memory device with ecc protected reserved area for non-volatile storage of redundancy data
US20080163023A1 (en) * 2007-01-03 2008-07-03 Si-Hoon Hong ECC controller for use in flash memory device and memory system including the same
TW200839502A (en) * 2007-03-28 2008-10-01 Phison Electronics Corp Flash memory system and method for controlling the same

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI267862B (en) * 2004-03-08 2006-12-01 Sandisk Corp Flash controller cache architecture
TW200712863A (en) * 2005-09-23 2007-04-01 Via Tech Inc Method of detecting data error code
US20070074093A1 (en) * 2005-09-26 2007-03-29 M-Systems Flash Disk Pioneers Ltd. NAND flash memory controller exporting and NAND interface
TWI285378B (en) * 2005-11-18 2007-08-11 Winbond Electronics Corp System and method for controlling flash memory
US20080065937A1 (en) * 2006-09-13 2008-03-13 Stmicroelectronics S.R.I. Nand flash memory device with ecc protected reserved area for non-volatile storage of redundancy data
US20080163023A1 (en) * 2007-01-03 2008-07-03 Si-Hoon Hong ECC controller for use in flash memory device and memory system including the same
TW200839502A (en) * 2007-03-28 2008-10-01 Phison Electronics Corp Flash memory system and method for controlling the same

Also Published As

Publication number Publication date
TW201015294A (en) 2010-04-16

Similar Documents

Publication Publication Date Title
US9971536B2 (en) Controller to manage NAND memories
US20160364143A1 (en) Extensible memory hub
US9929967B2 (en) Packet deconstruction/reconstruction and link-control
JP5566650B2 (en) Memory device for hierarchical memory architecture
KR101861247B1 (en) Memory controller, data processing method thereof, memory system having the same
US20150309867A1 (en) Composite semiconductor memory device with error correction
CN111081308A (en) System and method for hybrid non-volatile storage system
US20060245274A1 (en) Apparatus and method for controlling NAND flash memory
KR20090019593A (en) Ecc control circuit and multi channel memory system icluding the same
US20100218064A1 (en) Semiconductor memory device incorporating controller
US20150205540A1 (en) Memory system including nonvolatile memory devices and operating method
US20150052397A1 (en) Memory system and controlling method of memory system
US10116335B2 (en) Data processing method, memory storage device and memory control circuit unit
US8719669B2 (en) Error correction decoder and error correction method thereof
US11101822B1 (en) Data writing method, memory control circuit unit and memory storage apparatus
TWI475378B (en) Storage system to couple to a host, controller to interface with nand memory in storage system, and method of managing a stack of nand memory devices
US10866855B2 (en) Memory system varying operation of memory controller according to internal status of memory device
US10713160B1 (en) Data writing method, memory control circuit unit and memory storage device
CN107608817B (en) Decoding method, memory storage device and memory control circuit unit
JP2014238871A (en) Controller providing single virtualized ecc algorithm, storage system including this controller, and method of managing this storage system
US20170177260A1 (en) Memory management method, memory control circuit unit and memory storage device
US10102121B1 (en) Memory management method, memory control circuit unit and memory storage device
US20220245024A1 (en) Encoding control method, memory storage device and memory control circuit unit
CN104298468A (en) Command execution method, connector and memory storage device