TWI756692B - 記憶體系統以及控制方法 - Google Patents
記憶體系統以及控制方法 Download PDFInfo
- Publication number
- TWI756692B TWI756692B TW109117415A TW109117415A TWI756692B TW I756692 B TWI756692 B TW I756692B TW 109117415 A TW109117415 A TW 109117415A TW 109117415 A TW109117415 A TW 109117415A TW I756692 B TWI756692 B TW I756692B
- Authority
- TW
- Taiwan
- Prior art keywords
- action
- parallel
- memory
- sensing
- read
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1689—Synchronisation and timing concerns
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0877—Cache access modes
- G06F12/0884—Parallel mode, e.g. in parallel with main memory or CPU
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0751—Error or fault detection not based on redundancy
- G06F11/0754—Error or fault detection not based on redundancy by exceeding limits
- G06F11/0757—Error or fault detection not based on redundancy by exceeding limits by exceeding a time limit, i.e. time-out, e.g. watchdogs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding 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/1048—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding 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/1068—Adding 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3037—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a memory, e.g. virtual memory, cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0877—Cache access modes
- G06F12/0882—Page mode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/56—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
- G11C11/5621—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
- G11C11/5642—Sensing or reading circuits; Data output circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/04—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
- G11C16/0483—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/26—Sensing or reading circuits; Data output circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/3404—Convergence or correction of memory cell threshold voltages; Repair or recovery of overerased or overprogrammed cells
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1032—Reliability improvement, data loss prevention, degraded operation etc
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7203—Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7208—Multiple device management, e.g. distributing data over multiple flash devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2211/00—Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C2211/56—Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
- G11C2211/563—Multilevel memory reading aspects
- G11C2211/5631—Concurrent multilevel reading of more than one cell
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Human Computer Interaction (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Computer Hardware Design (AREA)
- Read Only Memory (AREA)
- Detection And Correction Of Errors (AREA)
- Memory System (AREA)
Abstract
實施形態提供一種可抑制因狀態輪詢引起的讀動作延遲的記憶體系統以及控制方法。實施形態的記憶體系統包括:非揮發性記憶體,具有分別包含記憶細胞的多個並列動作元件;以及記憶體控制器,控制多個並列動作元件,記憶體控制器在從非揮發性記憶體讀資料時,依序指示多個並列動作元件進行對多個並列動作元件中所含的記憶細胞所保持的資料進行感測的感測動作,當多個並列動作元件中的任一者的感測動作的動作時間已到期時,不進行動作時間已到期的並列動作元件的狀態確認,而指示動作時間已到期的並列動作元件進行資料的轉發動作。
Description
本申請案享有以日本專利申請案2019-191644號(申請日:2019年10月21日)為基礎申請案的優先權。本申請案藉由參照所述基礎申請案而包含基礎申請案的所有內容。
本發明的實施形態是有關於一種記憶體系統(memory system)以及控制方法。
記憶體系統包括記憶體控制器(memory controller)以及連接於記憶體控制器的記憶體。記憶體例如具有多個並列動作元件。記憶體控制器例如具有多個通道(channel),每一通道控制多個並列動作元件。
此種構成中,記憶體控制器有時會進行狀態輪詢(status polling),以確認記憶體的狀態。然而,狀態輪詢所需的時間成為讀動作的延遲的一個原因。
本發明的實施形態提供一種可抑制因狀態輪詢引起的讀動作延遲的記憶體系統以及控制方法。
實施形態的記憶體系統包括:非揮發性記憶體,具有分別包含記憶細胞的多個並列動作元件;以及記憶體控制器,控制
所述多個並列動作元件,所述記憶體控制器在從所述非揮發性記憶體讀資料時,依序指示所述多個並列動作元件進行對所述多個並列動作元件中所含的所述記憶細胞所保持的資料進行感測的感測動作,當所述多個並列動作元件中的任一者的感測動作的動作時間已到期時,不進行所述動作時間已到期的並列動作元件的狀態確認,而指示所述動作時間已到期的並列動作元件進行所述資料的轉發動作。
1:記憶體系統
2:主機
10:記憶體控制器
11:CPU
12:主機I/F控制器
13:RAM
14:NAND控制器
15:DRAM I/F控制器
20:NAND型快閃記憶體(NAND記憶體)
21:NAND封裝
30:DRAM
140~142:定時器
143:暫存器
144:ECC部
145:NAND介面(NAND I/F)
210、210(0)~210(2):記憶體晶片
211:記憶細胞陣列
212:感測放大器模組
212A:感測放大器
212B:頁面緩衝器
213:列解碼器模組
214:輸入/輸出電路
215:暫存器
215A:狀態暫存器
215B:位址暫存器
215C:命令暫存器
216:邏輯控制器
217:定序器
218:就緒/忙碌生成電路
219:電壓生成電路
ADD:位址資訊
ALE:位址鎖存賦能信號
AR、BR、CR、DR、ER、FR、GR:讀電壓
BL0~BLm:位元線
BLK:塊
CEn:晶片賦能信號
Ch.0~Ch.3:通道
CLE:命令鎖存賦能信號
CMD:命令
CU:細胞單元
DAT:讀資料、寫資料
I/O、I/O1~I/O8:輸入/輸出匯流排
MT0~MT7:記憶細胞電晶體
NS:NAND串
RBn:就緒/忙碌信號
REn:讀賦能信號
S1:感測動作
S101~S108、S201~S205:步驟
S2:資料轉發動作
SGD0~SGD3、SGS:選擇閘極線
SL:源極線
ST1、ST2:選擇電晶體
STS:狀態資訊
SU0~SU3:串單元
VREAD:讀通過電壓
WEn:寫賦能信號
WL0~WL7:字元線
WPn:寫保護信號
圖1是表示實施形態的記憶體系統的構成的一例的圖。
圖2是表示實施形態的記憶體晶片的構成的一例的圖。
圖3是表示實施形態的記憶細胞陣列的構成的一例的圖。
圖4是表示實施形態的記憶細胞陣列的多個記憶細胞電晶體的臨限值電壓分佈及讀電壓的圖。
圖5是表示實施形態的記憶細胞陣列的多個記憶細胞電晶體的臨限值電壓分佈及讀電壓的圖。
圖6是表示實施形態的記憶細胞陣列的多個記憶細胞電晶體的臨限值電壓分佈及讀電壓的圖。
圖7是表示實施形態的記憶體系統的讀動作的概要的圖。
圖8是表示實施形態的記憶體系統的讀動作的命令集的圖。
圖9是表示實施形態的記憶體系統的讀動作的詳細的圖。
圖10是表示與實施形態的記憶體系統的讀動作相關的處理
流程的一例的流程圖。
圖11是表示比較例的記憶體系統的讀動作的詳細的圖。
圖12是表示在實施形態的變形例的讀動作中發生了忙碌堆疊(busy stack)時的圖。
圖13是表示在實施形態的變形例的讀動作中發生了忙碌堆疊時的處理流程的一例的流程圖。
以下,參照圖式來詳細說明實施形態。再者,本發明並不受下述實施形態限定。而且,下述實施形態中的構成要素包含本領域人員能夠容易地設想或者實質上相同者。
(記憶體系統的構成例)
圖1是表示實施形態的記憶體系統1的構成的一例的圖。如圖1所示,記憶體系統1包括記憶體控制器10、反及(NAND)型快閃記憶體20(以下稱作「NAND記憶體20」)、及動態隨機存取記憶體(Dynamic Random Access Memory,DRAM)30。
作為非揮發性記憶體的NAND記憶體20具有多個NAND封裝21。各個NAND封裝21分別包括多個記憶體晶片210(0)~210(2)。作為並列動作元件的記憶體晶片210(0)~記憶體晶片210(2)是非揮發地記憶資料的非揮發性記憶體。多個記憶體晶片210(0)~210(2)分別獨立地動作,可實現多個記憶體晶片210(0)~210(2)間的並列動作。
在記憶體系統1中,NAND記憶體20所具有的NAND
封裝21的個數為任意。而且,NAND封裝21所具有的記憶體晶片210(0)~記憶體晶片210(2)的個數為任意。
以下,舉例來說明NAND記憶體20,但非揮發性記憶體並不限於此,例如亦可為磁性隨機存取記憶體(Magnetoresistive Random Access Memory,MRAM)、相變隨機存取記憶體(Phase Change Random Access Memory,PCRAM)、電阻隨機存取記憶體(Resistive Random Access Memory,ReRAM)等其他記憶體。
DRAM30是可暫時記憶資料的揮發性記憶體。但是,記憶體系統1所包括的揮發性記憶體並不限定於DRAM。記憶體系統1例如亦可包括靜態隨機存取記憶體(Static Random Access Memory,SRAM)等來作為揮發性記憶體。
記憶體控制器10例如是晶片級系統(System on a Chip,SoC)、現場可程式閘陣列(Field Programmable Gate Array,FPGA)、特殊應用積體電路(Application Specific Integrated Circuit,ASIC)等積體電路(Integrated Circuit,IC),可命令NAND記憶體20及DRAM30進行各種動作。記憶體控制器10執行基於來自外部的主機2的請求(request)的動作、與不依賴於來自主機2的請求的動作。記憶體控制器10的各功能既可由執行程式的中央處理單元(Central Processing Unit,CPU)來實現,亦可利用專用的硬體(hardware)來實現。
記憶體控制器10包括CPU11、主機介面(Interface,I/F)控制器12、RAM13、多個NAND控制器14及DRAM I/F控制器
15。
CPU11控制記憶體控制器10整體的動作。CPU11例如響應從主機2接收的讀請求而發佈讀命令,並將所發佈的讀命令發送至NAND控制器14。
RAM13是被用作CPU11的作業區域的記憶區域。在RAM13中,例如記憶有用於管理NAND記憶體20的參數或者各種管理表等。RAM13例如記憶從主機2接收的請求的等待隊列(命令隊列(command queue))。而且,RAM13記憶位址轉換表,所述位址轉換表用於將與保存在NAND記憶體20中的資料相關聯的邏輯位址轉換為NAND記憶體20的物理位址。所述位址轉換表例如被保存在NAND記憶體20內,在記憶體系統1的啟動時被讀出而記憶於RAM13中。作為RAM13,使用SRAM等揮發性記憶體。再者,在位址轉換表的資料大小為大的情況下,位址轉換表有時被記憶在容量比RAM13大的DRAM30中。
主機I/F控制器12連接於主機2,負責記憶體系統1與主機2之間的通訊。主機I/F控制器12例如在記憶體系統1與主機2之間,控制資料、請求及位址的轉發。主機I/F控制器12例如支援序列先進技術附件(Serial Advanced Technology Attachment,SATA)、串列連接小型電腦系統介面(Serial Attached SCSI,SAS)、快速周邊組件互連(PCI Express,PCIe)、快速非揮發性記憶體(Non-Volatile Memory Express,NVMe)(註冊商標)等通訊介面規格。即,作為連接於記憶體系統1的主機2,例如可
列舉包含SATA、SAS、PCIe、NVMe等介面的電腦等。
DRAM I/F控制器15連接於DRMA30,負責記憶體控制器10與DRAM30之間的通訊。DRAM I/F控制器15是基於DRAM介面規格而構成。再者,DRAM I/F控制器15的構成並不限定於此,可基於記憶體系統1所包括的揮發性記憶體的種類而變更。
多個NAND控制器14經由各不相同的通道Ch.0~通道Ch.3而連接於各不相同的NAND封裝21。各通道Ch.0~Ch.3包含配線群,所述配線群包含輸入/輸出信號線及控制信號線。輸入/輸出信號線例如是用於收發資料、位址及命令的信號線。控制信號線例如是用於收發對NAND記憶體20進行控制的控制信號的信號線。
多個NAND控制器14控制各不相同的通道Ch.0~通道Ch.3。而且,藉此,多個NAND控制器14針對各自對應的NAND封裝21內的各個記憶體晶片210(0)~210(2),執行從CPU11所指示的命令的控制。
各個NAND控制器14包括定時器140~定時器142、暫存器143、ECC部144及NAND I/F145。
定時器140~定時器142可對與記憶體系統1的各種動作相關的動作時間進行測定。對於定時器140~定時器142,例如設置有與並列動作的多個記憶體晶片210(0)~210(2)的動作時間相關的資訊,定時器140~定時器142可對其進行測定。
定時器140~定時器142的個數為任意,例如可設為與
記憶體控制器10在一次交插(interleave)動作中可發佈的命令數為同數或以上。交插動作是指對可並列處理的記憶體晶片210(0)~記憶體晶片210(2)等分別發佈命令而使他們並列動作。記憶體控制器10在一次交插動作中可發佈的命令數取決於DRAM30的容量等、記憶體控制器10所具有的資源。以下,設記憶體控制器10在一次交插動作中可發佈的命令數為3。
但是,亦可將定時器140~定時器142的個數設為與記憶體晶片210(0)~記憶體晶片210(2)等並列動作元件的數量為同數或以上。
暫存器143記憶與記憶體系統1的各種動作相關的動作時間。暫存器143例如記憶與進行並列動作的多個記憶體晶片210(0)~210(2)的動作時間相關的資訊。
ECC部144為了進行對資料的錯誤檢測及錯誤訂正而進行資料的編碼及解碼。具體而言,ECC部144對寫入NAND記憶體20的資料進行編碼。而且,ECC部144對從NAND記憶體20讀出的資料進行解碼。ECC部144藉由解碼來執行對所讀出的資料的錯誤檢測及錯誤訂正。ECC部144在錯誤訂正失敗的情況下,將錯誤訂正的失敗通知給CPU11。對於ECC部144所進行的編碼及解碼的算法,可適用使用里德索羅門(Reed-Solomon,RS)碼、博斯-查德胡里-霍昆格姆碼(Bose-Chaudhuri-Hocquenghem,BCH)碼或低密度奇偶校驗(Low Density Parity Check,LDPC)碼等的任意算法。
NAND I/F145連接NAND控制器14與NAND封裝21,負責NAND控制器14與NAND封裝21之間的通訊。NAND I/F145是基於NAND介面規格而構成。
(記憶體晶片的構成例)
圖2是表示實施形態的記憶體晶片210的構成的一例的圖。如圖2所示,記憶體晶片210包括記憶細胞陣列211、感測放大器模組212、列解碼器模組213、輸入/輸出電路214、暫存器215、邏輯控制器216、定序器(sequencer)217、就緒/忙碌生成電路218及電壓生成電路219。
記憶細胞陣列211包含塊BLK0~塊BLKn(n為0以上的整數)。塊BLK是與位元線及字元線相關聯的多個記憶細胞(記憶細胞電晶體)的集合,例如成為資料的抹除單位。
塊BLK0~塊BLKn有常規塊(normal block)及ROM熔線塊(ROM fuse block)等。常規塊被允許來自記憶體控制器10的通常的存取,可進行資料的寫及讀。ROM熔線塊被禁止來自記憶體控制器10的通常的存取,記憶有用於記憶體晶片210自身的管理資訊。記憶於ROM熔線的管理資訊例如不僅包含不良塊資訊或不良行資訊,亦包含與記憶體晶片210的動作時間相關的資訊等。
暫存器215包含狀態暫存器215A、位址暫存器215B及命令暫存器215C。狀態暫存器215A例如記憶定序器217的狀態資訊STS,並基於定序器217的指示來將所述狀態資訊STS轉發
至輸入/輸出電路214。狀態暫存器215A亦可基於定序器217的指示而將從所述ROM熔線塊獲取的與記憶體晶片210的動作時間相關的資訊轉發至輸入/輸出電路214。位址暫存器215B記憶從輸入/輸出電路214轉發的位址資訊ADD。位址資訊ADD例如包含行位址、列位址、及塊位址。行位址是由感測放大器模組212所使用,列位址及塊位址是由列解碼器模組213所使用。命令暫存器215C記憶從輸入/輸出電路214轉發的命令CMD。
感測放大器模組212包括感測放大器212A及頁面緩衝器212B。感測放大器212A藉由選擇與行位址相應的位元線,從而自規定的記憶細胞陣列211讀出資料DAT。頁面緩衝器212B包括多個資料鎖存器(data latch),所述資料鎖存器暫時記憶從記憶細胞陣列211讀出的讀資料DAT、或從記憶體控制器10經由輸入/輸出電路214而接收的寫資料DAT。
列解碼器模組213基於記憶在位址暫存器215B中的塊位址,來選擇作為執行各種動作的對象的塊BLK。而且,列解碼器模組213基於記憶在位址暫存器215B中的列位址,來選擇作為執行各種動作的對象的字元線。而且,列解碼器模組213將從電壓生成電路219供給的電壓轉發至所選擇的塊BLK。
輸入/輸出電路214例如經由8位元寬的輸入/輸出匯流排I/O(I/O1~I/O8)而與記憶體控制器10之間收發輸入/輸出信號。輸入/輸出電路214例如將從記憶體控制器10接收的輸入/輸出信號中所含的寫資料DAT轉發至頁面緩衝器212B,而且,將從
頁面緩衝器212B轉發的讀資料DAT作為輸入/輸出信號而發送至記憶體控制器10。
邏輯控制器216基於從記憶體控制器10接收的各種控制信號來控制輸入/輸出電路214及定序器217。作為各種控制信號,例如使用晶片賦能信號CEn、命令鎖存賦能信號CLE、位址鎖存賦能信號ALE、寫賦能信號WEn、讀賦能信號REn及寫保護信號WPn。
晶片賦能信號CEn是用於對記憶體晶片210進行賦能的信號。命令鎖存賦能信號CLE是將輸入至記憶體晶片210的信號是命令CMD的情況,經由輸入/輸出匯流排I/O通知給輸入/輸出電路214的信號。位址鎖存賦能信號ALE是將輸入至記憶體晶片210的信號是位址ADD的情況,經由輸入/輸出匯流排I/O通知給輸入/輸出電路214的信號。寫賦能信號WEn是命令輸入/輸出電路214進行輸入/輸出信號的輸入的信號。讀賦能信號REn是命令輸入/輸出電路214進行輸入/輸出信號的輸出的信號。寫保護信號WPn例如是用於在電源的接通斷開時將記憶體晶片210設為保護狀態的信號。
定序器217基於記憶在命令暫存器215C中的命令CMD來控制記憶體晶片210整體的動作。定序器217例如控制感測放大器模組212、列解碼器模組213及電壓生成電路219來執行寫動作或讀動作等各種動作。
就緒/忙碌生成電路218基於記憶體晶片210的動作狀態
來生成就緒/忙碌信號RBn。就緒/忙碌信號RBn是將記憶體晶片210是可受理來自記憶體控制器10的命令的就緒狀態,或是無法受理命令的忙碌狀態通知給記憶體控制器10的信號。
但是,實施形態的記憶體系統1中,記憶體控制器10不接收就緒/忙碌信號RBn。藉此,在包括多個通道Ch.0~Ch.3的記憶體控制器10中,能夠削減接腳數。記憶體控制器10中,如後所述,不依賴於就緒/忙碌信號RBn,而是藉由狀態讀命令等對狀態暫存器215A的資料進行讀出的命令,來獲取記憶體晶片210是就緒狀態或是忙碌狀態等、記憶體晶片210的狀態。再者,記憶體晶片210即使為忙碌狀態,亦可受理對狀態暫存器215A的資料進行讀出的命令。
電壓生成電路219基於定序器217的控制來生成所需的電壓,並將所生成的電壓供給至記憶細胞陣列211、感測放大器模組212、及列解碼器模組213等。電壓生成電路219例如基於記憶在位址暫存器215B中的位址,對與後述的選擇字元線及非選擇字元線對應的信號線分別施加所需的電壓。
(記憶細胞陣列的構成例)
圖3是表示實施形態的記憶細胞陣列211的構成的一例的圖。圖3表示關於記憶細胞陣列211內的一個塊BLK的詳細電路構成。如圖3所示,塊BLK例如具有多個串單元SU(SU0~SU3)。圖3的示例中,塊BLK包含四個串單元SU0~SU3,但其數量為任意。
各個串單元SU包含與位元線BL0~位元線BLm(m為0以上的整數)分別相關聯的多個NAND串NS。各個NAND串NS例如包含記憶細胞電晶體MT0~記憶細胞電晶體MT7及選擇電晶體ST1、選擇電晶體ST2。一個NAND串NS中所含的記憶細胞電晶體MT及選擇電晶體ST的數量為任意。
記憶細胞電晶體MT例如包括控制閘極及電荷蓄積層,非揮發地記憶資料。NAND串NS中所含的記憶細胞電晶體MT0~記憶細胞電晶體MT7串聯連接於選擇電晶體ST1的源極與選擇電晶體ST2的汲極之間。同一個塊BLK中所含的各個NAND串NS的記憶細胞電晶體MT0的控制閘極共同連接於字元線WL0。同樣,同一個塊BLK中所含的多個NAND串NS的記憶細胞電晶體MT1~記憶細胞電晶體MT7的控制閘極分別共同連接於字元線WL1~字元線WL7。
再者,以下的說明中,將各個串單元SU內連接於共同的字元線WL的多個記憶細胞電晶體MT設為細胞單元CU。而且,將細胞單元CU中所含的各個記憶細胞電晶體MT所記憶的一位元資料的集合稱作頁面。因此,在一個記憶細胞電晶體中記憶一位元資料的情況下,細胞單元CU記憶一頁面量的資料。而且,在一個記憶細胞電晶體中記憶二位元資料的情況下,細胞單元CU記憶二頁面量的資料。
選擇電晶體ST1、選擇電晶體ST2被用於讀及寫等各種動作時的串單元SU的選擇。與同一行位址對應的NAND串NS
中所含的選擇電晶體ST1的汲極共同連接於對應的位元線BL。串單元SU0中所含的多個選擇電晶體ST1的閘極共同連接於選擇閘極線SGD0。同樣,串單元SU1~串單元SU3中所含的多個選擇電晶體ST1的閘極分別共同連接於選擇閘極線SGD1~選擇閘極線SGD3。在同一塊BLK中,多個選擇電晶體ST2的源極共同連接於一個源極線SL。多個選擇電晶體ST2的閘極共同連接於一個選擇閘極線SGS。
此種記憶細胞陣列211的電路構成中,字元線WL0~字元線WL7是針對每個塊BLK而設。位元線BL0~位元線BLm是在多個塊BLK間共享。源極線SL是在多個塊BLK間共享。再者,字元線WL及選擇閘極線SGD、選擇閘極線SGS的條數是基於記憶細胞電晶體MT及選擇電晶體ST1、選擇電晶體ST2的個數而變更。
(記憶細胞電晶體的臨限值電壓分佈)
圖4~圖6是表示實施形態的記憶細胞陣列211的多個記憶細胞電晶體MT的臨限值電壓分佈及讀電壓的圖。圖4~圖6表示了由各不相同的寫方式所產生的記憶細胞電晶體MT的臨限值電壓分佈。圖4~圖6中的縱軸是記憶細胞電晶體MT的個數,橫軸是記憶細胞電晶體MT的臨限值電壓Vth。如圖4~圖6所示,多個記憶細胞電晶體MT基於所記憶的資料的位元數來形成多個臨限值電壓分佈。
圖4表示在一個記憶細胞電晶體MT記憶一位元資料的
單層細胞(Single-Level Cell,SLC)方式的情況下,由多個記憶細胞電晶體MT的臨限值電壓所形成的臨限值電壓分佈。如圖4所示,在SLC方式的情況下,多個記憶細胞電晶體MT形成二個臨限值電壓分佈。將所述二個臨限值電壓分佈從臨限值電壓低者依序稱作「ER」狀態、「A」狀態。SLC方式中,例如對「ER」狀態及「A」狀態分別分配資料「1」及資料「0」。
圖5表示在一個記憶細胞電晶體MT記憶二位元資料的多層細胞(Multi-Level Cell,MLC)方式的情況下,由多個記憶細胞電晶體MT的臨限值電壓所形成的臨限值電壓分佈。如圖5所示,在MLC方式的情況下,多個記憶細胞電晶體MT形成四個臨限值電壓分佈。將所述四個臨限值電壓分佈從臨限值電壓低者依序稱作「ER」狀態、「A」狀態、「B」狀態及「C」狀態。MLC方式中,例如對「ER」狀態、「A」狀態、「B」狀態及「C」狀態分別分配資料「11(上/下(Upper/Lower))」、資料「01」、資料「00」及資料「10」。
圖6表示在一個記憶細胞電晶體MT記憶三位元資料的三層細胞(Triple-Level Cell,TLC)方式的情況下,由多個記憶細胞電晶體MT的臨限值電壓所形成的臨限值電壓分佈。如圖6所示,在TLC方式的情況下,多個記憶細胞電晶體MT形成八個臨限值電壓分佈。將所述八個臨限值電壓分佈從臨限值電壓低者依序稱作「ER」狀態、「A」狀態、「B」狀態、「C」狀態、「D」狀態、「E」狀態、「F」狀態及「G」狀態。TLC方式中,例如對
「ER」狀態、「A」狀態、「B」狀態、「C」狀態、「D」狀態、「E」狀態、「F」狀態及「G」狀態分別分配資料「111(上/中/下(Upper/Middle/Lower))」、資料「110」、資料「100」、資料「000」、資料「010」、資料「011」、資料「001」及資料「101」。
在該些臨限值電壓分佈中,在相鄰的臨限值電壓分佈之間分別設定讀電壓。例如,讀電壓AR被設定在「ER」狀態下的最高的臨限值電壓與「A」狀態下的最低的臨限值電壓之間,被用於判定作為讀對象的記憶細胞電晶體MT的臨限值電壓是包含在「ER」狀態的臨限值電壓分佈中,或是包含在「A」狀態以上的臨限值電壓分佈中。當對作為讀對象的記憶細胞電晶體MT施加讀電壓AR時,與「ER」狀態對應的記憶細胞電晶體MT導通,與「A」狀態、「B」狀態、「C」狀態、「D」狀態、「E」狀態、「F」狀態及「G」狀態對應的記憶細胞電晶體MT斷開。其他的讀電壓亦同樣地設定。
即,讀電壓BR被設定在「A」狀態的臨限值電壓分佈與「B」狀態的臨限值電壓分佈之間。讀電壓CR被設定在「B」狀態的臨限值電壓分佈與「C」狀態的臨限值電壓分佈之間。讀電壓DR被設定在「C」狀態的臨限值電壓分佈與「D」狀態的臨限值電壓分佈之間。讀電壓ER被設定在「D」狀態的臨限值電壓分佈與「E」狀態的臨限值電壓分佈之間。讀電壓FR被設定在「E」狀態的臨限值電壓分佈與「F」狀態的臨限值電壓分佈之間。讀電壓GR被設定在「F」狀態的臨限值電壓分佈與「G」狀態的臨限
值電壓分佈之間。
而且,在各寫方式中,讀通過電壓VREAD被設定為比臨限值電壓分佈中的最高的臨限值電壓高的電壓。MLC方式中的讀通過電壓VREAD亦可被設定為比SLC方式中的讀通過電壓VREAD高。同樣,TLC方式中的讀通過電壓VREAD亦可被設定為比MLC方式中的讀通過電壓VREAD高。藉此,閘極被施加有讀通過電壓VREAD的記憶細胞電晶體MT不依賴於所記憶的資料而導通。
此處,SLC方式、MLC方式及TLC方式的各寫方式所需的讀時間(後述的感測動作時間)各不相同。MLC方式的感測動作時間比SLC方式的感測動作時間長,而且,TLC方式的感測動作時間比MLC方式的感測動作時間長。
根據作為讀對象的頁面,感測動作時間亦不同。SLC方式的讀使用一個讀位準(AR)。MLC方式的下頁面的讀使用一個讀位準(BR)。MLC方式的上頁面的讀使用二個讀位準(AR、CR)。TLC方式的上頁面的讀使用二個讀位準(CR、GR)。TLC方式的下頁面的讀使用二個讀位準(AR、ER)。TLC方式的中頁面的讀使用三個讀位準(BR、DR、FR)。如此,當用於讀的讀位準增加時,感測動作時間亦增加。
相鄰的狀態間的臨限值電壓分佈的裕度(margin)越小,則越容易受到雜訊等的影響,因此存在感測動作時間變得越長的傾向。具體而言,狀態間的裕度為SLC方式>MLC方式>TLC方
式,因此一個讀位準下的感測動作時間為SLC方式<MLC方式<TLC方式。
上述所示的一個記憶細胞電晶體MT中記憶的資料的位元數、與針對記憶細胞電晶體MT的臨限值電壓分佈的資料分配為一例。亦可對臨限值電壓分佈適用上述以外的各種資料分配。而且,各讀電壓及讀通過電壓既可設定為在各寫方式中相同的電壓值,亦可設定為不同的電壓。而且,上述所示的MLC方式的下頁面/上頁面的位元分配(bit assign)的編碼(encoding)不過是一例。同樣,TLC方式的下頁面/中頁面/上頁面的位元分配的編碼不過是一例。其他編碼亦可適用,此時,各頁面間的感測動作時間的大小關係亦可為各式各樣而不同。
(讀動作的概要)
接下來,使用圖7及圖8來說明讀動作的概要。
圖7是表示實施形態的記憶體系統1的讀動作的概要的圖。如圖7所示,讀動作包含感測動作S1與資料轉發動作S2這二者。
所謂感測動作S1,是指感測放大器模組212讀出記憶細胞陣列211中所記憶的資料的動作。所謂資料轉發動作S2,是指將由感測放大器模組212(更具體而言為頁面緩衝器212B)所讀出的資料經由輸入/輸出匯流排I/O而轉發至記憶體控制器10的動作。
具體說明感測動作S1。定序器217對連接於作為讀對象
的記憶細胞電晶體MT的字元線WL(選擇字元線WL)施加讀電壓,對連接於作為非對象的記憶細胞電晶體MT的字元線WL(非選擇字元線WL)施加讀通過電壓VREAD。而且,感測放大器212A感測流經位元線BL的電流。當感測放大器212A感測位元線BL中有電流流動時,定序器217判定記憶細胞電晶體MT的臨限值電壓為此時的讀電壓以下。而且,當感測放大器212A感測位元線BL中無電流流動時,定序器217判定記憶細胞電晶體MT的臨限值電壓高於此時的讀電壓。定序器217將此動作重複作為讀對象的頁面種類所需的讀位準的次數,並由頁面緩衝器212B進行邏輯運算,藉此獲得頁面資料。
圖8是表示實施形態的記憶體系統1的讀動作的命令集的圖。如圖8所示,記憶體晶片210在從記憶體控制器10收到對以「Add」所指定的物理位址處的頁面種類進行指定的「PSC(頁面選擇命令(Page Select Command))」、指示感測動作的「00H」、指定行位址及列位址的「Add」、及指示資料的感測開始的「30H」時,開始感測動作S1。該些命令及位址的集亦稱作讀命令集。
記憶體晶片210在開始感測動作S1時轉變為忙碌狀態,不從記憶體控制器10受理與資料轉發動作相關的命令。因此,記憶體控制器10必須在感測動作結束而記憶體晶片210轉變為就緒狀態後,指示資料轉發動作。如此,感測動作所造成的忙碌時間亦稱作tR時間或感測動作時間。
記憶體晶片210在結束感測動作S1時轉變為就緒狀
態。記憶體控制器10例如發佈狀態讀命令以獲取記憶體晶片210的狀態,藉此來判斷記憶體晶片210為就緒狀態。
成為就緒狀態的記憶體晶片210在從記憶體控制器10收到指示資料轉發的「05H」、指定行位址及列位址的「Add」、及指示資料轉發的開始的「50H」時,開始資料轉發動作S2。該些命令及位址的集亦稱作資料轉發命令集。
如上所述,感測動作所造成的忙碌時間(tR時間),即,資料的感測動作所需的動作時間根據寫方式等的讀條件而不同。此處,所謂讀條件,例如是指寫方式的種類、頁面種類、表示作為讀動作對象的字元線的列位址、字元線群組、及記憶體晶片210的位址中的至少任一種。
作為寫方式的具體例,有SLC方式、MLC方式、TLC方式及四層細胞(Quadruple-Level Cell,QLC)方式等。所謂QLC方式,是指使一個記憶細胞電晶體MT記憶四位元資料的方式,有下頁面、中頁面、上頁面及頂頁面。
所謂頁面種類,在MLC方式的情況下是指下頁面及中頁面,在TLC方式的情況下是指下頁面、中頁面及上頁面,在QLC方式的情況下是指下頁面、中頁面、上頁面及頂頁面。
所謂字元線群組,是指將多個字元線作為一個群組來處理的概念。例如,將字元線WL0~字元線WL3作為字元線群組WGP1,將字元線WL4~字元線WL8作為字元線群組WGP2來進行分組。
如上所述的每個讀條件的感測動作時間的不同例如被記憶在所述的ROM熔線塊中。例如在記憶體系統1的出貨時,向ROM熔線塊進行與感測動作時間相關的資訊的保存。記憶在ROM熔線塊中的感測動作時間資訊在記憶體系統1的啟動時例如被讀出至記憶體晶片210內部的狀態暫存器215A,並從狀態暫存器215A設定至NAND控制器14內部的暫存器143。而且,在記憶體系統1的出貨時,亦可藉由初始診斷來進行每個讀條件的感測動作時間的測定。亦可將此時的感測動作時間設定至NAND控制器14的暫存器143。
每個讀條件的感測動作時間在記憶體晶片210間存在偏差,但例如藉由針對每個讀條件而採用感測動作最耗費時間的記憶體晶片210的動作時間即最長的時間,可削減ROM熔線塊、狀態暫存器215A及暫存器143的容量。
(讀動作的詳細)
接下來,使用圖9來說明讀動作的詳細。圖9是表示實施形態的記憶體系統1的讀動作的詳細的圖。
圖9所示的NAND控制器例如是在圖1中,藉由通道Ch.0而連接於一個NAND封裝21的NAND控制器14。圖9所示的晶片0~晶片2例如是在圖1中,連接於通道Ch.0的NAND封裝21所具有的記憶體晶片210(0)~記憶體晶片210(2)。
而且,設NAND控制器14的暫存器143從NAND封裝21中所含的各記憶體晶片210的例如狀態暫存器215A獲取與感
測動作時間相關的資訊並予以記憶。
如圖9所示,NAND控制器14進行如下所述的交插動作,即,在使連接於一個通道Ch.0的一個記憶體晶片210執行命令的期間,使其他的記憶體晶片210亦執行命令。藉此,記憶體系統1的性能(performance)提高。
具體而言,NAND控制器14例如對記憶體晶片210(0)發送讀命令集。記憶體晶片210(0)開始感測與經指定的物理位址對應的記憶細胞電晶體MT的經指定的頁面的資料,成為忙碌狀態。另一方面,NAND控制器14基於讀命令集中所含的對頁面種類進行指定的「PSC」,對定時器140~定時器142的任一個設定所指定的頁面種類中的最長的感測動作時間。此處,設為NAND控制器14對定時器140設定感測動作時間。定時器140執行感測動作時間的測定,直至所設定的感測動作時間到期為止。
NAND控制器14在讀命令集向記憶體晶片210(0)的發送結束時,例如對記憶體晶片210(1)發送讀命令集。記憶體晶片210(1)開始感測與經指定的物理位址對應的記憶細胞電晶體MT的經指定的頁面的資料,成為忙碌狀態。另一方面,NAND控制器14基於讀命令集中所含的對頁面種類進行指定的「PSC」,對除了使用中的定時器140以外的定時器141、定時器142的任一個設定所指定的頁面種類中的最長的感測動作時間。此處,設為NAND控制器14對定時器141設定感測動作時間。定時器141執行感測動作時間的測定,直至所設定的感測動作時間到期為止。
NAND控制器14在讀命令集向記憶體晶片210(1)的發送結束時,對記憶體晶片210(2)發送讀命令集。記憶體晶片210(2)開始感測與經指定的物理位址對應的記憶細胞電晶體MT的經指定的頁面的資料,成為忙碌狀態。另一方面,NAND控制器14基於讀命令集中所含的對頁面種類進行指定的「PSC」,對未被使用的定時器142設定所指定的頁面種類中的最長的感測動作時間。定時器142執行感測動作時間的測定,直至所設定的感測動作時間到期為止。
NAND控制器14在與一次交插動作中可發佈的命令數(3)對應的數量的記憶體晶片210(0)~記憶體晶片210(2)全部成為忙碌狀態時,開始對記憶體晶片210(0)~記憶體晶片210(2)的狀態進行監測的狀態輪詢。在狀態輪詢中,NAND控制器14依序對記憶體晶片210(0)~記憶體晶片210(2)發佈狀態讀命令。收到狀態讀命令的記憶體晶片210(0)~記憶體晶片210(2)的定序器217將記憶體晶片210(0)~記憶體晶片210(2)的狀態資訊保存至狀態暫存器215A,並將其轉發至輸入/輸出電路214。藉此,NAND控制器14可獲取記憶體晶片210(0)~記憶體晶片210(2)的狀態。
NAND控制器14繼續進行狀態輪詢,直至記憶體晶片210(0)~記憶體晶片210(2)的任一個成為就緒狀態為止,或者直至對定時器140~定時器142所設定的感測動作時間到期為止。圖9的示例中,在對定時器140~定時器142的任一個設定的
感測動作時間到期之前,記憶體晶片210(0)成為就緒狀態。NAND控制器14根據所獲取的記憶體晶片210(0)的狀態資訊而判斷為記憶體晶片210(0)已成為就緒狀態。
NAND控制器14在判斷為記憶體晶片210(0)已成為就緒狀態時,對記憶體晶片210(0)發送資料轉發命令集。記憶體晶片210(0)執行依據剛才的讀命令集所感測的資料向NAND控制器14的轉發。
此處,圖9的示例中,在來自記憶體晶片210(0)的資料被轉發至NAND控制器14的期間,記憶體晶片210(1)的感測動作結束。而且,隨後不久,對記憶體晶片210(1)的感測動作時間進行測定的定時器141的設定時間到期。
而且,同樣,圖9的示例中,在來自記憶體晶片210(0)的資料被轉發至NAND控制器14的期間,繼記憶體晶片210(1)之後,記憶體晶片210(2)的感測動作結束。而且,在從記憶體晶片210(0)向NAND控制器14的資料轉發結束後不久,對記憶體晶片210(2)的感測動作時間進行測定的定時器142的設定時間到期。
NAND控制器14在來自記憶體晶片210(0)的資料轉發完成時,由於對定時器141所設定的感測動作時間已到期,因而判斷為記憶體晶片210(1)的感測動作結束,記憶體晶片210(1)成為就緒狀態。NAND控制器14並不進行基於狀態讀命令的狀態確認,而是對記憶體晶片210(1)發送資料轉發命令集。記
憶體晶片210(1)執行依據剛才的讀命令集所感測的資料向NAND控制器14的轉發。
NAND控制器14在來自記憶體晶片210(1)的資料轉發完成時,由於對定時器142所設定的感測動作時間已到期,因此判斷為記憶體晶片210(2)的感測動作結束,記憶體晶片210(2)成為就緒狀態。NAND控制器14不進行基於狀態讀命令的狀態確認,而是對記憶體晶片210(2)發送資料轉發命令集。記憶體晶片210(2)執行依據剛才的讀命令集所感測的資料向NAND控制器14的轉發。
藉由以上,實施形態的記憶體系統1的讀動作結束。
(記憶體系統的讀處理的示例)
接下來,使用圖10來說明與實施形態的記憶體系統1的讀動作相關的處理的示例。圖10是表示與實施形態的記憶體系統1的讀動作相關的處理流程的一例的流程圖。
如圖10所示,記憶體系統1的NAND控制器14對與自身連接的NAND封裝21的記憶體晶片210(0)~記憶體晶片210(2)的任一個發送讀命令集(步驟S101)。而且,NAND控制器14基於自身所發送的讀命令集中所含的頁面種類的指定,對定時器140~定時器142的任一個設定所指定的頁面種類中的最長的感測動作時間(步驟S102)。
NAND控制器14判定是否亦存在其他的作為讀命令集發佈對象的記憶體晶片210(步驟S103)。若亦存在其他的作為命
令發佈對象的記憶體晶片210(步驟S103:是),則重複步驟S101以後的處理。
若不存在作為命令發佈對象的記憶體晶片210(步驟S103:否),則NAND控制器14參照定時器140~定時器142的測定時間來判定是否存在感測動作時間已到期的記憶體晶片210(步驟S104)。
若不存在感測動作時間已到期的記憶體晶片210(步驟S104:否),則NAND控制器14對記憶體晶片210(0)~記憶體晶片210(2)依序進行狀態輪詢(步驟S105),判定是否存在就緒狀態的記憶體晶片210(步驟S106)。若不存在就緒狀態的記憶體晶片210(步驟S106:否),則NAND控制器14重複步驟S104以後的處理。
若存在感測動作時間已到期的記憶體晶片210(步驟S104:是),或者,若存在就緒狀態的記憶體晶片210(步驟S106:是),則NAND控制器14向該記憶體晶片210發送資料轉發命令集(步驟S107)。
NAND控制器14判定是否亦存在其他的作為資料轉發命令集發佈對象的記憶體晶片210(步驟S108)。若亦存在其他的作為命令發佈對象的記憶體晶片210(步驟S108:是),則重複步驟S103以後的處理。
若不存在作為命令發佈對象的記憶體晶片210(步驟S108:否),則NAND控制器14結束處理。
藉由以上,與實施形態的記憶體系統1的讀動作相關的處理結束。
(比較例)
接下來,使用圖11來說明比較例的記憶體系統的讀動作。圖11是表示比較例的記憶體系統的讀動作的詳細的圖。比較例的記憶體系統中,僅依靠狀態讀命令來判斷各記憶體晶片(0)~(2)的狀態。
如圖11所示,在比較例的記憶體系統中,NAND控制器依序對記憶體晶片(0)~記憶體晶片(2)發佈了讀命令集後,進行狀態輪詢,等待任一記憶體晶片(0)~記憶體晶片(2)成為就緒狀態。隨後,在NAND控制器從已成為就緒狀態的記憶體晶片(0)受理資料轉發的期間,記憶體晶片(1)、記憶體晶片(2)的感測動作依序結束。然而,在比較例的記憶體系統中,NAND控制器為了獲知記憶體晶片(1)、記憶體晶片(2)的狀態,必須進行狀態輪詢以獲取記憶體晶片(1)、記憶體晶片(2)的狀態。
NAND控制器在來自記憶體晶片(0)的資料轉發結束後,藉由狀態輪詢來獲知記憶體晶片(1)為就緒狀態,受理來自記憶體晶片(1)的資料轉發。進而,NAND控制器在來自記憶體晶片(1)的資料轉發結束後,藉由狀態輪詢來獲知記憶體晶片(2)為就緒狀態,受理來自記憶體晶片(2)的資料轉發。
此處,因來自記憶體晶片(0)的資料轉發結束後的對記憶體晶片(1)的狀態輪詢(狀態讀命令的發佈)、及對記憶體
晶片(2)的狀態輪詢(狀態讀命令的發佈),比較例的記憶體系統的讀動作產生了延遲。如上所述的記憶體晶片的狀態確認所需的時間成為記憶體系統的性能下降的一個原因。
根據實施形態的記憶體系統1,在多個記憶體晶片210(0)~210(2)的任一者的感測動作的動作時間已到期時,記憶體控制器10並不進行動作時間已到期的記憶體晶片210的狀態確認,而是指示該記憶體晶片210進行資料轉發動作。藉此,可抑制因狀態輪詢造成的讀動作的延遲。
根據實施形態的記憶體系統1,基於寫方式的種類及頁面種類等的讀條件來對定時器140~定時器142的任一個設定感測動作的動作時間。藉此,記憶體控制器10可獲知多個記憶體晶片210(0)~210(2)的任一者的感測動作的動作時間是否已到期。因此,無須進行記憶體晶片210的狀態確認,便可判斷為動作時間已到期的記憶體晶片210處於就緒狀態。
根據實施形態的記憶體系統1,寫方式的種類及頁面種類等的讀條件包含在記憶體控制器10所發佈的讀命令集中。藉此,記憶體控制器10可基於讀條件來對定時器140~定時器142的任一個設定感測動作的動作時間。
根據實施形態的記憶體系統1,記憶體控制器10對定時器140~定時器142的任一個設定每個讀條件的動作時間中的最長的動作時間。即,NAND控制器14的暫存器143、記憶體晶片210的狀態暫存器215A、及記憶體晶片210的ROM熔線塊等不
需要全部記憶例如在記憶體晶片210(0)~記憶體晶片210(2)間存在偏差的動作時間,可有效地活用記憶體系統1中的資源。而且,即使在記憶體晶片210(0)~記憶體晶片210(2)間動作時間存在偏差的情況下,亦可在適當的時機發送資料轉發命令集。
(變形例)
接下來,使用圖12及圖13來說明實施形態的變形例的讀動作。
記憶體系統中,有時會發生忙碌堆疊這一不良,即,在感測動作中,記憶體晶片的狀態一直被固定為忙碌。變形例中,對發生忙碌堆疊時的記憶體系統的讀動作進行說明。以下的說明中,亦與所述實施形態同樣,取記憶體系統1為例。
圖12是表示在實施形態的變形例的讀動作中發生忙碌堆疊時的圖。
如圖12所示,NAND控制器14依序對記憶體晶片210(0)、記憶體晶片210(1)等發佈讀命令集,對定時器140、定時器141分別設定感測動作時間後,在記憶體晶片210(1)中發生了忙碌堆疊。
此種情況下,藉由NAND控制器14例如作為記憶體晶片210(1)用而對定時器141設定的感測動作時間經過了規定時間亦到期。圖12的示例中,定時器141的感測動作時間在NAND控制器14從記憶體晶片210(0)受理資料轉發的期間到期。
因此,NAND控制器14在來自記憶體晶片210(0)的
資料轉發結束後,對記憶體晶片210(1)發佈資料轉發命令集。但是,記憶體晶片210(1)並非處於受理該資料轉發命令集的狀態,從記憶體晶片210(1)向NAND控制器14並未轉發有意義的資料。
NAND控制器14所包括的ECC部144是進行從記憶體晶片210轉發的資料的錯誤訂正的構成元件。此時,ECC部144判定為來自記憶體晶片210(1)的資料無法訂正。
NAND控制器14在ECC部144判定為無法進行資料訂正時,對記憶體晶片210(1)發佈狀態讀命令,確認記憶體晶片210(1)的狀態。若記憶體晶片210(1)為忙碌狀態,則NAND控制器14判斷為記憶體晶片210(1)發生了忙碌堆疊,對記憶體晶片210(1)發佈重設命令以對記憶體晶片210(1)進行重設。
圖13是表示在實施形態的變形例的讀動作中發生了忙碌堆疊時的處理流程的一例的流程圖。忙碌堆疊例如可能在所述實施形態的圖10的流程中的步驟S107的處理後發生。
NAND控制器14對感測動作時間已到期的記憶體晶片210發送了資料轉發命令集後(步驟S107),如圖13所示,確認ECC部144是否判定為無法訂正(步驟S201)。若ECC部144未判定為無法訂正(步驟S201:否),則NAND控制器14返回通常的流程,繼續對其他記憶體晶片210的處理(步驟S108)。
若ECC部144判定為無法訂正(步驟S201:是),則NAND控制器14對被判定為無法訂正的資料的轉發源即記憶體晶
片210發佈狀態讀命令(步驟S202)。NAND控制器14從記憶體晶片210獲取狀態以判斷記憶體晶片210是否為忙碌狀態(步驟S203)。
若記憶體晶片210為忙碌狀態(步驟S203:是),則NAND控制器14判斷為記憶體晶片210發生了忙碌堆疊,進行超時(time out)處理。即,NAND控制器14對記憶體晶片210發佈重設命令(步驟S204),結束對該記憶體晶片210的處理。隨後,NAND控制器14繼續對其他記憶體晶片210的處理(步驟S108)。
若記憶體晶片210為就緒狀態(步驟S203:否),則NAND控制器14判斷為記憶體晶片210未發生忙碌堆疊,對記憶體晶片210發佈重試讀命令(步驟S205)。重試讀命令是使記憶體晶片210再次執行ECC部144判定為無法訂正的資料的讀的命令。隨後,NAND控制器14重複步驟S201以後的處理。
例如,在比較例的記憶體系統中,即使在記憶體晶片發生了忙碌堆疊的情況下,直至進行超時判定仍需要長時間。
根據變形例的讀動作,並不進行動作時間已到期的記憶體晶片210的狀態確認,而指示該記憶體晶片210進行資料轉發動作。藉此,在記憶體晶片210發生了忙碌堆疊的情況下,藉由在資料的錯誤訂正處理中變為無法訂正,從而可快速進行超時判定。
根據變形例的讀動作,在資料的錯誤訂正處理中產生了無法訂正的錯誤時,進行作為資料轉發源的記憶體晶片210的狀
態確認。藉此,在記憶體晶片210為就緒狀態等、並非因忙碌堆疊的發生造成的錯誤的情況下,可使記憶體晶片210再次執行讀動作。
[其他實施形態]
所述的實施形態等中,對並列動作元件為記憶體晶片210(0)~記憶體晶片210(2)的情況進行了說明,但並列動作元件並不限於記憶體晶片210(0)~記憶體晶片210(2)。例如,有時在一個記憶體晶片內包含多個平面(plane),所述多個平面分別具有記憶細胞陣列與感測放大器模組及列解碼器模組等周邊電路。多個平面可各自進行並列處理,此種情況下,各個平面相當於並列動作元件。此外,可將可實現並列處理的各個結構規定為並列動作元件。
對本發明的若干實施形態進行了說明,但該些實施形態是作為一例而表示,並不意圖限定發明的範圍。該些新穎的實施形態能以其他的各種形態來實施,在不脫離發明主旨的範圍內可進行各種省略、替換、變更。該些實施形態或其變形包含在發明的範圍或主旨內,並且包含在申請專利範圍所記載的發明及其均等的範圍內。
1:記憶體系統
2:主機
10:記憶體控制器
11:CPU
12:主機I/F控制器
13:RAM
14:NAND控制器
15:DRAM I/F控制器
20:NAND型快閃記憶體(NAND記憶體)
21:NAND封裝
30:DRAM
140~142:定時器
143:暫存器
144:ECC部
145:NAND介面(NAND I/F)
210(0)~210(2):記憶體晶片
Ch.0~Ch.3:通道
Claims (10)
- 一種記憶體系統,包括:非揮發性記憶體,具有分別包含記憶細胞的多個並列動作元件;以及記憶體控制器,控制所述多個並列動作元件,在所述多個並列動作元件的各個所含的所述記憶細胞所保持的資料藉由感測動作從所述記憶細胞被讀出,藉由資料轉發動作從所述並列動作元件轉發至所述記憶體控制器,所述記憶體控制器在從所述非揮發性記憶體讀資料時,對所述多個並列動作元件中的第一並列動作元件指示所述感測動作,開始對所述第一並列動作元件指示所述感測動作起的經過時間的測定,對所述多個並列動作元件中的所述第一並列動作元件以外的並列動作元件依序指示所述感測動作,對所述多個並列動作元件中的所述第一並列動作元件以外的並列動作元件指示所述感測動作結束後,當所述經過時間超過所述第一並列動作元件的所述感測動作的動作時間的情形下,不確認所述第一並列動作元件的狀態,對所述第一並列動作元件指示所述資料轉發動作。
- 如請求項1所述的記憶體系統,其中,所述多個並列動作元件經由一個通道而連接於所述記憶體控制器。
- 如請求項1所述的記憶體系統,其中, 所述記憶體控制器對所述多個並列動作元件中的所述第一並列動作元件以外的並列動作元件指示所述感測動作結束後,當所述經過時間未超過所述第一並列動作元件的所述感測動作的動作時間的情形下,確認所述第一並列動作元件的狀態,當所述狀態表示所述第一並列動作元件的所述感測動作已完成的情形下,對所述第一並列動作元件指示所述資料轉發動作。
- 如請求項3所述的記憶體系統,其中,所述記憶體控制器基於讀條件來對所述定時器設定所述動作時間。
- 如請求項3所述的記憶體系統,其中,所述記憶體控制器對所述多個並列動作元件發佈指示所述感測動作的讀命令集,基於所述讀命令集的讀條件來對所述定時器設定所述動作時間。
- 如請求項5所述的記憶體系統,其中,所述記憶體控制器對於所述多個並列動作元件分別管理每個所述讀條件的動作時間,對所述定時器設定與被發佈所述讀命令集的所述多個並列動作元件的所述讀條件對應的動作時間中的最長的動作時間。
- 如請求項4至請求項6中任一項所述的記憶體系統,其中,所述讀條件包含寫方式的種類及頁面種類的至少任一者。
- 如請求項1至請求項6中任一項所述的記憶體系 統,其中,所述記憶體控制器對藉由所述轉發動作而轉發的資料進行錯誤訂正處理,若產生了在所述錯誤訂正處理中無法訂正的錯誤,則進行所述多個並列動作元件中的作為所述資料的轉發源的並列動作元件的狀態確認,若作為所述資料的轉發源的並列動作元件的狀態為忙碌,則對作為所述資料的轉發源的並列動作元件發佈重設命令。
- 如請求項1至請求項6中任一項所述的記憶體系統,其中,所述並列動作元件為記憶體晶片。
- 一種控制方法,在具有分別包含記憶細胞的多個並列動作元件的非揮發性記憶體中,藉由記憶體控制器控制所述多個並列動作元件,其中,在所述多個並列動作元件的各個所含的所述記憶細胞所保持的資料藉由感測動作從所述記憶細胞被讀出,藉由資料轉發動作從所述並列動作元件轉發至所述記憶體控制器,在從所述非揮發性記憶體讀資料時,對所述多個並列動作元件中的第一並列動作元件指示所述感測動作,開始對所述第一並列動作元件指示所述感測動作起的經過時間的測定,對所述多個並列動作元件中的所述第一並列動作元件以外的並列動作元件依序指示所述感測動作,對所述多個並列動作元件中的所述第一並列動作元件以外的 並列動作元件指示所述感測動作結束後,當所述經過時間超過所述第一並列動作元件的所述感測動作的動作時間的情形下,不確認所述第一並列動作元件的狀態,對所述第一並列動作元件指示所述資料轉發動作。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019-191644 | 2019-10-21 | ||
JP2019191644A JP7458740B2 (ja) | 2019-10-21 | 2019-10-21 | メモリシステム及び制御方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202117731A TW202117731A (zh) | 2021-05-01 |
TWI756692B true TWI756692B (zh) | 2022-03-01 |
Family
ID=75491156
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW109117415A TWI756692B (zh) | 2019-10-21 | 2020-05-26 | 記憶體系統以及控制方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11366761B2 (zh) |
JP (1) | JP7458740B2 (zh) |
CN (1) | CN112767988B (zh) |
TW (1) | TWI756692B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20220415380A1 (en) * | 2021-06-24 | 2022-12-29 | Intel Corporation | Independent multi-page read operation enhancement technology |
US11972144B2 (en) * | 2021-08-11 | 2024-04-30 | Micron Technology, Inc. | Dynamic status registers array |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10032502B1 (en) * | 2008-06-06 | 2018-07-24 | Uniquify IP Company, LLC | Method for calibrating capturing read data in a read data path for a DDR memory interface circuit |
US20190212918A1 (en) * | 2014-01-07 | 2019-07-11 | Rambus Inc. | Near-memory compute module |
Family Cites Families (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0452940A (ja) * | 1990-06-20 | 1992-02-20 | Matsushita Graphic Commun Syst Inc | メモリユニットのリード・ライト装置 |
JPH04247541A (ja) * | 1991-02-04 | 1992-09-03 | Canon Inc | 電子機器 |
JPH07311708A (ja) * | 1994-05-18 | 1995-11-28 | Fuji Film Micro Device Kk | メモリカード |
US6980314B1 (en) | 2000-04-03 | 2005-12-27 | Hewlett-Packard Development Company, L.P. | Method and device for improving utilization of a bus |
KR101397229B1 (ko) | 2006-08-22 | 2014-05-20 | 컨버전트 인텔렉츄얼 프로퍼티 매니지먼트 인코포레이티드 | 메모리 시스템 및 메모리를 위한 모듈러 커맨드 스트럭처 |
JP2008117492A (ja) * | 2006-11-07 | 2008-05-22 | Renesas Technology Corp | 半導体装置 |
JP4970078B2 (ja) | 2007-02-21 | 2012-07-04 | 株式会社東芝 | 不揮発性メモリシステム |
US8438356B2 (en) | 2007-10-01 | 2013-05-07 | Marvell World Trade Ltd. | Flash memory controller |
KR101468149B1 (ko) * | 2008-09-19 | 2014-12-03 | 삼성전자주식회사 | 플래시 메모리 장치 및 시스템들 그리고 그것의 읽기 방법 |
US8397024B2 (en) * | 2008-10-25 | 2013-03-12 | Sandisk 3D Llc | Page buffer program command and methods to reprogram pages without re-inputting data to a memory device |
JP2009205798A (ja) * | 2009-06-18 | 2009-09-10 | Renesas Technology Corp | 半導体記憶装置 |
US8570790B2 (en) * | 2011-01-13 | 2013-10-29 | Cypress Semiconductor Corporation | Memory devices and methods for high random transaction rate |
KR20120126434A (ko) * | 2011-05-11 | 2012-11-21 | 에스케이하이닉스 주식회사 | 비휘발성 메모리 장치 및 센싱 방법 |
JP2013030251A (ja) * | 2011-07-28 | 2013-02-07 | Toshiba Corp | メモリシステム |
JP5447617B2 (ja) | 2012-08-22 | 2014-03-19 | Tdk株式会社 | フラッシュメモリコントローラ、フラッシュメモリシステム、及びフラッシュメモリ制御方法 |
CN103996409B (zh) * | 2013-02-16 | 2016-12-28 | 旺宏电子股份有限公司 | 用于改善存储器读取速率的存储器装置及方法 |
CN104979000A (zh) * | 2014-04-09 | 2015-10-14 | 力旺电子股份有限公司 | 感测装置及其数据感测方法 |
US9734098B2 (en) * | 2015-03-31 | 2017-08-15 | Sandisk Technologies Llc | Memory bus management |
JP6627346B2 (ja) | 2015-09-09 | 2020-01-08 | ソニー株式会社 | メモリコントローラ、記憶装置、情報処理システムおよびメモリ制御方法 |
JP2017224370A (ja) * | 2016-06-15 | 2017-12-21 | 東芝メモリ株式会社 | 半導体記憶装置及びメモリシステム |
JP6753746B2 (ja) * | 2016-09-15 | 2020-09-09 | キオクシア株式会社 | 半導体記憶装置 |
US10877696B2 (en) | 2019-03-28 | 2020-12-29 | Intel Corporation | Independent NAND memory operations by plane |
-
2019
- 2019-10-21 JP JP2019191644A patent/JP7458740B2/ja active Active
-
2020
- 2020-05-26 TW TW109117415A patent/TWI756692B/zh active
- 2020-06-19 CN CN202010567666.0A patent/CN112767988B/zh active Active
- 2020-09-02 US US17/009,940 patent/US11366761B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10032502B1 (en) * | 2008-06-06 | 2018-07-24 | Uniquify IP Company, LLC | Method for calibrating capturing read data in a read data path for a DDR memory interface circuit |
US20190212918A1 (en) * | 2014-01-07 | 2019-07-11 | Rambus Inc. | Near-memory compute module |
Also Published As
Publication number | Publication date |
---|---|
US20210117335A1 (en) | 2021-04-22 |
CN112767988A (zh) | 2021-05-07 |
US11366761B2 (en) | 2022-06-21 |
TW202117731A (zh) | 2021-05-01 |
JP7458740B2 (ja) | 2024-04-01 |
CN112767988B (zh) | 2024-06-11 |
JP2021068072A (ja) | 2021-04-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9239758B2 (en) | Semiconductor storage device, method for controlling the same and control program | |
US7936601B2 (en) | Non-volatile memory devices and systems including multi-level cells using modified read voltages and methods of operating the same | |
CN106251903B (zh) | 存储系统及其操作方法 | |
JP5378574B1 (ja) | 半導体記憶装置 | |
KR101925384B1 (ko) | 불휘발성 메모리를 포함하는 메모리 시스템 및 불휘발성 메모리의 제어 방법 | |
TWI602187B (zh) | Semiconductor memory devices and memory systems | |
JP6164712B1 (ja) | フラッシュメモリ | |
US11514997B2 (en) | Controller, a storage device including the controller, and a reading method of the storage device | |
KR102663261B1 (ko) | 반도체 메모리 장치 및 그것의 동작 방법 | |
JP2019169211A (ja) | メモリシステム | |
JP6652472B2 (ja) | メモリシステムおよび制御方法 | |
US11908535B2 (en) | Memory device and memory controller and storage device including the memory device and memory controller | |
TWI756692B (zh) | 記憶體系統以及控制方法 | |
US9146824B1 (en) | Management of bit line errors based on a stored set of data | |
JP2020047353A (ja) | メモリシステム | |
US20150194220A1 (en) | Semiconductor device and memory system including the same | |
TW202326441A (zh) | 記憶體系統及半導體記憶裝置 | |
CN113555052B (zh) | 半导体存储装置 | |
KR20170028152A (ko) | 메모리 시스템 및 그 동작 방법 | |
US11372592B1 (en) | Memory controller having a plurality of control modules and associated server for coding and decoding raw data from flash memory chips | |
KR20170043296A (ko) | 보증 블록들을 포함하는 반도체 메모리 장치 및 그것의 동작 방법 | |
JP2023141376A (ja) | メモリシステム及び不揮発性メモリ | |
CN118260156A (zh) | 存储器装置中的多层级健康状态 | |
JP2015170381A (ja) | 半導体記憶装置 |