TW202338802A - 記憶體系統 - Google Patents
記憶體系統 Download PDFInfo
- Publication number
- TW202338802A TW202338802A TW111119571A TW111119571A TW202338802A TW 202338802 A TW202338802 A TW 202338802A TW 111119571 A TW111119571 A TW 111119571A TW 111119571 A TW111119571 A TW 111119571A TW 202338802 A TW202338802 A TW 202338802A
- Authority
- TW
- Taiwan
- Prior art keywords
- data
- memory
- order
- memory controller
- buffer
- Prior art date
Links
- 238000000034 method Methods 0.000 title description 14
- 239000000872 buffer Substances 0.000 claims description 51
- 238000012546 transfer Methods 0.000 claims description 8
- 230000004044 response Effects 0.000 abstract description 2
- 238000012545 processing Methods 0.000 description 76
- 238000010586 diagram Methods 0.000 description 28
- 238000013519 translation Methods 0.000 description 18
- 230000009471 action Effects 0.000 description 17
- 238000012937 correction Methods 0.000 description 16
- 230000006870 function Effects 0.000 description 7
- 208000003580 polydactyly Diseases 0.000 description 6
- 238000009826 distribution Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 238000013518 transcription Methods 0.000 description 3
- 230000035897 transcription Effects 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- -1 Metal Oxide Nitride Chemical class 0.000 description 1
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 1
- 238000009825 accumulation Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 229910044991 metal oxide Inorganic materials 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- 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
-
- 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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- 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/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- 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/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- 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/0656—Data buffering 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/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
- 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
- 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/3034—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a storage system, e.g. DASD based or network based
-
- 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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3409—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/88—Monitoring involving counting
-
- 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/0604—Improving or facilitating administration, e.g. storage management
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Iron Core Of Rotating Electric Machines (AREA)
- Soundproofing, Sound Blocking, And Sound Damping (AREA)
- Vehicle Body Suspensions (AREA)
Abstract
一實施方式提供一種讀取性能高的記憶體系統。記憶體控制器根據第一順序將包含用戶資料及元資料的多個第一資料區段寫入第一記憶體所包括的多個第一區段區域中。記憶體控制器根據來自主機的讀取請求來確定寫入了與用戶資料相符的多個第二資料區段的多個第二區段區域的各區域。記憶體控制器基於第二順序及第三順序來判定是否執行預取,所述第二順序是自多個第二區段區域的各區域讀取多個第二資料區段的順序,所述第三順序是自第一順序跳過元資料的寫入目的地的順序而得。
Description
本申請案享有以日本專利申請案2022-042726號(申請日:2022年3月17日)為基礎申請案的優先權。本申請案藉由參照該基礎申請案而包含基礎申請案的全部內容。
本實施方式是有關於一種記憶體系統。
先前,已知有包括非揮發性記憶體的記憶體系統。非揮發性記憶體於一例中為反及(NAND)型快閃記憶體。
一實施方式的目的在於提供一種讀取性能高的記憶體系統。
根據一實施方式,記憶體系統能夠與主機連接。記憶體系統包括第一記憶體及記憶體控制器。第一記憶體包括包含多個第一區段區域的非揮發性的儲存區域。記憶體控制器按照第一設定,將分別包含用戶資料或元資料的多個第一資料區段寫入多個第一區段區域中。第一設定規定了多個第一區段區域中的寫入目的地的選擇順序即第一順序、以及多個第一區段區域中的用戶資料及元資料的各自的寫入目的地。記憶體控制器根據來自主機的讀取請求,確定寫入多個第二資料區段的多個第二區段區域的各區域,所述多個第二資料區段與多個第一區段區域中的、多個第一資料區段中的由讀取請求所請求的用戶資料相符。記憶體控制器基於第二順序及第三順序來判定於對多個第二區段區域的讀取動作中是否執行預取,所述第二順序是自多個第二區段區域的各區域讀取多個第二資料區段的順序,所述第三順序是自第一順序跳過元資料的寫入目的地的順序而得。
以下參照隨附圖式來對實施方式的記憶體系統進行詳細的說明。再者,本發明並不由該些實施方式限定。
(第一實施方式)
圖1是表示第一實施方式的記憶體系統的硬體結構的一例的示意圖。
記憶體系統1構成為能夠與主機2連接。記憶體系統1與主機2之間的連接的標準並不限定於特定的標準。主機2例如是個人電腦、可攜式資訊終端或伺服器等。
主機2於對記憶體系統1進行存取時,向記憶體系統1發送存取請求。存取請求是寫入請求或讀取請求等。存取請求伴隨著邏輯位址及大小(size)資訊。邏輯位址是表示記憶體系統1向主機2提供的邏輯位址空間內的位置的資訊。即,主機2於對記憶體系統1進行存取時,於存取目的地的指定中使用邏輯位址。邏輯位址的一例是邏輯區塊位址(Logical Block Address,LBA)。存取請求中所含的大小資訊表示以由邏輯位址指定的位置為開頭的邏輯位址空間上的連續的範圍。即,主機2於各存取請求中藉由邏輯位址與大小資訊來指定邏輯位址空間上的存取範圍。
主機2將請求寫入的資料發送至記憶體系統1。將此種自主機2發送至記憶體系統1的資料表述為用戶資料。
記憶體系統1包括記憶體控制器10及非揮發性記憶體20。
非揮發性記憶體20是作為儲存器(storage)發揮功能的非揮發性的記憶體。非揮發性記憶體20的一例是NAND型快閃記憶體。以下,將非揮發性記憶體20表述為NAND記憶體20。NAND記憶體20是第一記憶體的一例。作為第一記憶體,可採用任意種類的記憶體。
記憶體控制器10執行記憶體系統1的控制。該控制包含和主機2與NAND記憶體20之間的資料傳送有關的控制。記憶體控制器10例如可構成為單晶片系統(system-on-a-chip,SoC)。記憶體控制器10中,作為用於記憶體系統1的控制的結構,包括中央處理單元(Central Processing Unit,CPU)11、主機接口(I/F)控制器12、隨機存取記憶體(Random Access Memory,RAM)13、NAND控制器14、以及錯誤糾正電路15。
CPU 11基於韌體(firmware)程式來執行記憶體控制器10的控制。韌體程式例如預先保存於NAND記憶體20中,並於記憶體系統1的啟動時自NAND記憶體20加載至RAM 13中。CPU 11執行RAM 13內的韌體程式。再者,韌體程式的保存位置並不限定於NAND記憶體20。記憶體控制器10的各部的功能可藉由專用硬體、執行韌體程式的CPU 11或該些的組合來實現。
RAM 13是能夠進行高速動作的揮發性的記憶體。構成RAM 13的記憶體的種類並不限定於特定的種類。例如,RAM 13可包括動態隨機存取記憶體(Dynamic Random Access Memory,DRAM)、靜態隨機存取記憶(Static Random Access Memory,SRAM)或該些的組合。構成RAM 13的記憶體的一部分或全部可構成為與記憶體控制器10不同的晶片。
主機I/F控制器12執行與主機2之間的通訊接口的控制。NAND控制器14於基於CPU 11的控制下,執行對NAND記憶體20的存取。CPU 11藉由對主機I/F控制器12及NAND控制器14進行控制來實現主機2與NAND記憶體20之間的資料傳送。
錯誤糾正電路15對要寫進NAND記憶體20中的資料進行用於錯誤糾正的符號化。錯誤糾正電路15藉由對自NAND記憶體20輸出的經符號化的資料進行解碼,從而對該資料執行錯誤糾正。作為利用錯誤糾正電路15進行的符號化的算法,能夠採用任意的算法。於一例中,錯誤糾正電路15進行使用了RS符號(瑞德-所羅門編碼(Reed-Solomon Coding))的符號化。錯誤糾正電路15可具有符號化用電路及解碼用電路。
NAND記憶體20包括一個以上的記憶體晶片21。一個以上的記憶體晶片21經由一個以上的通道連接於記憶體控制器10。於圖1所示的例子中,NAND記憶體20包括記憶體晶片21-0、記憶體晶片21-1、記憶體晶片21-2、記憶體晶片21-3。記憶體晶片21-0、記憶體晶片21-1經由通道ch.0連接於記憶體控制器10。記憶體晶片21-2、記憶體晶片21-3經由通道ch.1連接於記憶體控制器10。連接於通道ch.0的兩個記憶體晶片21-0、21-1以及連接於通道ch.1的兩個記憶體晶片21-2、21-3能夠相互獨立地運作。再者,構成NAND記憶體20的記憶體晶片21的數量、以及將NAND記憶體20與記憶體控制器10加以連接的通道的數量並不限定於該些。
圖2是表示第一實施方式的記憶體晶片21的結構的一例的示意圖。
根據圖2所示的例子,記憶體晶片21包括被分割成兩個子陣列23的記憶胞元陣列22、兩個頁緩衝器24、以及兩個資料緩存器25。頁緩衝器24及資料緩存器25例如分別包含SRAM。頁緩衝器24及資料緩存器25可包含觸發器(flip flop)。對記憶胞元陣列22的存取包括寫入(亦稱為編程)、讀取及擦除。各子陣列23與兩個頁緩衝器24中的一個以及兩個資料緩存器25中的一個一起形成一個平面。即,記憶體晶片21包括兩個平面。兩個平面能夠相互獨立地運作。各記憶體晶片21中的各平面根據平面編號標識。再者,一個記憶體晶片21所包括的平面的數量並不限定於2。一個記憶體晶片21亦可不被分割成多個平面。
於本說明書中,將記憶體晶片21接收到自記憶體控制器10輸入的資料且由記憶體晶片21將所輸入的資料寫入記憶胞元陣列22的一系列動作表述為寫入動作。於本說明書中,將記憶體晶片21自記憶胞元陣列22讀取資料並將所讀取的資料輸出至記憶體控制器10的一系列動作表述為讀取動作。
於寫入動作中,記憶體晶片21將自記憶體控制器10輸入的資料接收到資料緩存器25中。自記憶體控制器10向資料緩存器25輸入資料的動作亦被稱為資料輸入動作。於資料輸入動作之後,記憶體晶片21將接收到資料緩存器25中的資料傳送至頁緩衝器24,並於傳送完成後將資料自頁緩衝器24寫入記憶胞元陣列22中。將資料自頁緩衝器24寫入記憶胞元陣列22中的動作亦被稱為編程動作。
於讀取動作中,記憶體晶片21首先將作為讀取對象的資料自記憶胞元陣列22傳送至頁緩衝器24。自記憶胞元陣列22向頁緩衝器24傳送資料的動作亦被稱為感測動作。記憶體晶片21將藉由感測動作保存於頁緩衝器24中的作為讀取對象的資料自頁緩衝器24傳送至資料緩存器25。然後,記憶體晶片21自資料緩存器25向記憶體控制器10輸出資料。自資料緩存器25向記憶體控制器10輸出資料的動作亦被稱為資料輸出動作。
各子陣列23包括多個物理區塊26。寫入一個物理區塊26中的資料被一併擦除。
頁緩衝器24是第一緩衝器的一例。資料緩存器25是第二緩衝器的一例。
圖3是表示第一實施方式的物理區塊26的電路結構的圖。再者,各物理區塊26的結構共通。
物理區塊26例如具有4個串單元SU0~SU3。各串單元SU包括多個NAND串27。
NAND串27分別包括例如14個記憶胞元電晶體MT(MT0~MT13)以及選擇電晶體ST1、選擇電晶體ST2。記憶胞元電晶體MT包括控制閘極及電荷蓄積層,且非揮發性地保持資料。而且,14個記憶胞元電晶體MT(MT0~MT13)串聯連接於選擇電晶體ST1的源極與選擇電晶體ST2的汲極之間。再者,記憶胞元電晶體MT可為於電荷蓄積層中使用了絕緣膜的金屬-氧化物-氮化物-氧化物-矽(Metal Oxide Nitride Oxide Silicon,MONOS)型,亦可為於電荷蓄積層中使用了導電膜的浮動閘極(Floating Gate,FG)型。進而,NAND串27內的記憶胞元電晶體MT的個數並不限定於14個。
串單元SU0~串單元SU3各自的選擇電晶體ST1的閘極分別連接於選擇閘極線SGD0~選擇閘極線SGD3。相對於此,串單元SU0~串單元SU3各自的選擇電晶體ST2的閘極例如共通連接於選擇閘極線SGS。串單元SU0~串單元SU3各自的選擇電晶體ST2的閘極亦可連接於對於每個串單元SU而言不同的選擇閘極線SGD0~選擇閘極線SGD3(未圖示)。位於相同的物理區塊26內的記憶胞元電晶體MT0~記憶胞元電晶體MT13的控制閘極分別共通連接於字元線WL0~字元線WL13。
位於串單元SU內的各NAND串27的選擇電晶體ST1的汲極分別連接於不同的位元線BL(BL0~BL(L-1)),其中L為2以上的自然數)。另外,位元線BL於多個物理區塊26之間共通連接於位於各串單元SU內的一個NAND串27。進而,各選擇電晶體ST2的源極共通連接於源極線SL。
即,串單元SU是連接於不同的位元線BL且連接於相同的選擇閘極線SGD的NAND串27的集合。另外,物理區塊26是使字元線WL共通的多個串單元SU的集合。而且,記憶胞元陣列22是使位元線BL共通的多個物理區塊26的集合。
如上所述,以物理區塊26為單位執行對記憶胞元陣列22的資料的擦除。
另外,對一個串單元SU中的一個字元線WL所連接的記憶胞元電晶體MT一併進行對記憶胞元陣列22的寫入(具體而言為編程動作)、以及自記憶胞元陣列22的讀取(具體而言為感測動作)。以下,將於編程動作及感測動作時一併選擇的記憶胞元電晶體MT的群稱為「記憶胞元組MCG」。而且,將被寫入或讀取至一個記憶胞元組MCG中所含的記憶胞元電晶體MT各自中的一位元儲存區域的集體稱為「頁」。
有時構成為能夠於各記憶胞元電晶體MT中保存多位元的資料。例如,於各記憶胞元電晶體MT能夠保存n(n≧2)位元的資料的情況下,每一字元線WL(記憶胞元組MCG)的儲存容量等於n頁量的大小。此處,作為一例,對在各記憶胞元電晶體MT中保存3位元的資料的方式進行說明。根據該方式,於各字元線中保持3頁量的資料。
圖4是表示第一實施方式的資料編碼與臨限值電壓分佈的一例的圖。橫軸表示記憶胞元電晶體MT的臨限值電壓。圖4所示的8個波瓣示意性地表示臨限值電壓分佈。8個臨限值電壓分佈分別是臨限值電壓區域,亦被表述為狀態。8個狀態對應於3位元的資料值。根據本圖的例子,Er狀態對應於「111」的資料值,A狀態對應於「110」的資料值,B狀態對應於「100」的資料值,C狀態對應於「000」的資料值,D狀態對應於「010」的資料值,E狀態對應於「011」的資料值,F狀態對應於「001」的資料值,G狀態對應於「101」的資料值。將各資料值的開頭的位設為最高有效位元(Most Significant Bit,MSB)。另外,將各資料值的末尾的位設為最低有效位元(Least Significant Bit,LSB)。再者,狀態與資料值的對應關係並不限定於此。
各記憶胞元電晶體MT的臨限值電壓被控制為屬於8個狀態中的任一者。各記憶胞元電晶體MT的臨限值電壓藉由擦除而被設定為Er狀態,藉由編程動作而被設定為A狀態~G狀態中的與資料值對應的狀態。
於感測動作中,藉由臨限值電壓與若干個判定電壓的比較,可確定各記憶胞元電晶體MT的臨限值電壓所屬的狀態。然後,讀取與所確定的狀態對應的資料值。圖4中Vra、Vrb、Vrc、Vrd、Vre、Vrf及Vrg的組合是判定電壓的一例。
將一個字元線WL(記憶胞元組MCG)具有的3頁量的儲存區域中的保存LSB的資料值的儲存區域的集合表述為下頁(lower page)。將3頁量的儲存區域中的保存MSB的資料值的儲存區域的集合表述為上頁(upper page)。將3頁量的儲存區域中的保存LSB與MSB之間的資料值的儲存區域的集合表述為中頁(middle page)。將下頁、中頁及上頁的分類表述為頁類型。
能夠應用於第一實施方式中的資料編碼並不限定於所述例子。另外,保存於各記憶胞元電晶體MT中的資料的大小並不限於3位元。
各頁包含多個群集(cluster)。邏輯位址空間中的規定大小的每個區域(表述為單位區域)被賦予邏輯位址。群集是與邏輯位址空間中的單位區域對應的NAND記憶體20中的儲存區域。單位區域的大小與群集的大小可相同亦可不同。規定大小的資料區段經由利用錯誤糾正電路15進行的RS符號化等被寫入各群集中。以後,將保存於一個群集中的單位的資料稱為資料區段。群集是第一區段區域的一例。
記憶體控制器10使用物理位址來對NAND記憶體20所包括的各群集的位置進行管理。物理位址的結構例將後述。
記憶體控制器10將多個物理區塊26分組,並將所分組的多個物理區塊26視為一個邏輯區塊。
圖5是表示第一實施方式的邏輯區塊的構成方法的一例的示意圖。圖5所示的帶有陰影線的多個物理區塊26構成一個邏輯區塊。
具體而言,選自記憶體晶片21-0的平面#0的子陣列23中的區塊A及區塊B、選自記憶體晶片21-1的平面#0的子陣列23中的區塊C及區塊D、選自記憶體晶片21-0的平面#1的子陣列23中的區塊E及區塊F、選自記憶體晶片21-1的平面#1的子陣列23中的區塊G及區塊H、選自記憶體晶片21-2的平面#0的子陣列23中的區塊I及區塊J、選自記憶體晶片21-3的平面#0的子陣列23中的區塊K及區塊L、選自記憶體晶片21-2的平面#1的子陣列23中的區塊M及區塊N、與選自記憶體晶片21-3的平面#1的子陣列23中的區塊O及區塊P構成一個邏輯區塊。
記憶體晶片21-0的平面#0與記憶體晶片21-1的平面#0構成儲存體#0。記憶體晶片21-0的平面#1與記憶體晶片21-1的平面#1構成儲存體#1。記憶體晶片21-2的平面#0與記憶體晶片21-3的平面#0構成儲存體#2。記憶體晶片21-2的平面#1與記憶體晶片21-3的平面#1構成儲存體#3。
於各記憶體晶片21中,平面#0與平面#1能夠相互獨立地運作。另外,連接於通道ch.0的兩個記憶體晶片21-0、21-1與連接於通道ch.1的兩個記憶體晶片21-2、21-3能夠相互獨立地運作。因此,4個儲存體#0-#3分別能夠獨立地運作。換言之,4個儲存體#0-#3可並行運作。
於圖5所示的例子中,記憶體控制器10自各儲存體收集4個物理區塊26,並由自4個儲存體聚集的合計16個物理區塊26構成一個邏輯區塊。記憶體控制器10利用此種方法依次構成邏輯區塊。
再者,圖5所示的儲存體的結構及邏輯區塊的構成方法僅為一例。各儲存體可任意地設定。另外,邏輯區塊可任意地設定。
如上所述,使用物理位址來管理各群集的位置。
圖6是表示第一實施方式的物理位址的結構的一例的示意圖。
於圖6所示的例子中,物理位址的位元串的最高位的多個位表示作為用於確定邏輯區塊的資訊的邏輯區塊編號。
表示邏輯區塊編號的多位之後的多位表示頁編號。再者,頁編號是字元線編號與串單元編號的組合。
表示頁編號的多位之後的多位表示邏輯區塊內位置資訊。邏輯區塊內位置資訊是通道編號、平面編號、子陣列23內的物理區塊26的位置、以及頁類型的組合。
表示邏輯區塊內位置資訊的多位之後的多位表示群集編號。群集編號表示以頁的開頭為基準的群集的相對位置。
藉由如上所述般構成物理位址,能夠根據物理位址確定物理位址所表示的群集所屬的記憶體晶片21、平面、字元線WL、串單元SU、頁類型、以及頁內的群集的位置。即,物理位址構成為能夠確定NAND記憶體20內的群集的位置。
圖7是表示第一實施方式的記憶體控制器10的功能結構的一例的示意圖。
記憶體控制器10包括主機寫入處理部101、主機讀取處理部102、GC(Garbage Collection)處理部103、以及儲存部104。
例如,CPU 11基於韌體而作為主機寫入處理部101、主機讀取處理部102、以及GC處理部103發揮功能。RAM 13作為儲存部104發揮功能。再者,主機寫入處理部101、主機讀取處理部102、以及GC處理部103各自的功能的一部分或全部可於主機I/F控制器12或NAND控制器14中具備。主機寫入處理部101、主機讀取處理部102、以及GC處理部103各自的功能的一部分或全部亦可藉由現場可程式邏輯閘陣列(Field-Programmable Gate Array,FPGA)或應用特定積體電路(Application Specific Integrated Circuit,ASIC)等硬體電路而實現。
於儲存部104中保存邏輯至物理(Logical To Physical,L2P)資訊201及寫入管理資訊202。
L2P資訊201是用於將邏輯位址翻譯(translate)為物理位址的資訊。L2P資訊201例如是以群集為單位記錄有邏輯位址與物理位址的對應關係的表。記憶體控制器10於對儲存部104中的L2P資訊201進行更新的情況下,將更新後的部分適時地傳送至NAND記憶體20,以使得即使經過對記憶體系統1的電力供給的停止與重新開始的循環,亦不會自記憶體系統1丟失L2P資訊201。
記憶體控制器10向構成邏輯區塊的各物理區塊26寫入3頁(即,下頁、中頁及上頁)量的資料。記憶體控制器10以頁為單位切換寫入目的地。由寫入管理資訊202來規定對一個邏輯區塊的寫入目的地的切換順序。
圖8是表示第一實施方式的寫入管理資訊202的結構的一例的示意圖。
圖8所示的例子基於以下說明的結構。即,記憶體系統1包括8個通道,各記憶體晶片21包括4個平面。針對每個通道與平面的組合構成儲存體,藉此構成全部32個儲存體。各儲存體包括4個物理區塊26。因此,由全部128個物理區塊26構成一個邏輯區塊。將構成各儲存體的4個物理區塊表述為第一物理區塊、第二物理區塊、第三物理區塊、第四物理區塊。
以與所述結構對應的方式,於寫入管理資訊202中記錄了相對於構成一個邏輯區塊的128個物理區塊而言的、384頁(=3頁×128物理區塊)的量的寫入順序。以按每一頁切換寫入目的地的儲存體的方式決定寫入的順序。記憶體控制器10針對一頁按照群集的排列順序自開頭的群集至末尾的群集向各群集寫入資料區段。記憶體控制器10於完成對該一頁的寫入時,根據寫入管理資訊202選擇下一個寫入目的地的頁。
於NAND記憶體20中,除了寫入用戶資料以外,還寫入元資料。元資料例如包含用戶資料日誌或RS奇偶校驗。
用戶資料日誌是如下資訊,即,記錄了於自主機2要求寫入時與寫入NAND記憶體20的一個以上的資料區段的各者所對應的邏輯位址的資訊。於每次規定量的資料區段被寫入NAND記憶體20中時,用戶資料日誌會被寫入NAND記憶體20中。用戶資料日誌是對寫入NAND記憶體20中的每個資料區段記錄寫入時的邏輯位址與物理位址的對應關係的資訊。用戶資料日誌於L2P資訊201的重構等時使用。
RS奇偶校驗可生成相對於構成一個邏輯區塊的128個物理區塊26而言的、384頁(=3頁×128物理區塊)的量的資料群作為幀(frame)。與以資料區段為單位執行的錯誤糾正相比,使用了RS奇偶校驗的錯誤糾正的糾正能力更強,但需要寫入幀,因此糾正需要花費時間。因此,於以資料區段為單位執行的錯誤糾正失敗的情況下,記憶體控制器10進行包含RS奇偶校驗的幀的讀取,執行利用RS奇偶校驗的錯誤糾正。
根據圖8所示的例子,屬於儲存體#31的第一物理區塊的上頁被預約為用戶資料日誌區域301-1。於用戶資料日誌區域301-1中寫入與被寫入各儲存體的第一物理區塊26中的用戶資料有關的用戶資料日誌。對於儲存體#0~儲存體#31的第一物理區塊,自第0個至第94個為止寫入用戶資料的資料區段,與自第0個至第94個為止被寫入的所有資料區段有關的用戶資料日誌以第95個被寫入用戶資料日誌區域301-1中。
屬於儲存體#31的第二物理區塊的上頁被預約為用戶資料日誌區域301-2。於用戶資料日誌區域301-2中寫入與被寫入各儲存體的第二物理區塊26中的用戶資料有關的用戶資料日誌。對於儲存體#0~儲存體#31的第二物理區塊,自第96個至第190個為止寫入用戶資料的資料區段,與自第96個至第190個為止被寫入的所有資料區段有關的用戶資料日誌以第191個被寫入用戶資料日誌區域301-2中。
屬於儲存體#31的第三物理區塊的上頁被預約為用戶資料日誌區域301-3。於用戶資料日誌區域301-3中寫入與被寫入各儲存體的第三物理區塊26中的用戶資料有關的用戶資料日誌。對於儲存體#0~儲存體#31的第三物理區塊,自第192個至第286個為止寫入用戶資料的資料區段,與自第192個至第286個為止被寫入的所有資料區段有關的用戶資料日誌以第287個被寫入用戶資料日誌區域301-3中。
屬於儲存體#30的第四物理區塊的上頁被預約為用戶資料日誌區域301-4。於用戶資料日誌區域301-4中寫入與被寫入各儲存體的第四物理區塊26中的用戶資料有關的用戶資料日誌。對於儲存體#0~儲存體#30的第四物理區塊,自第288個至第370個為止寫入用戶資料的資料區段,與自第288個至第370個為止被寫入的所有資料區段有關的用戶資料日誌以第371個被寫入用戶資料日誌區域301-4中。
另外,儲存體#28~儲存體#31的第四物理區塊被預約為寫入RS奇偶校驗的RS奇偶校驗區域302。基於自第0個至第371個為止被寫入邏輯區塊中的所有資料區段而生成的RS奇偶校驗被寫入RS奇偶校驗區域302中。
如此,寫入管理資訊202規定了寫入目的地的選擇順序與用戶資料及元資料各自的寫入目的地。再者,寫入管理資訊202為第一設定的例子。由寫入管理資訊202規定的寫入目的地的選擇順序為第一順序的一例。
寫入管理資訊202例如保存於NAND記憶體20的規定位置。寫入管理資訊202例如於記憶體系統1啟動時自NAND記憶體20被加載至儲存部104中。記憶體控制器10的各功能結構要素適時參照儲存部104內的寫入管理資訊202。
將說明返回至圖7中。
主機寫入處理部101根據自主機2接收到的寫入請求將資料寫入NAND記憶體20中。主機寫入處理部101將自主機2接收到的用戶資料分割成一個以上的資料區段,並取得與該一個以上的資料區段的各者對應的邏輯位址。然後,主機寫入處理部101根據寫入管理資訊202來決定該一個以上的資料區段各自的寫入目的地的群集,並將該一個以上的資料區段的各者寫入所決定的寫入目的地的群集中。
主機寫入處理部101對L2P資訊201進行更新,以使得於將自用戶資料分割出的資料區段寫入NAND記憶體20中時,與該資料區段對應的邏輯位址和表示該資料區段的寫入目的地的群集的物理位址對應。
另外,主機寫入處理部101於每次將規定量的資料區段寫入NAND記憶體20中時,生成用戶資料日誌或RS奇偶校驗。而且,主機寫入處理部101按照由寫入管理資訊202規定的順序且在由寫入管理資訊202規定的區域301、區域302中寫入生成的用戶資料日誌或RS奇偶校驗。
主機讀取處理部102根據自主機2接收到的讀取請求而對NAND記憶體20進行讀取。主機讀取處理部102取得與被請求讀取的一個以上的資料區段的各者對應的邏輯位址。主機讀取處理部102基於所取得的邏輯位址及L2P資訊201來確定寫入了請求讀取的一個以上的資料區段各者的群集,並自所確定的各群集讀取資料區段。
主機讀取處理部102於對NAND記憶體20進行讀取時,能夠對讀取目的地的記憶體晶片21指示多種類型的讀取動作中的任一者。多種類型的讀取動作包括第一讀取動作及第二讀取動作。例如,第一讀取動作是不包含預取的讀取動作,第二讀取動作是包含預取的讀取動作。
主機2對記憶體系統1的存取模式有順序寫入、順序讀取、隨機讀取及隨機寫入。所謂順序寫入是按照邏輯位址的順序寫入多個資料區段的存取模式。所謂順序讀取是按照邏輯位址的順序讀取多個資料區段的存取模式。所謂隨機寫入是按照與邏輯位址的順序不同的順序寫入多個資料區段的存取模式。所謂隨機讀取是按照與邏輯位址的順序不同的順序讀取多個資料區段的存取模式。
一般而言,以順序寫入的存取模式自主機向記憶體系統寫入的多個資料區段大多以順序讀取的存取模式自主機讀取。
如上所述,主機寫入處理部101於按照由寫入管理資訊202規定的順序(以下,稱為寫入順序)選擇寫入目的地的群集的同時,依次寫入自主機2接收到的多個資料區段。因此,於以順序讀取的存取模式自主機2請求讀取以順序寫入的存取模式自主機2接收到的多個資料區段的情況下,按照與寫入順序相同的順序自NAND記憶體20的讀取目的地的群集進行讀取的可能性高。
因此,於檢測到讀取目的地的群集按照寫入順序切換時,主機讀取處理部102使NAND記憶體20執行伴隨有預取的讀取動作、即第二讀取動作。於讀取目的地的群集按照寫入順序切換的情況下,預測於不久的將來亦按照寫入順序切換讀取目的地的群集。因此,主機讀取處理部102基於寫入管理資訊202預測之後讀取的可能性高的用戶資料,並預取所確定的用戶資料。於預測成功的情況下,主機讀取處理部102能夠使用已預取的用戶資料,因此讀取的效率提高。
主機讀取處理部102基於讀取目的地的群集的切換順序與由寫入管理資訊202規定的順序的比較,來判定是否執行預取。
主機寫入處理部101將自主機2接收到的用戶資料與元資料一起寫入NAND記憶體20中。然而,主機讀取處理部102於響應於讀取請求的處理中,自NAND記憶體20讀取用戶資料而不讀取元資料。即,讀取目的地的群集的切換順序與由寫入管理資訊202規定的順序在是否對針對元資料的存取賦予順序的方面不同。
因此,主機讀取處理部102於判定讀取目的地的群集的切換順序是否包含於由寫入管理資訊202規定的順序中時,跳過由寫入管理資訊202規定的順序中的、與寫入了元資料的區域301、區域302相關的順序。藉此,主機讀取處理部102可準確地判定是否按照與寫入NAND記憶體20中的順序相同的順序讀取了用戶資料的多個資料區段。基於關於是否按照與寫入NAND記憶體20中的順序相同的順序讀取用戶資料的多個資料區段的準確的判定結果,主機讀取處理部102可判定是否執行預取。因此,可提高由預取帶來的讀取性能的提高效果。即,讀取性能提高。
以後,將從由寫入管理資訊202規定的順序中跳過了與寫入有元資料的區域301、區域302相關的順序的順序中包含讀取目的地的群集的切換順序的模式表述為順序模式。將從由寫入管理資訊202規定的順序中跳過了與寫入有元資料的區域301、區域302相關的順序的順序中不包含讀取目的地的群集的切換順序的讀取模式表述為非順序模式。
GC處理部103執行垃圾回收。
在某資料區段(表述為第一資料區段)保存於物理區塊26中的狀態下,於自主機2發送來第二資料區段、即、指定了與發送第一資料區段時所指定的邏輯位址為相同值的邏輯位址的第二資料區段的情況下,記憶體控制器10將第一資料區段視為無效的資料,將第二資料區段視為有效的資料。而且,記憶體控制器10藉由主機寫入處理部101將第二資料區段寫入NAND記憶體20中。即,保存於NAND記憶體20中的用戶資料不僅可包含有效的資料區段,而且可包含無效的用戶區段。
垃圾回收是將保存於一個邏輯區塊中的所有有效資料區段轉錄(transcript)至另一邏輯區塊並使轉錄源的邏輯區塊內的所有資料區段無效化的處理。轉錄亦可換言之為複製。於垃圾回收中,不進行被視為無效的資料區段的轉錄。即,垃圾回收是僅將有效的資料區段自一個邏輯區塊重新安置於另一邏輯區塊的處理。
藉由垃圾回收而使所有的資料區段無效化的邏輯區塊被視為自由區塊。對構成作為自由區塊的邏輯區塊的所有物理區塊26一併執行擦除。於擦除後,該邏輯區塊成為能夠寫入資料的狀態。
圖9是用於說明第一實施方式的第一讀取動作的示意圖。設被寫入某子陣列23的某物理區塊26(表述為區塊X)的某頁(表述為頁i)中的資料區段為讀取對象。
於第一讀取動作中,記憶體晶片21藉由感測動作將寫入區塊X的頁i中的一頁量的資料傳送至頁緩衝器24中(S1)。然後,記憶體晶片21將寫入頁緩衝器24的一頁量的資料傳送至資料緩存器25中(S2)。然後,記憶體晶片21將寫入資料緩存器25中的一頁量的資料中的作為讀取對象的資料區段輸出至記憶體控制器10中(S3)。
圖10是用於說明第一實施方式的第二讀取動作的示意圖。設被寫入某子陣列23內的區塊X的頁i中的資料區段、被寫入子陣列23內的另一區塊Y的頁j中的資料區段、被寫入子陣列23內的又一區塊Z的頁k中的資料區段為讀取對象。
記憶體晶片21藉由感測動作將被寫入區塊X的頁i中的一頁量的資料傳送至頁緩衝器24中(S11)。然後,記憶體晶片21將保存於頁緩衝器24中的一頁量的資料傳送至資料緩存器25中(S12)。然後,記憶體晶片21將保存於資料緩存器25中的一頁量的資料中的作為讀取對象的資料區段輸出至記憶體控制器10中(S13)。
記憶體晶片21藉由感測動作將被寫入區塊Y的頁j中的一頁量的資料傳送至頁緩衝器24中(S14)。再者,步驟S14的執行期間與步驟S13的執行期間的一部分或全部重覆。於步驟S13及步驟S14之後,記憶體晶片21將保存於頁緩衝器24中的一頁量的資料傳送至資料緩存器25(S15)。然後,記憶體晶片21將保存於資料緩存器25中的一頁量的資料中的作為讀取對象的資料區段輸出至記憶體控制器10中(S16)。
記憶體晶片21藉由感測動作將被寫入區塊Z的頁k中的一頁量的資料傳送至頁緩衝器24中(S17)。再者,步驟S17的執行期間與步驟S16的執行期間的一部分或全部重覆。
以後,可重覆執行與步驟S15~步驟S17相同的處理。
即,於第二讀取動作中,記憶體控制器10可使自資料緩存器25輸出被寫入一頁中的作為讀取對象的資料區段的期間與對被寫入另一頁中的資料執行感測動作的期間重覆。
於認為以順序寫入的存取模式寫入的用戶資料會以順序讀取的存取模式讀取的可能性高的情況下,主機讀取處理部102基於寫入管理資訊202來確定寫入了在讀取對象的資料區段(表述為第一讀取對象)的讀取後作為讀取對象的可能性高的資料區段(表述為第二讀取對象)的頁。然後,主機讀取處理部102使記憶體晶片21執行第二讀取動作,以使得於自資料緩存器25輸出第一讀取對象的期間對寫入了所確定的第二讀取對象的頁執行感測動作。
圖11是用於說明第一實施方式的主機讀取處理部102的功能結構的一例的示意圖。
主機讀取處理部102包括翻譯部111、一個以上的判定部112、以及一個以上的儲存體控制部113。針對每個儲存體設置判定部112與儲存體控制部113的對。於圖11所示的例子中,設為於記憶體系統1中設置有儲存體#0~儲存體#(n-1)的n個儲存體。因此,n對的判定部112與儲存體控制部113設置於主機讀取處理部102中。
翻譯部111基於L2P資訊201來對自主機2請求讀取的一個以上的資料區段的各者確定讀取目的地的群集(更準確而言為表示讀取目的地的群集的物理位址)。然後,翻譯部111將每個資料區段的物理位址輸入至n個判定部112中的與讀取目的地的群集所屬的儲存體對應的判定部112中。
判定部112將依次輸入至自身的物理位址輸入至與自身所對應的儲存體相同的儲存體所對應的儲存體控制部113中。判定部112基於自翻譯部111輸入的多個物理位址的歷史(history),來判定是否執行預取。然後,判定部112將物理位址與是否執行預取的指示一起輸入至儲存體控制部113中。
儲存體控制部113使NAND記憶體20中的屬於與自身對應的儲存體的記憶體晶片21執行以所輸入的物理位址為讀取目的地的讀取動作。於與物理位址一起輸入了不進行預取的指示的情況下,儲存體控制部113使記憶體晶片21執行第一讀取動作。於與物理位址一起輸入了執行預取的指示的情況下,儲存體控制部113使記憶體晶片21執行第二讀取動作。
圖12是表示第一實施方式的判定部112的詳細的功能結構的一例的示意圖。主機讀取處理部102中所包括的n個判定部112包括共通的功能結構。
判定部112包括位址歷史儲存部121、位址比較器122、存取歷史儲存部123、以及判定表儲存部124。
位址歷史儲存部121對最新輸入的兩個物理位址的對進行保持。於圖12所示的例子中,位址歷史儲存部121將最新輸入的物理位址作為物理位址ADDR_cur保持,將緊接著物理位址ADDR_cur之前輸入的物理位址作為物理位址ADDR_prev保持。
位址比較器122判定對物理位址ADDR_prev所表示的群集及物理位址ADDR_cur所表示的群集的讀取在與判定部112對應的儲存體的視點中是與順序模式相符還是與非順序模式相符。具體而言,位址比較器122判定物理位址ADDR_prev及物理位址ADDR_cur的順序是否與跳過了由寫入管理資訊202規定的順序、更具體而言由寫入管理資訊202規定的順序中的與對其他儲存體的寫入有關的順序及與元資料的寫入有關的順序後的順序(以下,稱為用戶資料寫入順序)的一部分一致。然後,基於判定結果,位址比較器122輸出表示順序模式或非順序模式的一位元的值。
於物理位址ADDR_prev及物理位址ADDR_cur的順序與用戶資料寫入順序的一部分一致的情況下,位址比較器122輸出表示順序模式的值作為判定結果。於物理位址ADDR_prev及物理位址ADDR_cur的順序與用戶資料寫入順序的任一者不一致的情況下,位址比較器122輸出表示非順序模式的值作為判定結果。
存取歷史儲存部123保持由位址比較器122進行的最新的多次的判定結果。存取歷史儲存部123例如包含SRAM。存取歷史儲存部123亦可包含觸發器。於圖12所示的例子中,存取歷史儲存部123構成為8位元的暫存器。判定部112於位址比較器122每次輸出判定結果時,進行使存取歷史儲存部123的儲存內容向左移動一位元量的位移。藉此,判定部112將位址比較器122輸出的最新的判定結果保存至暫存器的最右端。即,存取歷史儲存部123保持最新的8次判定結果。以後,將保持於存取歷史儲存部123中的8位元的資訊表述為存取歷史。
判定表儲存部124保持預取判定表211。判定表儲存部124例如包括SRAM。判定表儲存部124亦可包括觸發器。預取判定表211具有與存取歷史的位元數對應的數量的條目。此處,存取歷史是8位資料,因此預取判定表211具有2
8個條目。對2
8個條目分別賦予8位元的索引。藉此,預取判定表211能夠進行將存取歷史作為檢索鍵的檢索。於預取判定表211各自的條目中預先保存有表示是否執行預取的一位元的值。判定部112參照被賦予了與存取歷史為相同值的索引的條目。而且,於藉由參照而獲得的值表示執行(Exec)的情況下,判定部112判定為執行預取。於藉由參照而獲得的值表示不執行(Not exec)的情況下,判定部112判定為不執行預取。
保存於預取判定表211的各個條目中的值可由設計者利用任意的方法來決定。例如,設計者藉由實驗、模擬或經驗來對每個存取歷史的值計算出基於包含下一個輸入的物理位址的最新兩個物理位址的讀取與順序模式相符的概率。而且,設計者基於藉由計算而獲得的概率來決定各條目的數值資訊。於基於包含下一個輸入的物理位址的最新兩個物理位址的讀取與順序模式相符的概率大的情況下,設計者設定表示執行預取的值。於基於包含下一個輸入的物理位址的最新兩個物理位址的讀取與順序模式相符的概率不大的情況下,設計者設定表示不進行預取的值。
例如,設計者於被賦予了8位元的「00000010」的存取歷史(索引)的條目中設定表示不進行預取的值。另外,設計者於被賦予了8位元的「11111111」的存取歷史(索引)的條目中設定表示進行預取的值。再者,此處,關於構成存取歷史的判定結果,「1」表示順序模式,「0」表示非順序模式。再者,對於構成存取歷史的判定結果,設計者亦可任意決定將表示順序模式的值及表示非順序模式的值的各者是設為「1」還是設為「0」。
接著,對第一實施方式的記憶體系統1的動作進行說明。
圖13是表示第一實施方式的主機寫入處理部101的動作的一例的流程圖。此處,對記憶體控制器10自主機2接收到一個寫入請求及用戶資料時的動作進行說明。主機寫入處理部101於每次接收到一個寫入請求及用戶資料時執行本圖所示的動作。
主機寫入處理部101於自主機2接收到寫入請求及用戶資料時(S101),基於寫入管理資訊202以資料區段為單位決定用戶資料的寫入目的地(S102)。
於一例中,主機寫入處理部101決定參照圖6所說明的物理位址的位元行中的邏輯區塊編號及頁編號。然後,主機寫入處理部101根據寫入管理資訊202而從由邏輯區塊編號及頁編號確定的頁群中決定包含於用戶資料中的一個以上的資料區段的寫入目的地的群集。例如,於空閒的群集、即亦未將任何資料區段設定為寫入目的地的群集位於被賦予了「第a個」的頁中的情況下,主機寫入處理部101首先將該群集決定為一個資料區段(表述為第一資料區段)的寫入目的地。主機寫入處理部101取得對被賦予了「第a個」的頁賦予的邏輯區塊內位置資訊,並取得以該頁的開頭為基準的第一資料區段的寫入目的地的群集的相對位置作為群集編號。
主機寫入處理部101將被賦予了「第a個」的頁中所含的各群集按照群集編號的順序決定為資料區段的寫入目的地,直到於被賦予了「第a個」的頁中空閒的群集消失為止。而且,於在被賦予了「第a個」的頁中空閒的群集消失時,主機寫入處理部101將被賦予了「第(a+1)個」的頁中所含的各群集按照群集編號的順序決定為資料區段的寫入目的地。於寫入管理資訊202所表示的頁中除了元資料用的區域301、區域302以外的所有頁被決定為用戶資料的寫入目的地時,主機寫入處理部101增加頁編號。如此,主機寫入處理部101自被賦予了「第0個」的頁開始按照順序決定一個以上的資料區段的寫入目的地。
接著,主機寫入處理部101根據寫入管理資訊202來將用戶資料以頁為單位寫入NAND記憶體20中(S103)。於步驟S103中,主機寫入處理部101於規定的時機生成用戶資料日誌及RS奇偶校驗,並根據寫入管理資訊202寫入邏輯區塊中。
接著,主機寫入處理部101對步驟S103中所寫入的用戶資料的每個資料區段更新L2P資訊201(S104),並結束動作。
圖14是表示由第一實施方式的GC處理部103進行的垃圾回收的動作的一例的流程圖。再者,開始垃圾回收動作的條件可任意設計。於一例中,於記憶體系統1所包括的自由區塊的數量小於規定數量的情況下,GC處理部103執行垃圾回收。
首先,GC處理部103選擇轉錄源的邏輯區塊及轉錄目的地的邏輯區塊(S201)。然後,GC處理部103自轉錄源的邏輯區塊讀取有效的用戶資料(S202)。
接著,GC處理部103根據寫入管理資訊202以資料區段為單位來決定自轉錄源的邏輯區塊讀取的用戶資料的寫入目的地(S203)。於步驟S203中,利用與步驟S102相同的方法來決定寫入目的地。
接著,GC處理部103將用戶資料寫入轉錄目的地的邏輯區塊中(S204)。於步驟S204中,利用與步驟S103相同的方法來寫入用戶資料、用戶資料日誌及RS奇偶校驗。
接著,GC處理部103對步驟S204中所寫入的用戶資料的每個資料區段更新L2P資訊201(S105),並結束動作。
圖15是表示第一實施方式的翻譯部111的動作的一例的流程圖。此處,對記憶體控制器10自主機2接收到一個讀取請求時的動作進行說明。翻譯部111於每次接收到讀取請求時執行本圖所示的動作。
於記憶體控制器10自主機2接收到讀取請求時(S301),於主機讀取處理部102中,翻譯部111基於讀取請求所指定的邏輯位址範圍來確定與被要求讀取的用戶資料中所含的一個以上的資料區段的各者對應的邏輯位址(S302)。
然後,翻譯部111基於L2P資訊201來將所確定的各邏輯位址翻譯為物理位址(S303)。藉此,可確定寫入了被請求讀取的用戶資料中所含的一個以上的資料區段的各者的群集。
翻譯部111將各物理位址輸入至與讀取目的地的群集所屬的儲存體對應的判定部112中(S304)。翻譯部111將藉由翻譯而確定的一個以上的物理位址按照所確定的順序分配給一個以上的判定部112。然後,翻譯部111的動作結束。
圖16是表示第一實施方式的判定部112的動作的一例的流程圖。物理位址自翻譯部111依次被輸入至判定部112中。於本圖中,對在過去輸入多次物理位址之後新輸入一個物理位址時的判定部112的動作進行說明。再者,判定部112於每次輸入物理位址時執行本圖所示的一系列動作。
判定部112於自翻譯部111接收到物理位址時(S401),將上次接收到的物理位址作為物理位址ADDR_prev保持於位址歷史儲存部121中,將此次接收到的物理位址作為物理位址ADDR_cur保持於位址歷史儲存部121中(S402)。
位址比較器122判定物理位址ADDR_prev及物理位址ADDR_cur的順序是否與跳過了由寫入管理資訊202規定的順序中的與對其他儲存體的寫入有關的順序及與元資料的寫入有關的順序後的順序、即用戶資料寫入順序的一部分一致(S403)。
根據圖8所示的例子,例如關於儲存體#31,用戶資料寫入順序為第一物理區塊的下頁、第一物理區塊的中頁、第二物理區塊的下頁、第二物理區塊的中頁、第三物理區塊的下頁、第三物理區塊的中頁。於各頁中,按照群集編號順序規定了寫入的順序。
與儲存體#31對應的判定部112的位址比較器122對物理位址ADDR_prev及物理位址ADDR_cur的順序是否與所述順序的一部分一致進行判定。例如,於物理位址ADDR_prev及物理位址ADDR_cur的順序成為第二物理區塊的中頁、第三物理區塊的下頁的順序的情況下,與儲存體#31對應的判定部112的位址比較器122判定為物理位址ADDR_prev及物理位址ADDR_cur的順序與用戶資料寫入順序的一部分一致。
於步驟S403中的判定結果一致的情況下(S403:是(Yes)),判定部112使保持於存取歷史儲存部123中的存取歷史向左移位一位元的量,並於存取歷史的最右位追加表示順序模式的一位元的值(S404)。
於步驟S403中的判定結果不一致的情況下(S403:否(No)),判定部112使保持於存取歷史儲存部123中的存取歷史向左移位一位元的量,並於存取歷史的最右位追加表示非順序模式的一位元的值(S405)。
於步驟S404或步驟S405之後,判定部112參照預取判定表211中的被賦予了與存取歷史為相同值的索引的條目(S406)。然後,判定部112判定是否藉由參照獲得了表示執行的值(S407)。
於獲得了表示執行的值的情況下(S407:是),判定部112將物理位址ADDR_cur與執行預取的指示一起發送至儲存體控制部113中(S408)。
於獲得了表示不執行的值的情況下(S408:否),判定部112於不存在執行預取的指示的情況下將物理位址ADDR_cur發送至儲存體控制部113中(S409)。
於步驟S408或步驟S409之後,判定部112結束動作。
圖17是表示第一實施方式的儲存體控制部113的動作的一例的流程圖。物理位址自判定部112依次被輸入至儲存體控制部113中。於本圖中,對輸入了一個物理位址時的儲存體控制部113的動作進行說明。再者,儲存體控制部113於每次輸入物理位址時執行本圖所示的一系列動作。
儲存體控制部113於自判定部112接收到物理位址時(S501),判定是否與物理位址一起接收到執行預取的指示(S502)。於本圖的說明中,將藉由步驟S501而新輸入的物理位址表述為ADDR_in。
於接收到物理位址ADDR_in但未接收到執行預取的指示的情況下(S502:否),儲存體控制部113執行以物理位址ADDR_in所表示的群集為讀取對象的第一讀取動作(S503)。主機讀取處理部102將藉由步驟S503自NAND記憶體20輸出的資料區段傳送至主機2中。
於與物理位址ADDR_in一起接收到執行預取的指示的情況下(S502:是),儲存體控制部113基於跳過了由寫入管理資訊202規定的順序中的與對其他儲存體的寫入有關的順序及與元資料的寫入有關的順序後的順序、即用戶資料寫入順序,來推測在包含物理位址ADDR_in所表示的群集的頁之後進行讀取的頁(S504)。
根據圖8所示的例子,例如關於儲存體#31,用戶資料寫入順序為第一物理區塊的下頁、第一物理區塊的中頁、第二物理區塊的下頁、第二物理區塊的中頁、第三物理區塊的下頁、第三物理區塊的中頁。例如,於物理位址ADDR_in所表示的群集包含於第一物理區塊的中頁中的情況下,儲存體控制部113將於該順序中在第一物理區塊的中頁之後的第二物理區塊26的下頁推測為下一個進行讀取的頁。
接著,儲存體控制部113執行將物理位址ADDR_in所表示的群集作為讀取對象、將推測出的頁作為預取對象的第二讀取動作(S505)。主機讀取處理部102將藉由步驟S505而自NAND記憶體20輸出的資料區段傳送至主機2中。
於步驟S503或步驟S505之後,儲存體控制部113結束動作。
如上所述,根據第一實施方式,記憶體控制器10基於分別規定寫入目的地的選擇順序、以及用戶資料及元資料各自的寫入目的地的寫入管理資訊202,來將包含用戶資料及元資料的多個資料區段寫入NAND記憶體20中(例如參照圖13)。記憶體控制器10根據來自主機2的讀取請求,依次確定寫入了與由讀取請求所請求的用戶資料相符的多個資料區段的多個群集的各者(例如參照圖15的S301~S303)。然後,記憶體控制器10基於寫入了多個資料區段的多個群集的被確定的順序以及跳過了由寫入管理資訊202所規定的順序中的與元資料的寫入有關的順序後的順序,判定於對NAND記憶體20的讀取中是否執行預取(例如參照圖16)。
因此,記憶體控制器10可準確地判定是否按照與寫入NAND記憶體20中的順序相同的順序讀取用戶資料的多個資料區段。基於關於是否按照與寫入NAND記憶體20中的順序相同的順序讀取用戶資料的多個資料區段的準確的判定結果,記憶體控制器10可判定是否執行預取。因此,可提高由預取帶來的讀取性能的提高效果。即,讀取性能提高。
再者,記憶體控制器10於判定為不執行預取的情況下,使NAND記憶體20執行第一讀取動作,於判定為執行預取的情況下,使NAND記憶體20執行第二讀取動作。第一讀取動作是如下動作:將資料自記憶胞元陣列22傳送至頁緩衝器24中,將該資料自頁緩衝器24傳送至資料緩存器25中,並將該資料自資料緩存器25輸出至記憶體控制器10中的動作。第二讀取動作是如下讀取動作:將資料自記憶胞元陣列22傳送至頁緩衝器24中,將該資料自頁緩衝器24傳送至資料緩存器25中,並將該資料自資料緩存器25輸出至記憶體控制器10中,並在與將該資料自資料緩存器25輸出至記憶體控制器10中的期間重覆的期間,將其他資料自自記憶胞元陣列22傳送至頁緩衝器24中。
另外,於第一實施方式中,記憶體控制器10於每次確定讀取目的地的群集時,取得所確定的讀取目的地的群集中的最新連續確定的兩個群集的對。而且,記憶體控制器10基於構成該對的兩個群集的順序是否包含於跳過了由寫入管理資訊202規定的順序中的與元資料的寫入有關的順序後的順序(即,用戶資料寫入順序)中,來判定是否執行預取(例如參照圖16)。
另外,於第一實施方式中,記憶體控制器10包括存取歷史儲存部123,所述存取歷史儲存部123保持有對連續確定的兩個群集的讀取順序是否包含於用戶資料寫入順序中的判定結果的歷史、即存取歷史。記憶體控制器10基於存取歷史來判定是否執行預取。
因此,能夠進行複雜的預取控制。例如,能夠進行如下等控制:於對連續確定的兩個群集的讀取順序包含於用戶資料寫入順序中的情形連續發生規定次數的情況下,執行預取。
再者,記憶體控制器10於是否執行預取的判定中可未必使用存取歷史。例如,於對連續確定的兩個群集的讀取順序包含於用戶資料寫入順序中的情況下,記憶體控制器10可判定為執行預取,於對連續確定的兩個群集的讀取順序不包含於用戶資料寫入順序中的情況下,可判定為不執行預取。
另外,於第一實施方式中,記憶體控制器10更包括保持有預取判定表211的判定表儲存部124。預取判定表211具有多個條目,並於該多個條目各者中記錄有表示是否執行預取的值。另外,對該多個條目各者賦予索引。記憶體控制器10基於記錄在預取判定表211的多個條目中的被賦予了與存取歷史相等的索引的條目中的值,來判定是否執行預取。
因此,能夠進行基於存取歷史的複雜的預取控制。
(第二實施方式)
於執行垃圾回收時,僅邏輯區塊內的有效的用戶資料被重新安置於另一邏輯區塊中。因此,即使以順序寫入的存取模式而自主機2寫入的多個資料區段按照由寫入管理資訊202規定的順序被寫入NAND記憶體20中,藉由經由垃圾回收,各資料區段的配置亦可相對於寫入請求的處理時的配置發生變更。
於第二實施方式中,預取判定表的各條目內的值可藉由學習來逐漸更新,以使得即使藉由垃圾回收而各資料區段的配置相對於寫入請求的處理時發生變更,亦可適當地執行是否執行與存取歷史對應的預取的判定。
以下,對第二實施方式的記憶體系統1進行說明。於第二實施方式中,關於與第一實施方式相同的事項(結構、功能或動作),省略說明或者簡單地進行說明。
第二實施方式的主機讀取處理部102包括判定部112a來代替第一實施方式的判定部112。主機讀取處理部102針對每個儲存體包括判定部112a。
圖18是表示第二實施方式的判定部112a的詳細的功能結構的一例的示意圖。主機讀取處理部102所包括的多個判定部112a具有共通的功能結構。
判定部112a包括位址歷史儲存部121、位址比較器122、存取歷史儲存部123、判定表儲存部124a、以及預取判定部125。
判定表儲存部124a保持預取判定表211a。與第一實施方式的預取判定表211同樣地,預取判定表211a包括能夠進行將存取歷史作為檢索鍵的檢索的多個條目(此處,作為一例為2
8個條目)。於各條目中記錄了作為飽和計數器的一位元以上的值。此處,作為一例,設為記錄於各條目中的飽和計數器是二位元的值。
圖19是表示在第二實施方式的預取判定表211a的各條目中所記錄的飽和計數器的值的變化的例子的示意圖。
各條目的飽和計數器可取「00」、「01」、「10」及「11」此四個值。藉由對預取判定表211a的參照而獲得的飽和計數器的值被輸入至預取判定部125中。預取判定部125基於所輸入的飽和計數器的值與臨限值的比較,來判定是否執行預取。
於圖19所示的例子中,於飽和計數器的值為「01」以下的情況下,即,於飽和計數器的值為「00」或「01」的情況下,預取判定部125判定為不進行預取。於飽和計數器的值超過「01」的情況下,即,於飽和計數器的值為「10」或「11」的情況下,預取判定部125判定為執行預取。
即,預取判定表211的各條目內的飽和計數器可視為概率資訊,所述概率資訊表示基於包含下一個被輸入的物理位址的最新兩個物理位址的讀取與順序模式相符的概率。
於自翻譯部111新輸入了物理位址的情況下,判定部112a基於響應於該新物理位址的輸入的由位址比較器122進行比較而得的判定結果,對在上次物理位址輸入時所參照的條目內的飽和計數器進行更新。具體而言,於位址比較器122的輸出值表示順序模式的情況下,判定部112a對飽和計數器執行加「1」。於位址比較器122的輸出值表示非順序模式的情況下,判定部112a對飽和計數器執行減「1」。
例如,於在存取歷史儲存部123所儲存的存取歷史(索引)為8位元的「00000010」時位址比較器122的輸出值表示順序模式的情況下,判定部112a對被賦予了該索引的條目的飽和計數器執行加「1」。另外,於在存取歷史儲存部123所儲存的存取歷史(索引)為8位元的「11111111」時位址比較器122的輸出值表示非順序模式的情況下,判定部112a對被賦予了該索引的條目的飽和計數器執行減「1」。
於在飽和計數器的值為「11」時執行加「1」的情況下,判定部112a將飽和計數器的值維持為「11」。另外,於飽和計數器的值為「00」時執行減「1」的情況下,判定部112a將飽和計數器的值維持為「00」。
如此,基於對兩個連續輸入的物理位址的對的讀取是否與順序模式相符的事實,來更新由預取判定表211a管理的概率資訊。因此,即使各資料區段的配置藉由垃圾回收而變更,於對變更後的配置經過多次讀取時,亦對概率資訊進行更新,以使得可根據存取歷史來適當地執行是否執行預取的判定。
圖20是表示第二實施方式的判定部112a的動作的一例的流程圖。物理位址自翻譯部111依次被輸入至判定部112a中。於本圖中,對在過去輸入多次物理位址之後新輸入一個物理位址時的判定部112a的動作進行說明。再者,判定部112a於每次輸入物理位址時執行本圖所示的一系列動作。
於步驟S601~步驟S603中,執行與參照圖16說明的步驟S401~步驟S403的同樣的處理。
於步驟S603中的判定結果一致的情況下(S603:是),判定部112a對預取判定表211a中的被賦予了與存取歷史為相同值的索引的條目內的飽和計數器執行加「1」(S604)。
於步驟S604中,基於針對物理位址ADDR_prev所表示的群集及物理位址ADDR_cur所表示的群集的讀取與順序模式相符的事實,判定部112a對預取判定表211a中的用於判定執行上一次物理位址輸入時的預取的條目內的飽和計數器進行更新。
繼步驟S604之後,判定部112a使保持於存取歷史儲存部123中的存取歷史向左移位一位元的量,並於存取歷史的最右位追加表示順序模式的一位元的值(S605)。
於步驟S603中的判定結果不一致的情況下(S603:否),判定部112a對預取判定表211a中的被賦予了與存取歷史為相同值的索引的條目內的飽和計數器執行減「1」(S606)。
於步驟S606中,基於針對物理位址ADDR_prev所表示的群集及物理位址ADDR_cur所表示的群集的讀取與非順序模式相符的事實,判定部112a對預取判定表211a中的用於判定執行上一次物理位址輸入時的預取的條目內的飽和計數器進行更新。
繼步驟S606之後,判定部112a使保持於存取歷史儲存部123中的存取歷史向左移位一位元的量,並於存取歷史的最右位追加表示非順序模式的一位元的值(S607)。
於步驟S605或步驟S607之後,判定部112a參照預取判定表211a中的被賦予了與存取歷史為相同值的索引的條目(S608)。然後,判定部112判定藉由參照是否獲得了「10」或「11」(S609)。
於藉由參照獲得了「10」或「11」的情況下(S609:是),判定部112a將物理位址ADDR_cur與執行預取的指示一起發送至儲存體控制部113(S610)。
於藉由參照獲得了「00」或「01」的情況下(S609:否),判定部112於不存在執行預取的指示的情況下將物理位址ADDR_cur發送至儲存體控制部113中(S611)。
於步驟S610或步驟S611之後,判定部112a結束動作。
如此,根據第二實施方式,記憶體控制器10判定對連續確定的兩個群集的讀取順序是否包含於跳過了由寫入管理資訊202規定的順序中的與元資料的寫入有關的順序後的順序中。記憶體控制器10於判定後,基於判定結果對預取判定表211a的多個條目中的被賦予了與存取歷史相等的索引的條目內的飽和計數器的值進行更新(例如,參照圖20的S604或S606)。記憶體控制器10於飽和計數器的值更新後,基於判定結果來對存取歷史進行更新(例如參照圖20的S605或S607)。記憶體控制器10於存取歷史更新後,基於預取判定表211a的多個條目中的被賦予了與存取歷史相等的索引的條目內的飽和計數器的值,來判定是否執行預取(例如參照圖20的S608~S611)。
因此,即使各資料區段的配置藉由垃圾回收而變更,亦能夠根據存取歷史來適當地執行是否執行預取的判定。
對本發明的若干實施方式進行了說明,但該些實施方式作為例子而提示,並不意圖限定發明的範圍。該些新穎的實施方式能夠以其他各種形態實施,可於不脫離發明的主旨的範圍內進行各種省略、置換、變更。該些實施方式或其變形包含於發明的範圍或主旨中,並且包含於申請專利範圍中所記載的發明及其均等的範圍內。
1:記憶體系統
2:主機
3:通訊接口
10:記憶體控制器
11:CPU
12:主機I/F控制器
13:RAM
14:NAND控制器
15:錯誤糾正電路
20:NAND記憶體
21、21-0、21-1、21-2、21-3:記憶體晶片
22:記憶胞元陣列
23:子陣列
24:頁緩衝器
25:資料緩存器
26:物理區塊
27:NAND串
101:主機寫入處理部
102:主機讀取處理部
103:GC處理部
104:儲存部
111:翻譯部
112、112a:判定部
113:儲存體控制部
121:位址歷史儲存部
122:位址比較器
123:存取歷史儲存部
124、124a:判定表儲存部
125:預取判定部
201:L2P資訊
202:寫入管理資訊
211、211a:預取判定表
301、301-1、301-2、301-3、301-4:用戶資料日誌區域/區域
302:RS奇偶校驗區域/區域
A~P、X、Y、Z:區塊
ADDR_cur、ADDR_prev、ADDR_in:物理位址
BL、BL0~BL(L-1):位元線
ch.0、ch.1:通道
MCG:記憶胞元組
MT、MT0~MT13:記憶胞元電晶體
S1~S3、S11~S17、S101~S104、S201~S205、S301~S304、S401~S409、S501~S505、S601~S611:步驟
SL:源極線
SGD0~SGD3、SGS:選擇閘極線
SU、SU0~SU3:串單元
ST1、ST2:選擇電晶體
Vra、Vrb、Vrc、Vrd、Vre、Vrf及Vrg:判定電壓
WL0~WL13:字元線
圖1是表示第一實施方式的記憶體系統的硬體結構的一例的示意圖。 圖2是表示第一實施方式的記憶體晶片的結構的一例的示意圖。 圖3是表示第一實施方式的物理區塊的電路結構的圖。 圖4是表示第一實施方式的資料編碼與臨限值電壓分佈的一例的圖。 圖5是表示第一實施方式的邏輯區塊的構成方法的一例的示意圖。 圖6是表示第一實施方式的物理位址的結構的一例的示意圖。 圖7是表示第一實施方式的記憶體控制器的功能結構的一例的示意圖。 圖8是表示第一實施方式的寫入管理資訊的結構的一例的示意圖。 圖9是用於說明第一實施方式的第一讀取動作的示意圖。 圖10是用於說明第一實施方式的第二讀取動作的示意圖。 圖11是用於說明第一實施方式的主機讀取處理部的功能結構的一例的示意圖。 圖12是表示第一實施方式的判定部的詳細的功能結構的一例的示意圖。 圖13是表示第一實施方式的主機寫入處理部的動作的一例的流程圖。 圖14是表示由第一實施方式的垃圾回收(Garbage Collection,GC)處理部進行的垃圾回收的動作的一例的流程圖。 圖15是表示第一實施方式的翻譯部的動作的一例的流程圖。 圖16是表示第一實施方式的判定部的動作的一例的流程圖。 圖17是表示第一實施方式的儲存體(bank)控制部的動作的一例的流程圖。 圖18是表示第二實施方式的判定部的詳細的功能結構的一例的示意圖。 圖19是表示在第二實施方式的預取判定表的各條目中所記錄的飽和計數器的值的變化的例子的示意圖。 圖20是表示第二實施方式的判定部的動作的一例的流程圖。
S401~S409:步驟
Claims (10)
- 一種記憶體系統,能夠與主機連接, 所述記憶體系統包括第一記憶體及記憶體控制器,所述第一記憶體包括包含多個第一區段區域的非揮發性的儲存區域, 所述記憶體控制器構成為: 按照第一設定,將分別包含用戶資料或元資料的多個第一資料區段寫入所述多個第一區段區域中,所述第一設定規定了所述多個第一區段區域中的寫入目的地的選擇順序即第一順序、以及所述多個第一區段區域中的用戶資料及元資料的各自的寫入目的地, 根據來自所述主機的讀取請求,確定寫入了多個第二資料區段的多個第二區段區域的各區域,所述多個第二資料區段與所述多個第一區段區域中的、所述多個第一資料區段中的由所述讀取請求所請求的用戶資料相符, 基於第二順序及第三順序來判定於對所述多個第二區段區域的讀取動作中是否執行預取,所述第二順序是自所述多個第二區段區域的各區域讀取所述多個第二資料區段的順序,所述第三順序是自所述第一順序跳過所述元資料的寫入目的地的順序而得。
- 如請求項1所述的記憶體系統,其中所述第一記憶體包括第一緩衝器及第二緩衝器, 所述第一記憶體構成為能夠執行第一讀取動作及第二讀取動作, 所述第一讀取動作是將第一資料自所述儲存區域傳送至所述第一緩衝器中,將所述第一資料自所述第一緩衝器傳送至所述第二緩衝器中,並將傳送至所述第二緩衝器的所述第一資料傳送至所述記憶體控制器; 所述第二讀取動作是將第二資料自所述儲存區域傳送至所述第一緩衝器中,將所述第二資料自所述第一緩衝器傳送至所述第二緩衝器中,將傳送至所述第二緩衝器的所述第二資料傳送至所述記憶體控制器中,並在與將所述第二資料自所述第二緩衝器傳送至所述記憶體控制器中的期間重覆的期間,將第三資料自所述儲存區域傳送至所述第一緩衝器, 所述記憶體控制器構成為: 於判定為不執行所述預取的情況下,使所述第一記憶體執行所述第一讀取動作, 於判定為執行所述預取的情況下,使所述第一記憶體執行所述第二讀取動作。
- 如請求項1所述的記憶體系統,其中 所述記憶體控制器構成為: 基於所述多個第二區段區域各自的物理位址來判定所述第二順序。
- 如請求項1至請求項3中任一項所述的記憶體系統,其中 所述記憶體控制器構成為: 於每次確定所述第二順序時取得所述多個第二區段區域中最新連續地讀取所述第二資料區段的第二區段區域的對,並基於自構成所述對的兩個第二區段區域的各區域讀取所述多個第二資料區段的順序即第四順序是否包含於所述第三順序中,來判定是否執行所述預取。
- 如請求項4所述的記憶體系統,其中 所述記憶體控制器構成為: 包含第二記憶體,所述第二記憶體構成為將所述第四順序是否包含於所述第三順序中的第一判定結果的歷史保持多個, 所述記憶體控制器基於被保持多個的所述歷史來判定是否執行所述預取。
- 如請求項5所述的記憶體系統,其中 所述記憶體控制器構成為: 包含第三記憶體,所述第三記憶體構成為保持具有多個條目的表,所述多個條目分別記錄表示是否執行所述預取的值,並被賦予索引值, 所述記憶體控制器基於在所述多個條目中的被賦予了與所述歷史相等的索引值的條目中所記錄的所述值,來判定是否執行所述預取。
- 如請求項6所述的記憶體系統,其中 所述記憶體控制器構成為: 於判定所述第四順序是否包含於所述第三順序中之後,基於所述第一判定結果來更新在所述多個條目中的被賦予了與所述歷史相等的索引的第一條目中所記錄的值, 於更新所述第一條目中所記錄的所述值之後,基於所述第一判定結果來更新所述歷史, 於更新所述歷史之後,基於在所述多個條目中的被賦予了與更新後的所述歷史相等的索引的第二條目中所記錄的值來判定是否執行所述預取。
- 如請求項7所述的記憶體系統,其中 所述多個條目中的各條目中所記錄的值是飽和計數器, 所述記憶體控制器構成為:基於所述第一判定結果對所述第一條目內的飽和計數器執行加法或減法,並基於所述第二條目內的所述飽和計數器的值與臨限值的比較來判定是否執行所述預取。
- 如請求項8所述的記憶體系統,其中 所述記憶體控制器構成為: 於所述第一判定結果表示所述第四順序包含於所述第三順序中的情況下,對所述第一條目內的所述飽和計數器執行加法, 於所述第一判定結果表示所述第四順序不包含於所述第三順序中的情況下,對所述第一條目內的所述飽和計數器執行減法。
- 如請求項9所述的記憶體系統,其中 所述記憶體控制器於所述第二條目內的所述飽和計數器的值大於所述臨限值的情況下,判定為執行所述預取,於所述第二條目內的所述飽和計數器的值小於所述臨限值的情況下,判定為不執行所述預取。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2022042726A JP2023136816A (ja) | 2022-03-17 | 2022-03-17 | メモリシステム |
JP2022-042726 | 2022-03-17 |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI815476B TWI815476B (zh) | 2023-09-11 |
TW202338802A true TW202338802A (zh) | 2023-10-01 |
Family
ID=88037432
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW111119571A TWI815476B (zh) | 2022-03-17 | 2022-05-26 | 記憶體系統 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11947836B2 (zh) |
JP (1) | JP2023136816A (zh) |
CN (1) | CN116798481A (zh) |
TW (1) | TWI815476B (zh) |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11010076B2 (en) * | 2007-03-29 | 2021-05-18 | Violin Systems Llc | Memory system with multiple striping of raid groups and method for performing the same |
US10656842B2 (en) | 2014-05-30 | 2020-05-19 | Sandisk Technologies Llc | Using history of I/O sizes and I/O sequences to trigger coalesced writes in a non-volatile storage device |
JP6403162B2 (ja) * | 2015-07-23 | 2018-10-10 | 東芝メモリ株式会社 | メモリシステム |
AU2016393275B2 (en) | 2016-02-19 | 2019-10-10 | Huawei Technologies Co., Ltd. | Method and apparatus for accessing flash memory device |
JP6444917B2 (ja) * | 2016-03-08 | 2018-12-26 | 東芝メモリ株式会社 | ストレージシステム、情報処理システムおよび制御方法 |
KR20170109108A (ko) | 2016-03-17 | 2017-09-28 | 에스케이하이닉스 주식회사 | 메모리 장치를 포함하는 메모리 시스템 및 그의 동작 방법 |
WO2019083391A1 (en) * | 2017-10-26 | 2019-05-02 | EMC IP Holding Company LLC | ACCORDING DATA STORAGE EQUIPMENT |
US11295806B2 (en) * | 2019-08-28 | 2022-04-05 | Micron Technology, Inc. | Large file integrity techniques |
-
2022
- 2022-03-17 JP JP2022042726A patent/JP2023136816A/ja active Pending
- 2022-05-26 TW TW111119571A patent/TWI815476B/zh active
- 2022-06-24 CN CN202210728743.5A patent/CN116798481A/zh active Pending
- 2022-09-07 US US17/939,745 patent/US11947836B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
JP2023136816A (ja) | 2023-09-29 |
CN116798481A (zh) | 2023-09-22 |
US20230297275A1 (en) | 2023-09-21 |
TWI815476B (zh) | 2023-09-11 |
US11947836B2 (en) | 2024-04-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101522402B1 (ko) | 반도체 디스크 장치 및 그것의 데이터 관리 방법 | |
US10475518B2 (en) | Memory system, memory system control method, and program | |
US10795827B2 (en) | Adaptive management of intermediate storage | |
US10503653B2 (en) | Memory system | |
US11216368B2 (en) | Memory system for garbage collection using page offsets, invalid offset ratio, sequential ratio, and logical address prediction | |
KR101510120B1 (ko) | 메모리 장치 및 메모리 장치의 관리 방법 | |
CN108027764B (zh) | 可转换的叶的存储器映射 | |
US9454475B2 (en) | Control device, storage device, and data writing method | |
CN113254362A (zh) | 存储设备和存储器控制器的操作方法 | |
CN113076218B (zh) | Nvm芯片读数据错误快速处理方法及其控制器 | |
CN111767235A (zh) | 存储器系统、存储器控制器以及存储器控制器的操作方法 | |
CN111324300B (zh) | 控制器以及控制器的操作方法 | |
US10824570B2 (en) | Memory system | |
CN110532195B (zh) | 存储器系统的工作负荷分簇及执行其的方法 | |
JP5687649B2 (ja) | 半導体記憶装置の制御方法 | |
US20210124529A1 (en) | Memory system | |
TWI815476B (zh) | 記憶體系統 | |
CN112084119A (zh) | 存储装置、主机装置以及操作存储装置和主机装置的方法 | |
JP4661191B2 (ja) | メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法 | |
CN114968856B (zh) | 存储器系统及其操作方法 | |
JP4513782B2 (ja) | メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法 | |
JP7500365B2 (ja) | メモリシステム | |
US20210082508A1 (en) | Memory system and method for controlling memory system | |
JP4539621B2 (ja) | メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法 | |
JP2024043939A (ja) | メモリシステム |