記憶系統
本實施形態是有關記憶系統。
[關聯申請案]
本案是享受以日本專利申請案第2020-153869號(申請日:2020年9月14日)作為基礎申請案的優先權。本案是參照此基礎申請案,包含基礎申請案的全部的內容。
有具備:具備記憶格陣列的記憶體晶片,及對於記憶體晶片進行資料的輸出入的控制器之記憶系統為所人所知。在如此的記憶系統中,期望儘可能地加速從記憶體晶片往控制器的資料的轉送速度。
一實施形態是在於提供一種可提升從記憶體晶片往記憶體控制器的資料的轉送速度之記憶系統。
若根據一實施形態,則具備記憶體晶片、複數的緩衝器及控制器。
記憶體晶片是包含第1平面及第2平面。
第1平面是包含:以第1大小的單位來讀出資料的第1記憶區域、及可儲存第1大小的資料的第1資料鎖存器。
第2平面是包含:以第1大小的單位來讀出資料的第2記憶區域、及可儲存第1大小的資料的第2資料鎖存器。
複數的緩衝器的各者是可儲存第1大小的資料。
控制器是包含錯誤訂正電路。
控制器是當比第1大小更小的第2大小的第1資料跨越第1記憶區域及第2記憶區域而儲存時,在記憶體晶片,使包含被儲存於第1記憶區域的第1資料的第1片斷之第1大小的資料的第2資料儲存於第1資料鎖存器。
而且,控制器是在記憶體晶片,使包含被儲存於第2記憶區域的第1資料的第2片斷之第1大小的資料的第3資料儲存於第2資料鎖存器。
而且,控制器是在記憶體晶片,使被儲存於第1資料鎖存器的第2資料輸出,而將從記憶體晶片輸出的第2資料儲存於複數的緩衝器之中的1個的緩衝器的第1緩衝器。
而且,控制器是在記憶體晶片,使被儲存於第2資料鎖存器的第3資料輸出,而將從記憶體晶片輸出的第3資料儲存於複數的緩衝器之中的與第1緩衝器不同的1個的緩衝器的第2緩衝器。
而且,控制器是結合被儲存於第1緩衝器的第2資料之中的第1片斷及被儲存於第2緩衝器的第3資料之中的第2片斷來產生第4資料,將第4資料輸入至錯誤訂正電路。
以下參照附圖,詳細說明實施形態的記憶系統。另外,並非是藉由此實施形態來限定本發明。
(實施形態)
圖1是表示被連接至主機的實施形態的記憶系統的構成例的圖。如圖1所示般,記憶系統1是可與主機2連接。主機2是例如伺服器、個人電腦或移動型的終端裝置之類的資訊處理裝置。記憶系統1是作為主機2的外部記憶裝置機能。主機2是可對於記憶系統1發送讀出要求或寫入要求等的存取要求。
記憶系統1是具備1個以上的記憶體晶片21及記憶體控制器10。各記憶體晶片21是例如NAND型快閃記憶體,可非揮發地記憶資料。若根據圖1所示的例子,則記憶系統1是具備8個的記憶體晶片21。有將此8個的記憶體晶片21的群記載為NAND記憶體20的情形。另外,在記憶系統1中所具備的記憶體晶片21的數量是不被限定於8個。
記憶系統1是具備1個以上的通道。若根據圖1所示的例子,則記憶系統1是具備通道0(Ch.0)及通道1(Ch.1)的合計2個的通道。然後,各通道的一端是被連接至記憶體控制器10。
並且,在通道0是共通連接4個的記憶體晶片21。在通道1是共通連接與被連接至通道0的4個的記憶體晶片21不同的4個的記憶體晶片21。記憶體控制器10是可彼此獨立控制被連接至通道0的4個的記憶體晶片21及被連接至通道1的4個的記憶體晶片21。
記憶體控制器10是實行主機2與NAND記憶體20之間的資料轉送。作為為此的構成,記憶體控制器10是具備CPU (Central Processing Unit)11、主機介面(主機I/F)12、RAM (Random Access Memory)13、及1個以上的NAND控制器(NANDC)14。在此,記憶體控制器10是具備與通道的數量同數、亦即2個的NANDC14,作為一例。
主機I/F12是經由例如依據SATA(Serial Advanced Technology Attachment)規格、SAS(Serial Attached SCSI)規格、或PCI(Peripheral Components Interconnect) Express (註冊商標)規格的匯流排來與主機2連接的電路。主機I/F12是掌管記憶體控制器10與主機2的通訊。
RAM13是可暫時性地記憶各種的資訊。RAM13是可作為載入為了CPU11管理記憶系統1的控制而使用的各種管理資訊及韌體程式之區域使用。又,RAM13是可作為佇列(queue)、緩衝或快取使用。另外,RAM13的種類是不被限定於特定的種類。記憶體控制器10是可具備DRAM (Dynamic Random Access Memory)、SRAM(Static Random Access memory)或該等的組合。又,記憶體控制器10是可取代RAM13而具備任意的揮發性記憶體。有關被儲存於RAM13的資訊等後述。
2個的NANDC14的1個是被連接至通道0,2個的NANDC14的其他的1個是被連接至通道1。
各通道是包含晶片賦能訊號線CEn、命令閂鎖賦能訊號線CLE、位址閂鎖賦能訊號線ALE、寫入賦能訊號線WEn、一對的讀出賦能訊號線RE/REn、一對的選通訊號線DQS/DQSn、IO訊號線DQ[7:0]及預備忙碌訊號線R/Bn等的訊號線群。晶片賦能訊號線CEn是轉送晶片賦能訊號CEn的訊號線。晶片賦能訊號CEn是用以將成為存取的對象的記憶體晶片CP設為賦能狀態的訊號。IO訊號線DQ[7:0]是轉送命令、位址、資料等的訊號線。在此,IO訊號線DQ是設為具有8位元的位元寬,但IO訊號線DQ的位元寬是不被限定於此。命令閂鎖賦能訊號線CLE是轉送命令閂鎖賦能訊號CLE的訊號線。命令閂鎖賦能訊號CLE是表示IO訊號線DQ[7:0]轉送的訊號為命令。位址閂鎖賦能訊號線ALE是轉送位址閂鎖賦能訊號ALE的訊號線。位址閂鎖賦能訊號ALE是表示IO訊號線DQ[7:0]轉送的訊號為位址。寫入賦能訊號線WEn是轉送寫入賦能訊號WEn的訊號線。寫入賦能訊號WEn是指示記憶體晶片CP取入以IO訊號線DQ[7:0]發送的命令或位址。一對的讀出賦能訊號線RE/REn是轉送讀出賦能訊號RE/REn的訊號線的對。讀出賦能訊號RE/REn是在記憶體控制器10從記憶體晶片21讀出資料時指示資料的輸出時機。一對的選通訊號線DQS/DQSn是轉送選通訊號DQS/DQSn的訊號線的對。選通訊號DQS/DQSn是在記憶體晶片21轉送資料至記憶體控制器10時,指示記憶體晶片21對記憶體控制器10資料取入時機。預備忙碌訊號線R/Bn是用以轉送預備忙碌訊號R/Bn的訊號線。預備忙碌訊號R/Bn是對記憶體控制器10表示記憶體晶片21為可輸入命令的預備狀態或不可輸入命令的忙碌狀態。另外,構成各通道的訊號線是不被限定於該等。
各NANDC14是掌管經由被連接至本身的通道來連接的4個的記憶體晶片21與記憶體控制器10的通訊。具體而言,各NANDC是可對於4個的記憶體晶片21的各者,發送命令集或收發資料。各NANDC14對於4個的記憶體晶片21的各者發送的命令集的例子是後述。
CPU11是根據韌體程式,控制主機I/F12、RAM13及NANDC14,藉此實行包含主機2與NAND記憶體20之間的資料轉送的記憶系統1的控制。
例如,韌體程式是預先被儲存於記憶系統1內的預定位置,例如任一個的記憶體晶片21。在記憶系統1的啟動時,CPU11是將該韌體程式從其記憶體晶片21載入至RAM13。然後,CPU11按照被載入至RAM13的該韌體程式,實行記憶系統1的控制。另外,預先儲存韌體程式的位置是不被限定於上述的例子。又,韌體程式的載入去處是不被限定於上述的例子。
另外,記憶體控制器10是例如可被構成為SoC (System-On-a-Chip)。記憶體控制器10是亦可被構成為FPGA(field-programmable gate array)或ASIC(application specific integrated circuit)。記憶體控制器10是亦可藉由複數的晶片所構成。記憶體控制器10的各機能是可藉由軟體、硬體或該等的組合所實現。
圖2是表示實施形態的記憶體晶片21的構成之一例的模式性的圖。若根據本圖所示的例子,則記憶體晶片21是具備:被分割成2個的子陣列(subarray)23的記憶格陣列22、2個的存取電路24及2個的資料鎖存器25。各子陣列23是與2個的存取電路24之中的1個及2個的資料鎖存器25的其中的1個一起構成1個的並列動作要素。亦即,記憶體晶片21是具備2個的並列動作要素。2個的並列動作要素是可彼此獨立動作。各並列動作要素是被稱為平面(Plane)。各記憶體晶片21內的各平面是藉由平面號碼來識別。
藉由存取電路24及資料鎖存器25按每個平面設置,可在2個的平面的各者中,寫入、讀出及抹除對於各子陣列23獨立實行。
在此是使用平面號碼0來將各記憶體晶片21所具備的2個的平面之中的1個記載為平面#0(Plane #0)。又,使用平面號碼1來將各記憶體晶片21所具備的2個的平面之中的其他的平面記載為平面#1(Plane #1)。
另外,各記憶體晶片21所具備的平面的數量是不被限定於2個。
各子陣列23是具備複數的區塊BLK。區塊BLK是實行抹除的最小單位的記憶區域。亦即,被儲存於1個的區塊BLK的全部的資料是被一起抹除。
存取電路24是包含行解碼器、列解碼器及讀出放大器等。存取電路24是可對於屬於與本身同平面的子陣列23實行寫入、讀出及抹除。
另外,將存取電路24把從記憶體控制器10送來的資料寫入至子陣列23的動作記載為寫入動作。又,將存取電路24從子陣列23讀出資料而送至記憶體控制器10的動作記載為讀出動作。又,將存取電路24抹除子陣列23內的資料的動作記載為抹除動作。
資料鎖存器25是暫時性地儲存被寫入至屬於與本身同平面的子陣列23的資料及從與本身同子陣列23讀出的資料之記憶元件群。在各平面中,存取電路24是將從記憶體控制器10送來而被儲存於資料鎖存器25的寫入對象的資料寫入至子陣列23,或將從子陣列23讀出的資料儲存於資料鎖存器25。被儲存於資料鎖存器25之從子陣列23讀出的資料是按照之後從記憶體控制器10接收的預定的命令集(後述的資料輸出命令集)來轉送至記憶體控制器10。
將讀出動作之中的從子陣列23讀出資料至資料鎖存器25的處理記載為感測處理。又,將讀出動作之中的從資料鎖存器25轉送資料至記憶體控制器10的處理記載為資料輸出處理。
圖3是表示實施形態的區塊BLK的電路構成的圖。另外,各區塊BLK是具有同一的構成。區塊BLK是例如具有4個的串單元SU0~SU3。各串單元SU是包含複數的NAND串26。
NAND串26的各者是例如包含14個的記憶格電晶體MT (MT0~MT13)及選擇電晶體ST1、ST2。記憶格電晶體MT是具備控制閘極及電荷蓄積層,非揮發地保持資料。而且,14個的記憶格電晶體MT(MT0~MT13)是被串聯於選擇電晶體ST1的源極與選擇電晶體ST2的汲極之間。另外,記憶格電晶體MT是可為在電荷蓄積層使用絶縁膜的MONOS型,或亦可為在電荷蓄積層使用導電膜的FG型。又,NAND串26內的記憶格電晶體MT的個數是不被限定於14個。
串單元SU0~SU3的各者的選擇電晶體ST1的閘極是分別連接至選擇閘極線SGD0~SGD3。相對於此,串單元SU0~SU3的各者的選擇電晶體ST2的閘極是例如共通連接至選擇閘極線SGS。串單元SU0~SU3的各者的選擇電晶體ST2的閘極是亦可在每個串單元SU連接至不同的選擇閘極線SGS0~SGS3。位於同一區塊BLK內的記憶格電晶體MT0~MT13的控制閘極是分別共通連接至字元線WL0~WL13。
位於串單元SU內的各NAND串26的選擇電晶體ST1的汲極是分別被連接至不同的位元線BL(BL0~BL(L-1),L是2以上的自然數)。又,位元線BL是在複數的區塊BLK間共通連接位於各串單元SU內的1個的NAND串26。又,各選擇電晶體ST2的源極是共通連接至源極線SL。
亦即,串單元SU是被連接至不同的位元線BL,且被連接至相同的選擇閘極線SGD的NAND串26的集合。並且,區塊BLK是將字元線WL設為共通的複數的串單元SU的集合。而且,記憶格陣列22是將位元線BL設為共通的複數的區塊BLK的集合。
如前述般,資料的抹除是以區塊BLK單位來實行。
又,寫入動作及讀出動作(具體而言是感測處理)是對於被連接至1個的串單元SU的1條的字元線WL之記憶格電晶體MT一起進行。以下,將寫入動作及讀出動作(具體而言是感測處理)時一起被選擇的記憶格電晶體MT的群稱為「記憶格群組MCG」。而且,將被寫入至1個的記憶格群組MCG中所含的記憶格電晶體MT的各者或被讀出(換言之感測)的1位元的資料的集合稱為「頁」。
有被構成可在各記憶格電晶體MT儲存複數位元的值的情況。例如,各記憶格電晶體MT可儲存n(n≧2)位元的值的情況,每字元線WL(記憶格群組MCG)的記憶容量是相等於n頁份的大小。在此,說明有關在各記憶格電晶體MT儲存3位元的值的方式,作為一例。若根據此方式,則在各字元線保持3頁份的資料。
圖4是表示實施形態的資料編碼及臨界值電壓分佈之一例的圖。橫軸是表示記憶格電晶體MT的臨界值電壓。圖4所示的8個的蓋狀物是模式性地表示臨界值電壓分佈者。8個的臨界值電壓分佈是分別為臨界值電壓區域,亦記載狀態(state)。8個的狀態是對應於3位元的資料值。若根據本圖的例子,則Er狀態是對應於“111”的資料值,A狀態是對應於“110”的資料值,B狀態是對應於“100”的資料值,C狀態是對應於“000”的資料值,D狀態是對應於“010”的資料值,E狀態是對應於“011”的資料值,F狀態是對應於“001”的資料值,G狀態是對應於“101”的資料值。以各資料值的前頭的位數作為MSB(Most Significant Bit)。並且,以各資料值的末尾的位數作為LSB(Least Significant Bit)。另外,狀態與資料值的對應關係是不被限定於此。
各記憶格電晶體MT的臨界值電壓是被控制為屬於8個的狀態之中的任一個。各記憶格電晶體MT的臨界值電壓是藉由抹除動作來設定成Er狀態,藉由寫入動作來設定成對應於A狀態~G狀態之中的資料值的狀態。
並且,在感測處理中,藉由臨界值電壓與幾個判定電壓的比較,特定各記憶格電晶體MT的臨界值電壓所屬的狀態。然後,讀出對應於被特定的狀態的資料值。圖4的Vra、Vrb、Vrc、Vrd、Vre、Vrf及Vrg的組合是判定電壓之一例。
將被記憶於1條的字元線WL(記憶格群組MCG)的3頁的資料之中的LSB的集合記載為低位頁。將3頁的資料之中的MSB的集合記載為上級頁。將3頁的資料之中的LSB與MSB之間的位元的集合記載為中間頁。
另外,實施形態的資料編碼是不被限定於上述的例子。又,被儲存於各記憶格電晶體MT的資料的大小是不被限定於3位元。
圖5是表示在實施形態的讀出動作時,在NANDC14與被連接至該NANDC14的記憶體晶片21之間收發的訊號之一例的時間圖(timing chart)。另外,在本圖中描繪構成連接NANDC14與記憶體晶片21的通道之訊號線群的其中之一對的讀出賦能訊號線RE/REn、一對的選通訊號DQS/ DQSn、IO訊號線DQ[7:0]及預備忙碌訊號線R/Bn的各訊號線的狀態。
NANDC14是首先經由IO訊號線DQ[7:0]依序發送頁指定命令C0、讀出命令C1、位址資訊ADD及感測開始命令C2。藉此,指示感測處理的對象的頁及感測處理的開始。將由頁指定命令C0、讀出命令C1、位址資訊ADD及感測開始命令C2所成的組合記載為感測命令集。感測命令集是在被連接至記憶體晶片21的預備忙碌訊號線R/Bn為預備狀態的期間發送。
在感測命令集的發送時,NANDC14是將晶片賦能訊號CEn維持於主動(active)狀態(L等級)。在頁指定命令C0、讀出命令C1及感測開始命令C2的發送時,NANDC14是將命令閂鎖賦能訊號CLE維持於主動狀態(H等級)。在位址資訊ADD的發送時,NANDC14是將位址閂鎖賦能訊號ALE維持於主動狀態(H等級)。在感測命令集的發送時,NANDC14是切換(toggle)寫入賦能訊號WEn。
在感測命令集中,頁指定命令C0是指定被儲存於1個的記憶格群組MCG的1頁以上的頁的資料之中的1頁的命令。讀出命令C1是表示一連串的命令的類別為讀出動作用者。位址資訊ADD是包含表示記憶格群組MCG的行位址,該記憶格群組MCG是包含感測對象的頁。藉由頁指定命令C0與含在位址資訊ADD的行位址的組合,子陣列23所提供的記憶區域之中的感測對象的頁會被唯一指定。又,位址資訊ADD是包含頁內的位置,亦即表示位元線的位置的列位址。然而,該列位址是在感測命令集中沒有意義。感測開始命令C2是指示感測處理的開始的命令。
一旦記憶體晶片21接收感測開始命令C2,則開始感測處理。在感測處理中,存取電路24是從藉由頁指定命令C0及行位址的組合所唯一決定的頁讀出1頁份的資料。存取電路24是將被讀出的1頁份的資料儲存於資料鎖存器25。
一旦感測處理開始,則記憶體晶片21是使預備忙碌訊號線R/Bn的狀態從預備狀態遷移至忙碌狀態。記憶體晶片21是一旦感測處理結束,則使預備忙碌訊號線R/Bn的狀態從忙碌狀態遷移至預備狀態。亦即,在圖5所描繪的時間tR
,實行感測處理。NANDC14是發送感測開始命令C2之後,藉由監視預備忙碌訊號線R/Bn的狀態,可識別感測處理完了的情形,亦即從感測處理的對象的頁讀出1頁份的資料至資料鎖存器25的情形。
感測處理之後,NANDC14是可使資料輸出處理實行於記憶體晶片21。NANDC14為了使資料輸出處理實行於記憶體晶片21,而經由IO訊號線DQ[7:0]依序發送資料輸出命令C3、位址資訊ADD及準備命令C4。將資料輸出命令C3、位址資訊ADD及準備命令C4的組合記載為資料輸出命令集。
在資料輸出命令集的發送時,NANDC14是將晶片賦能訊號CEn維持於主動狀態(L等級)。在資料輸出命令C3及準備命令C4的發送時,NANDC14是將命令閂鎖賦能訊號CLE維持於主動狀態(H等級)。在位址資訊ADD的發送時,NANDC14是將位址閂鎖賦能訊號ALE維持於主動狀態(H等級)。在資料輸出命令集的發送時,NANDC14是切換寫入賦能訊號WEn。
資料輸出命令C3是指示資料輸出處理的命令。位址資訊ADD是包含列位址及行位址。列位址是表示被儲存於資料鎖存器25的1頁份的資料之中的資料輸出處理的對象的資料的前頭位置。可使用與含在感測命令集的行位址相等的值作為行位址。
準備命令C4是指示資料輸出處理的準備的命令。資料輸出處理的對象的資料是從資料鎖存器25每8位元分割作為8位元寬的資料輸出至NANDC14。記憶體晶片21是按照準備命令C4來準備依據列位址而指定的資料輸出處理的對象的資料之中的前頭的8位元的資料的輸出。
NANDC14是發送準備命令C4之後(更正確是從對應於準備命令C4的發送之寫入賦能訊號WEn的切換的時機),一旦作為設計值而定的時間tWHR2
經過,則開始一對的讀出賦能訊號RE/REn的切換。記憶體晶片21是藉由使一對的讀出賦能訊號RE/REn延遲來產生一對的選通訊號DQS/ DQSn。記憶體晶片21是輸出被產生的一對的選通訊號DQS/DQSn。記憶體晶片21是將以依據列位址而指定的位置作為前頭的資料輸出對象的資料予以從資料鎖存器25來各8位元地與一對的選通訊號DQS/DQSn同步輸出至IO訊號線DQ[7:0]。NANDC14是在與一對的選通訊號DQS/DQSn同步的時機取入從記憶體晶片21輸出的資料。藉此,資料輸出處理的對象的資料會從記憶體晶片21轉送至NANDC14。亦即,實行資料輸出處理。
資料輸出處理是通常以群集單位來實行。將以群集單位所實行的資料輸出處理的模式記載為群集轉送模式。
群集是具有藉由記憶體控制器10的管理的單位的大小之資料。所謂管理,其一例,如邏輯位址與物理位址的對應的管理。
記憶系統1是對於主機2提供邏輯位址空間。主機2是在對於記憶系統1指定存取對象的資料的位置時,使用邏輯位址空間內的位置資訊。邏輯位址空間內的位置資訊是被稱為邏輯位址。記憶體控制器10是將NAND記憶體20的記憶區域映射(mapping)至邏輯位址空間。將藉由NAND記憶體20的記憶區域所構成的位址空間記載為物理位址空間。將表示物理位址空間的1個的位置的位置資訊記載為物理位址。
邏輯位址空間與NAND記憶體20的記憶區域的關係是作為翻譯資訊(後述的翻譯資訊131)管理。具體而言,邏輯位址空間是被分割成具有均一大小的複數的單位區域。記憶體控制器10是在邏輯位址空間內的每個單位區域,將邏輯位址與物理位址建立對應,而記錄於翻譯資訊131。另外,物理位址是在其一部分包含行位址及列位址。記憶體控制器10是每邏輯位址與物理位址的對應關係改變,更新翻譯資訊131。而且,群集是意指1個的單位區域份的資料。
群集轉送模式是發送資料輸出命令集中表示資料輸出處理的對象的群集的位置的列位址。當藉由1次的感測處理來儲存於資料鎖存器25的1頁份的資料包含複數個資料輸出處理的對象的群集時,為了讀出複數的資料輸出處理的對象的群集的各者,而以群集單位實行資料輸出命令集的發送及一對的讀出賦能訊號RE/REn的切換。
在此,例如,可思考在平面#0儲存讀出對象的群集的前半部分(first part),在平面#1儲存讀出對象的群集的後半部分(second part)的情況。如此的情況,進行包含讀出對象的群集的前半部分的頁及包含讀出對象的群集的後半部分的頁的感測處理之後,需要依序持續實行讀出對象的群集的前半部分的資料輸出處理及讀出對象的群集的後半部分的資料輸出處理。將如此跨越2個的平面而儲存的群集記載為跨群集(straddling cluster)。
當讀出對象的群集為跨群集時,需要依序持續實行讀出對象的群集的前半部分的資料輸出處理及讀出對象的群集的後半部分的資料輸出處理的限制是起因於進行錯誤訂正的電路(後述的ECC(Error-Correcting Code)電路145)是需要以ECC框架單位來輸入資料。在本實施形態中,ECC框架的大小是與群集的大小相等。
更具體而言,群集是在被送至記憶體晶片21之前藉由ECC電路145(或其他的構成要素)來實施利用錯誤訂正符號的編碼。為了對於被編碼的群集進行錯誤訂正,需要從前頭依序將被編碼的群集輸入至ECC電路145。若從被編碼的群集一部分的資料不足,或被編碼的群集的一部分與其他的一部分的順序調換,則在ECC電路145中無法實行被期待的錯誤訂正。在群集轉送模式中,NANDC14是以取得的順序來將從記憶體晶片21取得的資料輸入至ECC電路145。因此,當讀出對象的群集跨越2個的平面而儲存時,若不依序進行讀出對象的群集的前半部分的資料輸出處理及讀出對象的群集的後半部分的資料輸出處理,則無法將原本的群集從前頭依序復元而輸入至ECC電路145。因此,產生前述的限制。
亦即,無法以和上述順序相反的順序實行讀出對象的群集的前半部分的資料輸出處理及讀出對象的群集的後半部分的資料輸出處理,或之間夾著其他的處理(例如其他的群集的資料輸出處理)。又,至讀出對象的群集的前半部分的資料輸出處理完了為止,平面#0的資料鎖存器25會藉由包含讀出對象的群集的前半部分的頁而被佔有。因此,至讀出對象的群集的前半部分的資料輸出處理完了為止,無法在平面#0中實行其次的感測處理。又,至讀出對象的群集的後半部分的資料輸出處理完了為止,平面#1的資料鎖存器25會藉由包含讀出對象的群集的後半部分的頁而被佔有。因此,至讀出對象的群集的後半部分的資料輸出處理完了為止,無法在平面#1中實行其次的感測處理。
如此,當跨群集為讀出對象時,需要等候1個的平面的群集的前半部分的資料輸出處理與其他的平面的群集的後半部分的資料輸出處理。亦即,需要使原本分別獨立動作的2個平面在跨群集的資料輸出處理時聯合動作。因此,產生無法使2個的平面並列動作的期間,從記憶體晶片21往記憶體控制器10的資料轉送的效率惡化。
於是,實施形態是在NANDC14中設有複數個可儲存1頁份的資料的緩衝器(後述的等候緩衝器147)。NANDC14被構成為可將分別被儲存於2個的平面的資料鎖存器25的1頁份的資料予以緩衝於複數的等候緩衝器147之中的2個。
藉此,只要將包含讀出對象的群集的前半部分的頁從平面#0的資料鎖存器25轉送至等候緩衝器147之中的1個,平面#0便可不等候讀出對象的群集的後半部分的資料輸出處理,推進其次的處理,例如別的頁的感測處理。又,只要將包含讀出對象的群集的後半部分的頁從平面#1的資料鎖存器25轉送至等候緩衝器147之中的別的1個,平面#1便可不等候讀出對象的群集的前半部分的資料輸出處理,推進其次的處理,例如別的頁的感測處理。
亦即,即使跨群集為讀出對象的情況,也不需要為了該跨群集的資料輸出處理而等候平面#0的資料輸出處理及平面#1的資料輸出處理,可使平面#0及平面#1並列地動作。因此,可抑制從記憶體晶片21往記憶體控制器10的資料轉送的效率的惡化。有關使平面#0及平面#1並列地動作的例子是後述。
另外,在實施形態中,從包含讀出對象的群集的一部分的頁的資料鎖存器25往等候緩衝器147的轉送是藉由頁單位的資料輸出處理來實現。將以頁單位來實行的資料輸出處理的模式記載為頁轉送模式。
另外,若根據圖5所示的時間圖,則NANDC14是依據一對的讀出賦能訊號RE/REn的切換的次數來指定資料輸出處理的對象的資料的大小。亦即,NANDC14是在群集轉送模式中,僅以對應於群集的大小的次數來切換一對的讀出賦能訊號RE/REn,藉此實現群集單位的轉送。又,NANDC14是在頁轉送模式中,僅以對應於頁的大小的次數來切換一對的讀出賦能訊號RE/REn,藉此實現頁單位的轉送。資料輸出處理的對象的資料的大小的指定的方法是不只被限定於利用一對的讀出賦能訊號RE/REn的切換的次數的方法。
圖6是用以說明在群集轉送模式及頁轉送模式的各者中實施形態的IO訊號線DQ[7:0]轉送的訊號的不同的圖。在此是說明有關藉由4個的群集CL0,CL1,CL2,CL3所構成的頁之中的4個的群集CL0,CL1,CL2,CL3作為讀出的對象的情況,作為一例。
群集轉送模式是上述頁的感測處理實行後,實行以群集CL0,CL1,CL2,CL3的各者作為對象的4次的資料輸出處理。具體而言,NANDC14是發送以群集CL0作為資料輸出處理的對象的資料輸出命令集,然後,藉由切換一對的讀出賦能訊號RE/REn來從記憶體晶片21接收群集CL0。NANDC14是發送以群集CL1作為資料輸出處理的對象的資料輸出命令集,然後,藉由切換一對的讀出賦能訊號RE/REn來從記憶體晶片21接收群集CL1。NANDC14是發送以群集CL2作為資料輸出處理的對象的資料輸出命令集,然後,藉由切換一對的讀出賦能訊號RE/REn來從記憶體晶片21接收群集CL2。NANDC14是發送以群集CL3作為資料輸出處理的對象的資料輸出命令集,然後,藉由切換一對的讀出賦能訊號RE/REn來從記憶體晶片21接收群集CL3。
相對於此,頁轉送模式是實行以藉由4個的群集CL0,CL1,CL2,CL3所構成的頁作為對象的1次的資料輸出處理。具體而言,NANDC14是發送以上述頁作為資料輸出處理的對象的資料輸出命令集,然後,藉由切換一對的讀出賦能訊號RE/REn來從記憶體晶片21接收上述頁。
在群集轉送模式中,對於1頁之中的複數的群集分別發送列位址不同的資料輸出命令集。資料輸出命令集的1次的發送所要的時間是不論轉送模式,為均一。因此,相較於僅1次的資料輸出命令集被使用的頁轉送模式,群集轉送模式是資料輸出命令集的發送所要的時間變多。因此,在1頁中含有複數個作為讀出對象的群集時,命令集的發送所要的時間與資料的轉送所要的時間的合計是有使用頁轉送模式要比群集轉送模式更短的可能性。若根據圖6所示的例子,則相較於以群集轉送模式來轉送4個的群集的情況,以頁轉送模式來轉送包含該4個的群集的1頁的情況較為命令集的發送所要的時間與資料的轉送所要的時間的合計短讀取。
在實施形態中,按照1頁中所含的讀出對象的群集的數量來選擇轉送模式。有關轉送模式的選擇方法的具體例是後述。
可思考各種的事例,作為跨群集發生的事例。在實施形態中,說明採用碼率(code rate)可變的錯誤訂正符號,作為ECC電路145所使用的錯誤訂正符號的事例,作為一例。碼率是將編碼前的資料的大小以編碼後的資料的大小來除算而取得的資訊。碼率越小,被編碼的群集中所含的冗長資料的量越多,藉此被編碼的群集的大小會增大。並且,碼率越小,錯誤訂正的能力越提升。
圖7是表示在採用碼率可變的錯誤訂正符號的實施形態的記憶系統1中,被儲存於平面#0及平面#1的各群集的位置的模式性的圖。在本圖所示的例子中,藉由包含平面#0的3頁(低位頁、中間頁及上級頁)及平面#1的3頁(低位頁、中間頁及上級頁)之6頁份的記憶區域來構成邏輯性的記憶區域,對於該邏輯性的記憶區域描繪被儲存的群集的位置。另外,將此邏輯性的記憶區域記載為超級頁。
在圖7的左端所描繪的N的值是表示可被儲存於超級頁的群集的最大數,與碼率對應。碼率越小,被編碼的群集的大小越大,因此可被儲存於超級頁的群集的最大數,亦即N的值會變小。又,圖7所示的例子是在各群集附有以CLX(X是0~23的整數)來表示的ID。
被儲存於1超級頁的N個的群集是具有依據N的值來決定的均一的大小。在此,超級頁是藉由6頁份的記憶區域所構成,因此若N的值為6的倍數,則跨群集是不發生。相反的,若N的值不為6的倍數,則發生跨群集。
例如設定「24」作為N的值時,由於N的值是6的倍數,因此跨群集是不發生。
例如設定「23」作為N的值時,由於N的值不是6的倍數,因此發生跨群集。在圖7所示的例子中,群集CL3、群集CL7、群集CL11、群集CL15及群集CL19會跨越2個的平面#0、#1而儲存。
設定「22」、「21」、「20」或「19」作為N的值時也發生跨群集。設定「18」作為N的值時,跨群集不發生。
N的值的變更是可在任意的時機實施。例如,基於各種的因素,有記憶格陣列22的可靠度降低的情況。當記憶格陣列22的可靠度降低時,記憶體控制器10為了提高錯誤訂正的能力,可將編碼時的碼率(code rate)變更成比現狀的設定值更小的值。碼率的變更,在此是藉由N的值的變更來實行。其一例,設定「24」作為N的值的初期值。而且,可按照記憶格陣列22的使用的狀況、被錯誤訂正的位元的數量的增加或其他的指標來實行N的值的變更。另外,N的值的變更方法及N的值是不被限定於上述所示的例子。
圖8是表示被儲存於實施形態的RAM13的資訊之一例的模式性的圖。如本圖所示般,在RAM13是儲存有翻譯資訊131、群集格式資訊132及資料鎖存器資訊133。並且,在RAM13是設有登錄佇列134。
翻譯資訊131是如前述般,表示邏輯位址與物理位址的對應關係的資訊。
群集格式資訊132是表示在每個N的值,被儲存於超級頁的各群集是否為跨群集的資訊。群集格式資訊132是包含不是跨群集的群集的大小及前頭的列位址。又,群集格式資訊132是包含跨群集的前半部分的大小、跨群集的前半部分的前頭的列位址、跨群集的後半部分的大小、及跨群集的後半部分的前頭的列位址(亦即零號)。
資料鎖存器資訊133是表示被儲存於各記憶體晶片21的各資料鎖存器25的頁之資訊的群。資料鎖存器資訊133是可具有表形式的資料構造,或亦可具有與表形式不同的資料構造。資料鎖存器資訊133是被構成為藉由記憶體晶片21及平面的指定,可得知被儲存於所被指定的記憶體晶片21的被指定的平面所屬的資料鎖存器25的頁。資料鎖存器資訊133是記錄有表示該頁的物理位址(行位址),作為表示頁的資訊。另外,表示頁的資訊是不被限定於此。
例如,表示頁的資訊是在該頁的感測處理的時機被記錄於資料鎖存器資訊133。又,被記錄於資料鎖存器資訊133的表示頁的資訊是在寫入對象的資料被儲存於儲存該頁的資料鎖存器25的時機、或對於與該資料鎖存器25同記憶體晶片21且屬於同平面的子陣列23之抹除動作的時機,從資料鎖存器資訊133削除。依據此更新規則,資料鎖存器資訊133的內容是成為反映各資料鎖存器25的最新的狀況者。另外,資料鎖存器資訊133的內容的更新規則是不被限定於此。資料鎖存器資訊133的內容是亦可伴隨若干的遲滯從最新的狀況更新。
在登錄佇列134是登錄有指示群集單位的讀出之第1讀出指示。例如,從主機2接收讀出要求時,記憶體控制器10(例如CPU11)是藉由翻譯資訊131來將讀出要求中所含的邏輯位址值翻譯成群集單位的物理位址值。依讀出要求而被要求的資料為藉由複數的群集來構成時,記憶體控制器10是按每個群集取得物理位址值。然後,記憶體控制器10是按每個藉由翻譯而取得的物理位址值,亦即按每個群集產生第1讀出指示,將產生的全部的第1讀出指示登錄於登錄佇列134。在各第1讀出指示是紀錄有藉由翻譯而取得的物理位址值。各第1讀出指示中所含的物理位址值是表示讀出對象的群集的位置。
CPU11是根據被儲存於登錄佇列134的第1讀出指示,以群集單位來產生第2讀出指示。第2讀出指示是使讀出動作對於記憶體晶片21實行的給NANDC14的指示。第2讀出指示是包含表示讀出對象的群集的位置之物理位址值。又,第2讀出指示是附加有感測處理的實行的要否等的資訊。更具體而言,第2讀出指示是具備:表示讀出對象的群集的位置的物理位址值、表示是否實行感測處理的旗標、表示讀出的對象的群集是否為跨群集的跨旗標(straddle flag)、及表示讀出模式的讀出模式旗標。
實施形態的讀出模式是包含隨機讀出及循序讀出的2個的模式,作為一例。循序讀出是在從1頁(換言之1個的平面的1頁)讀出2個以上的群集時被指定的讀出模式。隨機讀出是不從1頁(換言之1個的平面的1頁)讀出2個以上的群集時被指定的讀出模式。讀出模式是不被限定於僅隨機讀出及循序讀出。
當含在第2讀出指示的讀出模式旗標為顯示隨機讀出時,NANDC14是以群集轉送模式來實行資料輸出處理。當含在第2讀出指示的讀出模式旗標為顯示循序讀出時,NANDC14是能以頁轉送模式來實行資料輸出處理。
在登錄佇列134是不僅第1讀出指示,亦可儲存寫入等其他的處理的指示。或,其他的處理的指示是亦可被儲存於與登錄佇列134不同的別的佇列。以下,有關登錄佇列134是只言及有關第1讀出指示,有關其他的處理的指示是不言及。
圖9是表示實施形態的NANDC14的更詳細的構成之一例的模式性的圖。NANDC14是具備:定序器141、等候緩衝器群142、隨機緩衝器143、等候緩衝器管理器144及ECC電路145。
定序器141是具備指示佇列146。在指示佇列146是藉由CPU11來根據第1讀出指示而產生的第2讀出指示會加入。亦即,CPU11是根據第1讀出指示來產生第2讀出指示,將產生的第2讀出指示儲存於連接記憶體晶片21的NANDC14的指示佇列146,該記憶體晶片21是儲存有2個的NANDC14之中的讀出對象的群集。
定序器141是從被儲存於指示佇列146的1個以上的第2讀出指示,根據通道的空出狀況及對應於讀出模式旗標的等候緩衝器群142或隨機緩衝器的空出狀況來選擇1個的第2讀出指示。定序器141是可按照選擇的第2讀出指示來發送對於記憶體晶片21的命令集,或切換一對的讀出賦能訊號線RE/REn。
一對的讀出賦能訊號線RE/REn的切換的次數是在群集轉送模式及頁轉送模式不同。當第2讀出指示的讀出模式旗標為顯示循序模式時,定序器141是選擇頁轉送模式,只對應於頁的大小的次數切換一對的讀出賦能訊號線RE/REn。當第2讀出指示的讀出模式旗標為顯示隨機模式時,定序器141是選擇隨機模式,只對應於群集的大小的次數切換一對的讀出賦能訊號線RE/REn。
另外,群集的大小是按照N的值而不同。被儲存於指示佇列146的第2讀出指示是與以某些的方法來記載於群集格式資訊132的資訊建立對應。定序器141是可根據從指示佇列146讀出的第2讀出指示來參照群集格式資訊132而得知N的值或群集的大小等。又,當資料輸出處理的對象的群集為相當於跨群集時,定序器141是可根據群集格式資訊132,得知該群集的前半部分的前頭的列位址及大小、該群集的後半部分的前頭的列位址及大小。
定序器141特定N的值或群集的大小等的方法是不被限定於上述的例子。CPU11是亦可將N的值或群集的大小等記錄於第2讀出指示。又,CPU11是當資料輸出處理的對象的群集為相當於跨群集時,亦可將該群集的前半部分的前頭的列位址及大小、該群集的後半部分的前頭的列位址及大小記錄於第2讀出指示。
定序器141是可對等候緩衝器群142或隨機緩衝器143,指定藉由資料輸出處理所取得的資料的儲存去處,或指示該資料的儲存,或指示往ECC電路145的資料的輸出。以下,將儲存藉由資料輸出處理所取得的資料之指示記載為緩衝器儲存指示。又,將往ECC電路145的資料的輸出之指示記載為緩衝器輸出指示。
NANDC14是具備未圖示的緩衝器管理器,其控制對於等候緩衝器群142的資料的輸出入及對於隨機緩衝器143的資料的輸出入。定序器141所發行的資料的儲存去處的指定、緩衝器儲存指示及緩衝器輸出指示是被送至該緩衝器管理器。該緩衝器管理器是解釋資料的儲存去處的指定、緩衝器儲存指示及緩衝器輸出指示。藉此,該緩衝器管理器是控制複數的等候緩衝器147及隨機緩衝器143之間的資料的儲存去處的切換、往資料的儲存去處的資料的儲存、及來自資料的儲存去處的資料的輸出。以下,為了使說明簡單化,說明等候緩衝器群142及隨機緩衝器143接收定序器141所發行的資料的儲存去處的指定、緩衝器儲存指示及緩衝器輸出指示,而實行根據接收的該等的資訊的動作。
等候緩衝器群142是具備複數的等候緩衝器147。等候緩衝器147是例如以SRAM所構成。在此,等候緩衝器群142是具備8個的等候緩衝器147,作為一例。各等候緩衝器147是至少具備1頁份的容量。亦即,在各等候緩衝器147是可儲存被讀出至1個的資料鎖存器25的1頁份的資料。在以頁轉送模式來實行資料輸出處理時,從記憶體晶片21取得的1頁份的資料是被儲存於藉由8個的等候緩衝器147之中的定序器141所選擇的等候緩衝器147。另外,8個的等候緩衝器147是依據0號~7號的緩衝器號碼來識別。
隨機緩衝器143是至少具備1群集份的容量。隨機緩衝器143是被配置於ECC電路145與通道之間。由於隨機緩衝器143具備1群集以上的容量,因此通道的用法的自由度大。隨機緩衝器143是例如以SRAM所構成。以群集轉送模式來實行資料輸出處理時,從記憶體晶片21取得的1群集份的資料是被儲存於隨機緩衝器143。
等候緩衝器管理器144是實行8個的等候緩衝器147的空出狀況的管理。更具體而言,等候緩衝器管理器144是具備分別與8個的等候緩衝器147的任一個一對一對應的8個的計數器148,操作8個的計數器148的值。
如前述般,在附上表示循序模式的讀出模式旗標之第2讀出指示的實行時,可以頁單位來實行資料輸出處理。更詳細是包含作為資料輸出處理的對象的群集之頁已被儲存於8個的等候緩衝器147的任一個時,資料輸出處理會被省略,可從儲存該頁的等候緩衝器147取得資料輸出處理的對象的群集。包含作為資料輸出處理的對象的群集之頁未被儲存於8個的等候緩衝器147的任一個時,該頁是藉由頁單位的資料輸出處理來從記憶體晶片21取得而被儲存於8個的等候緩衝器147的任一個。該情況,8個的等候緩衝器147之中的非使用中的等候緩衝器147會作為該頁的儲存去處選擇。8個的計數器148的各者是被使用在對應的等候緩衝器147為使用中或非使用中的判定。
8個的計數器148的初期值是被設為0。某計數器148的值為0是意思對應於該計數器148的等候緩衝器147為非使用中。在附上表示循序模式的讀出模式旗標之第2讀出指示時,首先,選擇1個非使用中的等候緩衝器147。然後,一旦開始該第2讀出指示的實行,則等候緩衝器管理器144是只將對應於被選擇的等候緩衝器147之計數器148的值增加1。藉此,被選擇的等候緩衝器147是形成被視為使用中的狀態。然後,依據該第2讀出指示包含作為讀出的對象的群集之頁是從記憶體晶片21取得,被取得的頁是被儲存於所被選擇的等候緩衝器147。
從與被視為使用中的狀態的等候緩衝器147中所儲存的頁相同的頁取得的別的群集的第2讀出指示,亦即附上表示循序模式的讀出模式旗標之第2讀出指示的實行開始時,等候緩衝器管理器144是只將對應於該等候緩衝器147的計數器148的值只更增加1。然後,依據該第2讀出指示作為讀出的對象的群集不是從記憶體晶片21藉由資料輸出處理來取得,而是從等候緩衝器147讀出送至ECC電路145。
又,等候緩衝器管理器144是一旦從等候緩衝器147往ECC電路145的群集的輸出完了,則只將對應於該等候緩衝器147的計數器148的值減少1。
藉由如上述般的計數器148的操作,當被儲存於等候緩衝器147的頁被推定為包含之後被輸出的群集時,對應於該等候緩衝器147的計數器148的值是非零,藉此,該等候緩衝器147是成為使用中的狀態。亦即,該等候緩衝器147的內容是自別的頁的覆蓋保護。當被儲存於等候緩衝器147的頁被推定為未含之後被輸出的群集時,對應於該等候緩衝器147的計數器148的值為零,藉此,該等候緩衝器147是成為非使用中的狀態,亦即該等候緩衝器147是成為可作為別的頁的儲存用的緩衝器選擇的狀態。
ECC電路145是對於從記憶體晶片21取得的群集,亦即藉由錯誤訂正符號來編碼的群集,實行利用該錯誤訂正符號的錯誤訂正。將被輸入至ECC電路145的資料的單位記載為ECC框架。ECC框架是可與群集相等,或亦可與群集不相等。當ECC框架不與群集相等時,ECC框架是藉由複數的群集來構成。另外,在此,ECC框架是設為與群集相等,作為一例。
如前述般,當附有循序模式的讀出模式旗標的第2讀出指示被實行時,包含該第2讀出指示所指定的群集的頁會從記憶體晶片21取得而儲存於任一個的等候緩衝器147。然後,該等候緩衝器147是按照來自定序器141的緩衝器輸出指示,將被儲存於本身的頁之中的輸出對象的群集輸出至ECC電路145。定序器141是對於等候緩衝器群142,發送輸出對象的群集的群集資訊,作為緩衝器輸出指示。群集資訊是包含輸出對象的群集是否為跨群集。當輸出對象的群集為跨群集時,群集資訊是包含跨群集的前半部分的大小、跨群集的前半部分的前頭的列位址、跨群集的後半部分的大小、及跨群集的後半部分的前頭的列位址。
當附有隨機模式的讀出模式旗標的第2讀出指示被實行時,該第2讀出指示所指定的群集會從記憶體晶片21取得而儲存於隨機緩衝器143。然後,該隨機緩衝器143是按照來自定序器的緩衝器輸出指示,將被儲存於本身的資料之中輸出對象的群集輸出至ECC電路145。
ECC電路145是對於被輸入的群集實行錯誤訂正之後,將該群集儲存於預定位置,例如RAM13。CPU11是錯誤訂正後的群集被儲存於RAM13之後,可在主機I/F12使該群集轉送至主機2。
另外,當利用ECC電路145的錯誤訂正失敗時,記憶體控制器10是可實行任意的處理。例如,記憶體控制器10是可對於錯誤訂正失敗的群集,進一步實行訂正能力高的錯誤訂正,或變更判定電壓重試讀出動作。
接著,說明有關實施形態的記憶系統1的動作。
圖10是表示實施形態的記憶系統1的讀出動作之一例的流程圖。本圖所示的一連串的動作是按每個被儲存於登錄佇列134的第1讀出指示實行。
首先,CPU11是從登錄佇列134讀出1個的第1讀出指示(S101)。然後,CPU11是依據讀出的第1模式指示來判定作為讀出對象的群集是否為跨群集(S102)。
在參照圖10的說明中,將藉由S101的處理所讀出的第1讀出指示記載為對象的第1讀出指示。在參照圖10的說明中,將依據對象的第1讀出指示而作為讀出對象的群集記載為對象的群集。
S102的判定的具體的方法是不被限定於特定的方法。例如,CPU11是藉由參照群集格式資訊132,來判定對象的群集是否為跨群集。
對象的群集為跨群集時(S102:Yes),S103~S110的動作會對於對象的群集的前半部分及對象的群集的後半部分的各者實行(S111),結束動作。
當對象的群集不是跨群集時(S102:No),CPU11是判定是否將對象的群集的讀出模式設定成循序讀出(S103)。
S103的判定的具體的方法是不被限定於特定的方法。例如,CPU11是藉由參照在S103的判定的時間點被儲存於登錄佇列134的全部的第1讀出指示中所記錄的物理位址值,來判定以和對象的群集同頁(換言之,與屬於和對象的群集同平面的對象的群集同頁)中所含的群集作為讀出對象的別的第1讀出指示是否被儲存於登錄佇列134。當以和對象的群集同頁中所含的群集作為讀出對象的別的第1讀出指示被儲存於登錄佇列134時,CPU11是將對象的群集的讀出模式設定成循序讀出。進一步,CPU11是亦可決定該別的第1讀出指示會將作為讀出對象的群集的讀出模式設定成循序讀出。
當以和對象的群集同頁中所含的群集作為讀出對象的別的第1讀出指示未被儲存於登錄佇列134時,CPU11是將對象的群集的讀出模式設定成隨機讀出,不是循序讀出。
另外,當對象的群集為跨群集時,在該群集的前半部分的讀出模式及後半部分的讀出模式是設定為彼此相等的模式。
當不將對象的群集的讀出模式設定成循序讀出時(S103:No),換言之,將對象的群集的讀出模式設定成隨機讀出時,CPU11是將附有表示實行感測處理的旗標及及表示隨機讀出的讀出模式旗標之第2讀出指示予以加入至NANDC14的指示佇列146。當對象的群集為跨群集時,CPU11是更在該第2讀出指示附上跨旗標。NANDC14是根據該第2讀出指示,實行感測處理(S104)及群集轉送模式的資料輸出處理(S105),結束資料轉送的動作。
當對象的群集為跨群集,且設定隨機讀出作為對象的群集的前半部分及後半部分的讀出模式時,記憶體控制器10是需要依序實行對象的群集的前半部分的資料輸出處理及對象的群集的後半部分的資料輸出處理。為了使此限制遵守於NANDC14,CPU11是亦可構成為依據1個的第2讀出指示來指示對象的群集的前半部分的讀出及對象的群集的後半部分的讀出。亦即,在NANDC14中,當定序器141從指示佇列146選擇該第2讀出指示時,依序實行對象的群集的前半部分的資料輸出處理及對象的群集的後半部分的資料輸出處理。另外,只要NANDC14遵守前述的限制,對象的群集的前半部分的讀出及對象的群集的後半部分的讀出是不一定要依據1個的第2讀出指示來指示。
將對象的群集的讀出模式設定成循序讀出時(S103:Yes),CPU11是判定儲存對象的群集的資料鎖存器25是否存在(S106)。S106的判定是根據資料鎖存器資訊133來實行。
當儲存對象的群集的資料鎖存器25不存在時(S106:No),CPU11是將附上意思感測處理的實行的旗標及表示循序讀出的讀出模式旗標之第2讀出指示加入(enqueue)至NANDC14的指示佇列146。當對象的群集為跨群集時,CPU11是更在該第2讀出指示附上跨旗標。NANDC14是根據該第2讀出指示,實行感測處理(S107)及頁轉送模式的資料輸出處理(S108),結束資料轉送的動作。
當對象的群集為跨群集,且設定循序讀出作為對象的群集的前半部分及後半部分的讀出模式時,與當對象的群集為跨群集,且設定隨機讀出作為對象的群集的前半部分及後半部分的讀出模式時不同,包含對象的群集的前半部分的頁的資料輸出處理及包含對象的群集的後半部分的頁的資料輸出處理之實行的順序為任意。因此,CPU11是可分別依據不同的第2讀出指示來指示對象的群集的前半部分的讀出及對象的群集的後半部分的讀出。CPU11是亦可依據1個的第2讀出指示來指示對象的群集的前半部分的讀出及對象的群集的後半部分的讀出。
當對象的群集被儲存於任一個的資料鎖存器25時(S106:Yes),CPU11是將附上表示不實行感測處理的意旨的旗標及表示循序讀出的讀出模式旗標之第2讀出指示加入至NANDC14的指示佇列146。當對象的群集為跨群集時,CPU11是更在該第2讀出指示附上跨旗標。
NANDC14是在附上表示不實行感測處理的意旨的旗標及表示循序讀出的讀出模式旗標之第2讀出指示的實行時,判定儲存對象的群集的等候緩衝器147是否存在(S109)。當儲存對象的群集的等候緩衝器147存在時(S109:Yes),不實行資料輸出處理,結束資料轉送的動作。
當儲存對象的群集的等候緩衝器147不存在時(S109:No),NANDC14是實行頁轉送模式的資料輸出處理(S110),結束資料轉送的動作。
另外,在S104及S107中實行感測處理時,在屬於進行感測處理的平面的資料鎖存器25是儲存有藉由感測處理來從子陣列23讀出的頁。因此,CPU11是按照S104及S107的感測處理的實行來進行資料鎖存器資訊133的更新。又,當實行抹除動作或寫入動作時,由於屬於實行抹除動作或寫入動作的平面的資料鎖存器25的內容會重寫,因此CPU11是按照抹除動作或寫入動作的實行來進行資料鎖存器資訊133的更新。藉此,資料鎖存器資訊133是被設為反映各資料鎖存器25的最新的狀況者。
又,圖10所示的一連串的動作是依序實行儲存對象的群集的資料鎖存器25是否存在的判定(S106)及儲存對象的群集的等候緩衝器147是否存在的判定(S109)。此是基於下述的理由。亦即,資料鎖存器資訊133是經常反映各資料鎖存器25的最新的狀況,因此可根據各資料鎖存器25的最新的狀況來實行S106的判定。相對於此,各等候緩衝器147的內容是即使進行抹除動作或寫入動作,也不實行重寫。亦即,各等候緩衝器147是未必儲存最新的狀態的頁。藉由使S106及S109以上述的順序實行,記憶系統1可根據各資料鎖存器25的最新的狀況來決定是否進行頁轉送模式的資料輸出處理。
圖11~圖14是表示實施形態的NANDC14的動作的詳細的圖。
圖11是表示在圖10所示的S106的處理中被判定為儲存對象的群集的資料鎖存器25不存在時藉由CPU11實行所發行的第2讀出指示的動作之一例。在此第2讀出指示是附有表示感測處理的實行的旗標及表示循序讀出的讀出模式旗標。又,當對象的群集為跨群集時,在此第2讀出指示是附有跨旗標。在參照圖11的說明中,將此第2讀出指示記載為對象的第2讀出指示。又,在參照圖11的說明中,將依據對象的第2讀出指示而作為讀出對象的群集記載為對象的群集。
定序器141是從被儲存於指示佇列146的1個以上的第2讀出指示之中選擇對象的第2讀出指示時(S201),首先,參照讀出模式旗標,確認為循序讀出,對等候緩衝器管理器144詢問儲存對象的群集的等候緩衝器147是否存在,及非使用中的等候緩衝器147是否存在(S202)。另外,定序器141是亦可省略儲存對象的群集的等候緩衝器147是否存在的訊問。等候緩衝器管理器144是對定序器141回應對象的群集是在哪個的等候緩衝器147都未被儲存的意旨。又,等候緩衝器管理器144是當值為零的計數器148存在時,對定序器141回應以對應於該計數器148的等候緩衝器147作為非使用中的等候緩衝器147(S203)。
定序器141是一旦從等候緩衝器管理器144接收非使用中的等候緩衝器147的回應,則開始對象的第2讀出指示的實行。具體而言,定序器141是首先選擇從等候緩衝器管理器144回應的非使用中的等候緩衝器147作為頁的儲存去處,將該意旨通知等候緩衝器管理器144,等候緩衝器管理器144是只將對應於被選擇的等候緩衝器147之計數器148的值增加1(S204)。
接著,定序器141是從群集格式資訊132取得對象的第2讀出指示的實行所必要的資訊,對記憶體晶片21指示感測處理(S205)。亦即,定序器141是發送感測命令集。一旦在記憶體晶片21中開始感測處理,則預備忙碌訊號線R/Bn會從預備狀態遷移至忙碌狀態。一旦在記憶體晶片21中感測處理完了,則預備忙碌訊號線R/Bn會從忙碌狀態遷移至預備狀態。
定序器141是監視預備忙碌訊號線R/Bn。當預備忙碌訊號線R/Bn從忙碌狀態遷移至預備狀態時,定序器141是可得知記憶體晶片21的感測處理的完了。一旦定序器141得知記憶體晶片21的感測處理的完了,則對等候緩衝器群142發送頁的儲存去處的等候緩衝器147的指定、將頁儲存於所被指定的等候緩衝器147的緩衝器儲存指示、及將對象的群集輸出至ECC電路145的緩衝器輸出指示(S206)。而且,定序器141是實行頁轉送模式的資料輸出處理(S207)。亦即,定序器141是將包含列位址(表示包含對象的群集的頁的前頭)的資料輸出命令集發送至記憶體晶片21,然後,僅對應於頁的大小的次數切換一對的讀出賦能訊號RE/REn。
一旦NANDC14按照一對的選通訊號DQS/DQSn來從記憶體晶片21接收頁,則等候緩衝器群142是在藉由S206來從定序器141接收的指定的等候緩衝器147中,實行根據緩衝器儲存指示及緩衝器輸出指示的動作。亦即,從記憶體晶片21接收的頁是被儲存於從等候緩衝器群142之中的定序器141指定的等候緩衝器147(S208)。而且,該等候緩衝器147是在ECC電路145可實行處理時,將被儲存於本身的頁之中的對象的群集輸出至ECC電路145(S209)。等候緩衝器群142是S209的完了後,對等候緩衝器管理器144通知輸出對象的群集的等候緩衝器147,等候緩衝器管理器144是按照該通知,只將對應於輸出對象的群集的等候緩衝器147之計數器148的值減少1(S210)。
ECC電路145是實行對於被輸入的對象的群集的錯誤訂正,可將實行錯誤訂正之後的對象的群集例如儲存於RAM13。
另外,圖11所示的例子是存在非使用中的等候緩衝器147。當非使用中的等候緩衝器147不存在時,亦即定序器141對等候緩衝器管理器144送出詢問時,當不存在值為零的計數器148時,等候緩衝器管理器144是回應非使用中的等候緩衝器147不存在的意旨。於是,定序器141是將對象的第2讀出指示的實行往後推(postpone),而選擇被儲存於指示佇列146的其他的指示,具體而言,選擇不需要非使用中的等候緩衝器147的動作用的指示作為新的實行對象。其一例,定序器141是若有附上表示隨機讀出的讀出模式旗標的第2讀出指示,則可選擇該第2讀出指示作為新的實行對象。
圖12是表示在圖10所示的S106的處理中被判定為儲存對象的群集的資料鎖存器25存在時藉由CPU11實行所被發行的第2讀出指示的動作之一例。在此第2讀出指示是附有表示不實行感測處理的意旨的旗標及表示循序讀出的讀出模式旗標。又,當對象的群集為跨群集時,在此第2讀出指示是附有跨旗標。在參照圖12的說明中,將此第2讀出指示記載為對象的第2讀出指示。又,在參照圖12的說明中,將依據對象的第2讀出指示而作為讀出的對象的群集記載為對象的群集。
定序器141是從被儲存於指示佇列146的1個以上的第2讀出指示之中選擇對象的第2讀出指示時(S301),首先,參照讀出模式旗標,確認為循序讀出,對等候緩衝器管理器144詢問儲存對象的群集的等候緩衝器147是否存在,及非使用中的等候緩衝器147是否存在(S302)。等候緩衝器管理器144是當儲存對象的群集的等候緩衝器147存在時,對定序器141回應儲存對象的群集的等候緩衝器147 (S303)。
定序器141是一旦從等候緩衝器管理器144接收儲存對象的群集的等候緩衝器147的回應,則開始對象的第2讀出指示的實行。具體而言,定序器141是首先選擇顯示來自等候緩衝器管理器144的回應的等候緩衝器147,將該等候緩衝器147通知等候緩衝器管理器144,等候緩衝器管理器144是只將對應於被選擇的等候緩衝器147之計數器148的值增加1(S304)。
接著,定序器141是從群集格式資訊132取得對象的第2讀出指示的實行所必要的資訊(S305)。定序器141是將儲存對象的群集的等候緩衝器147的指定及輸出對象的群集至ECC電路145的緩衝器輸出指示(包含群集資訊)發送至等候緩衝器群142(S306)。
等候緩衝器群142是在藉由S306來從定序器141接收之指定的等候緩衝器147中,實行根據緩衝器輸出指示的動作。亦即,被指定的等候緩衝器147是在ECC電路145可實行處理時,將被儲存於本身的頁之中的對象的群集輸入至ECC電路145(S307)。等候緩衝器群142是S307的完了後,將輸出對象的群集的等候緩衝器147通知等候緩衝器管理器144,等候緩衝器管理器144是按照該通知,只將對應於輸出對象的群集的等候緩衝器147之計數器148的值減少1。
ECC電路145是實行對於被輸入的對象的群集的錯誤訂正,可將實行錯誤訂正之後的對象的群集例如儲存於RAM13。
在圖12所示的例子是存在儲存對象的群集的等候緩衝器147。利用圖13來說明不存在儲存對象的群集的等候緩衝器147時的動作。
圖13是表示在圖10所示的S106的處理中被判定為儲存對象的群集的資料鎖存器25存在時藉由CPU11實行所被發行的第2讀出指示的動作的別的一例。在此第2讀出指示是附有不實行感測處理的意旨的旗標及表示循序讀出的讀出模式旗標。又,當對象的群集為跨群集時,在此第2讀出指示是附有跨旗標。在參照圖13的說明中,將此第2讀出指示記載為對象的第2讀出指示。又,在參照圖13的說明中,將依據對象的第2讀出指示而作為讀出的對象的群集記載為對象的群集。
定序器141是從被儲存於指示佇列146的1個以上的第2讀出指示之中選擇對象的第2讀出指示時(S401),首先,參照讀出模式旗標,確認為循序讀出,對等候緩衝器管理器144詢問儲存對象的群集的等候緩衝器147是否存在,及非使用中的等候緩衝器147是否存在(S402)。等候緩衝器管理器144是當儲存對象的群集的等候緩衝器147不存在時,回應儲存對象的群集的等候緩衝器147不存在的意旨。又,當儲存對象的群集的等候緩衝器147不存在時,等候緩衝器管理器144是判定非使用中的等候緩衝器147是否存在,當非使用中的等候緩衝器147存在時,回應非使用中的等候緩衝器147。在此是對定序器141回應儲存對象的群集的等候緩衝器147不存在的意旨及非使用中的等候緩衝器147存在的意旨(S403)。
定序器141是一旦接收表示儲存對象的群集的等候緩衝器147不存在的意旨及非使用中的等候緩衝器147存在的意旨的回應,則開始對象的第2讀出指示的實行。具體而言,定序器141是首先選擇從等候緩衝器管理器144回應的非使用中的等候緩衝器147作為頁的儲存去處,將其意旨通知等候緩衝器管理器144,等候緩衝器管理器144是只將對應於被選擇的等候緩衝器147之計數器148的值增加1(S404)。
接著,定序器141是從群集格式資訊132取得對象的第2讀出指示的實行所必要的資訊(S405)。定序器141是將頁的儲存去處的等候緩衝器147的指定、在被指定的等候緩衝器147儲存頁的緩衝器儲存指示、及輸出對象的群集至ECC電路145的緩衝器輸出指示予以發送至等候緩衝器群142(S406)。
然後,定序器141是對記憶體晶片21指示頁轉送模式的資料輸出處理(S407)。亦即,定序器141是將包含表示頁的前頭的列位址之資料輸出命令集發送至記憶體晶片21,然後,僅對應於頁的大小的次數切換一對的讀出賦能訊號RE/REn。
一旦NANDC14按照一對的選通訊號DQS/DQSn來從記憶體晶片21接收頁,則等候緩衝器群142是在藉由S406來從定序器141接收的指定的等候緩衝器147中,實行根據緩衝器儲存指示及緩衝器輸出指示的動作。亦即,從記憶體晶片21接收的頁是被儲存於從等候緩衝器群142之中的定序器141指定的等候緩衝器147(S408)。然後,該等候緩衝器147是當ECC電路145可實行處理時,將被儲存於本身的頁之中的對象的群集輸出至ECC電路145(S409)。等候緩衝器群142是S409的完了後,對等候緩衝器管理器144通知輸出對象的群集的等候緩衝器147,等候緩衝器管理器144是按照該通知,只將對應於輸出對象的群集的等候緩衝器147之計數器148的值減少1(S410)。
ECC電路145是實行對於被輸入的對象的群集之錯誤訂正,可將實行錯誤訂正之後的對象的群集儲存於例如RAM13。
另外,圖13所示的例子是存在非使用中的等候緩衝器147。當非使用中的等候緩衝器147不存在時,亦即定序器141對等候緩衝器管理器144送出詢問時,當不存在值為零的計數器148時,等候緩衝器管理器144是回應非使用中的等候緩衝器147不存在的意旨。於是,定序器141是將對象的第2讀出指示的實行往後推,而選擇被儲存於指示佇列146的其他的指示,具體而言,選擇不需要非使用中的等候緩衝器147的動作用的指示作為新的實行對象。其一例,定序器141是若有附上表示隨機讀出的讀出模式旗標的第2讀出指示,則可選擇該第2讀出指示作為新的實行對象。
圖14是表示在圖10所示的S103的處理中被判定成將對象的群集的讀出模式設定成隨機讀出時藉由CPU11實行所被發行的第2讀出指示的動作之一例。在此第2讀出指示是附有實行感測處理的意旨的旗標及表示隨機讀出的讀出模式旗標。又,當對象的群集為跨群集時,在此第2讀出指示是附有跨旗標。在參照圖14的說明中,將此第2讀出指示記載為對象的第2讀出指示。又,在參照圖14的說明中,將依據對象的第2讀出指示而作為讀出的對象的群集記載為對象的群集。
定序器141是從被儲存於指示佇列146的1個以上的第2讀出指示之中選擇對象的第2讀出指示時(S501),首先,判定隨機緩衝器143是否空出。隨機緩衝器143是否空出的判定的方法是不被限定於特定的方法。其一例,隨機緩衝器143是將表示本身是否空出的資訊經常發送至定序器141,定序器141是根據從隨機緩衝器143接收的資訊來判定隨機緩衝器143是否空出。另外,所謂隨機緩衝器143空出是意指在隨機緩衝器143例如有1群集份的空出。
當隨機緩衝器143空出時,定序器141是開始對象的第2讀出指示的實行(S502)。具體而言,定序器141是首先從群集格式資訊132取得對象的第2讀出指示的實行所必要的資訊,對記憶體晶片21指示感測處理(S503)。亦即,定序器141是發送感測命令集。一旦在記憶體晶片21中開始感測處理,則預備忙碌訊號線R/Bn會從預備狀態遷移至忙碌狀態。一旦在記憶體晶片21中感測處理完了,則預備忙碌訊號線R/Bn會從忙碌狀態遷移至預備狀態。
定序器141是一旦根據預備忙碌訊號線R/Bn得知記憶體晶片21的感測處理的完了,則對隨機緩衝器143發送儲存對象的群集的緩衝器儲存指示、及將對象的群集輸出至ECC電路145的緩衝器輸出指示(S504)。而且,定序器141是對記憶體晶片21指示群集轉送模式的資料輸出處理(S505)。亦即,定序器141是將包含表示對象的群集的前頭的列位址之資料輸出命令集發送至記憶體晶片21,然後,僅對應於對象的群集的大小的次數切換一對的讀出賦能訊號RE/REn。
一旦NANDC14接收對象的群集,則隨機緩衝器143是實行根據藉由S504來從定序器141接收的緩衝器儲存指示及緩衝器輸出指示之動作。亦即,從記憶體晶片21接收的對象的群集是被儲存於隨機緩衝器143(S506)。而且,隨機緩衝器143是在ECC電路145可實行處理時,將被儲存於本身的對象的群集輸出至ECC電路145(S507)。
ECC電路145是可實行對於被輸入的對象的群集之錯誤訂正,而將實行錯誤訂正之後的對象的群集例如儲存於RAM13。
另外,有關跨群集,循序讀出的情況是例如在跨群集的前半部分及跨群集的後半部分各個不同的第2讀出指示會藉由CPU11來產生,被儲存於指示佇列146。NANDC14是對於跨群集的前半部分的第2讀出指示及跨群集的後半部分的第2讀出指示的各者實施圖11~圖13所示的動作的任一個的動作。但,在從等候緩衝器群142往ECC電路145之對象的群集的輸出時,是以依序實行對象的群集的前半部分的輸出及對象的群集的後半部分的輸出。來自等候緩衝器群142的對象的群集的前半部分的輸出是從等候緩衝器群142等候對象的群集的後半部分的輸出而實行。
有關跨群集,隨機讀出的情況是例如以跨群集的前半部分及跨群集的後半部分作為讀出的對象的1個的第2讀出指示會藉由CPU11來產生,被儲存於指示佇列146。NANDC14是在實行該第2讀出指示時,針對對象的群集的前半部分及對象的群集的後半部分的各者實行圖14所示的S503的處理。然後,S504的處理會只被實行1次。而且,S505~S506的處理會針對對象的群集的前半部分實行,然後針對對象的群集的後半部分實行。藉此,在隨機緩衝器143中,結合對象的群集的前半部分及對象的群集的後半部分。然後,實行S507的處理。
圖15是用以說明實施形態的等候緩衝器群142的管理方法的圖。在此是說明有關在圖7所示的例子中,當N的值為「23」時,群集CL1~群集CL6以此順序依據第1讀出指示作為讀出的對象的情況。群集CL3是跨群集,被分割成:被儲存於平面#0的低位頁的群集CL3的前半部分(記載為群集CL3a)、及被儲存於平面#1的低位頁的群集CL3的後半部分(記載為群集CL3b)。
又,群集CL1~群集CL6的各者的讀出是藉由圖10所示的S103的判定處理,依據附有表示循序讀出的讀出模式旗標的第2讀出指示來指示NANDC14。而且,在以群集CL3作為讀出的對象的第2讀出指示是附有跨旗標。
又,群集CL1~群集CL6的讀出開始的時間點,複數的等候緩衝器147之中的等候緩衝器#0及等候緩衝器#1為非使用中,亦即對應於各者的計數器148的值為零。
另外,群集CL1~群集CL6是分散成屬於平面#0的1頁及屬於平面#1的1頁而儲存。亦即,在平面#0及平面#1的各者中需要感測處理的實行。又,感測處理是相較於資料輸出處理等需要長的時間。於是,CPU11是亦可在平面#0及平面#1的各者中以能夠優先地實行感測處理的實行之方式控制第2讀出指示加入至指示佇列146的順序。
如圖15所示般,在此,CPU11是依序將以群集CL1作為讀出的對象的第2讀出指示、以群集CL3b作為讀出的對象的第2讀出指示、以群集CL2作為讀出的對象的第2讀出指示、以群集CL3a作為讀出的對象的第2讀出指示、以群集CL4作為讀出的對象的第2讀出指示、以群集CL5作為讀出的對象的第2讀出指示、及以群集CL6作為讀出的對象的第2讀出指示加入至指示佇列146,作為一例。
首先,定序器141是開始以群集CL1作為讀出的對象的第2讀出指示的實行(S601)。在以群集CL1作為讀出的對象的第2讀出指示的實行是包含感測處理、及頁轉送模式的資料輸出處理、以及來自等候緩衝器#0的群集CL1的輸出。亦即,選擇非使用中的等候緩衝器#0,NANDC14藉由頁轉送模式的資料輸出處理來將包含從記憶體晶片21接收的群集CL1的頁儲存於被選擇的等候緩衝器#0。然後,儲存於被選擇的等候緩衝器#0的資料之中的群集CL1會被輸出至ECC電路145。以群集CL1作為讀出的對象之第2讀出指示的實行的開始時,對應於等候緩衝器#0的計數器148的值是只被增加1而形成1。
接著,定序器141是開始以群集CL3b作為讀出的對象的第2讀出指示的實行(S602)。在以群集CL3b作為讀出的對象的第2讀出指示的實行是包含感測處理、及頁轉送模式的資料輸出處理、以及來自等候緩衝器#1的群集CL3b的輸出。亦即,選擇非使用中的等候緩衝器#1,NANDC14藉由頁轉送模式的資料輸出處理來將包含從記憶體晶片21接收的群集CL3b的頁儲存於被選擇的等候緩衝器#1。然後,儲存於被選擇的等候緩衝器#1的資料之中的群集CL3b會被輸出至ECC電路145。在以群集CL3b作為讀出的對象的第2讀出指示的實行的開始時,對應於等候緩衝器#1的計數器148的值是只被增加1而形成1。
接著,定序器141是開始以群集CL2作為讀出的對象的第2讀出指示的實行(S603)。在以群集CL2作為讀出的對象的第2讀出指示的實行是包含來自等候緩衝器#0的群集CL2的輸出。在以群集CL2作為讀出的對象的第2讀出指示的實行的開始時,對應於等候緩衝器#0的計數器148的值是只被增加1而形成2。
接著,定序器141是開始以群集CL3a作為讀出的對象的第2讀出指示的實行(S604)。在以群集CL3a作為讀出的對象的第2讀出指示的實行是包含來自等候緩衝器#0的群集CL3a的輸出。在以群集CL3a作為讀出的對象的第2讀出指示的實行的開始時,對應於等候緩衝器#0的計數器148的值是只被增加1而形成3。
接著,定序器141是開始以群集CL4作為讀出的對象的第2讀出指示的實行(S605)。在以群集CL4作為讀出的對象的第2讀出指示的實行是包含來自等候緩衝器#1的群集CL4的輸出。在以群集CL4作為讀出的對象的第2讀出指示的實行的開始時,對應於等候緩衝器#1的計數器148的值是只被增加1而形成2。
接著,定序器141是開始以群集CL5作為讀出的對象的第2讀出指示的實行(S606)。在以群集CL5作為讀出的對象的第2讀出指示的實行是包含來自等候緩衝器#1的群集CL5的輸出。在以群集CL5作為讀出的對象的第2讀出指示的實行的開始時,對應於等候緩衝器#1的計數器148的值是只被增加1而形成3。
接著,定序器141是開始以群集CL6作為讀出的對象的第2讀出指示的實行(S607)。在以群集CL6作為讀出的對象的第2讀出指示的實行是包含來自等候緩衝器#1的群集CL6的輸出。在以群集CL6作為讀出的對象的第2讀出指示的實行的開始時,對應於等候緩衝器#1的計數器148的值是只被增加1而形成4。
接著,從等候緩衝器#0往ECC電路145的群集CL1的輸出完了(S608)。藉此,對應於等候緩衝器#0的計數器148的值是只被減少1而形成2。
接著,從等候緩衝器#0往ECC電路145的群集CL2的輸出完了(S609)。藉此,對應於等候緩衝器#0的計數器148的值是只被減少1減而形成1。
接著,從等候緩衝器#0往ECC電路145的群集CL3a的輸出完了(S610)。藉此,對應於等候緩衝器#0的計數器148的值是只被減少1而形成0。
接著,從等候緩衝器#1往ECC電路145的群集CL3b的輸出完了(S611)。藉此,對應於等候緩衝器#1的計數器148的值是只被減少1而形成3。
接著,從等候緩衝器#1往ECC電路145的群集CL4的輸出完了(S612)。藉此,對應於等候緩衝器#1的計數器148的值是只被減少1而形成2。
接著,從等候緩衝器#1往ECC電路145的群集CL5的輸出完了(S613)。藉此,對應於等候緩衝器#1的計數器148的值是至被減少1而形成1。
接著,從等候緩衝器#1往ECC電路145的群集CL6的輸出完了(S614)。藉此,對應於等候緩衝器#1的計數器148的值是只被減少1而形成0。
圖16是表示實施形態的等候緩衝器群142及隨機緩衝器143的動作之一例的流程圖。將等候緩衝器群142及隨機緩衝器143總稱記載為緩衝器。另外,在本圖所示的一連串的動作是藉由管理對於等候緩衝器群142及隨機緩衝器143的資料的輸出入之未圖示的緩衝器管理器來管理。因此,本圖的說明是以緩衝器管理器作為動作的主體進行說明。
首先,緩衝器管理器是判定是否從定序器141接收了緩衝器輸出指示(S701)。當未接收緩衝器輸出指示時(S701:No),S701的處理會再度被實行。
當緩衝器管理器接收了緩衝器輸出指示時(S701:Yes),輸出對象的群集的讀出模式為循序模式(S702:Yes),輸出對象的群集為跨群集時(S703:Yes),緩衝器管理器是判定是否符合輸出對象的群集的前半部分為第1量以上、被儲存於等候緩衝器群142,且從定序器141接收完了對於輸出對象的群集的後半部分之緩衝器儲存指示及緩衝器輸出指示的條件(S704)。
當輸出對象的群集的讀出模式為循序模式時,使用等候緩衝器群142。又,當輸出對象的群集為跨群集時,包含輸出對象的群集的前半部分的頁及包含輸出對象的群集的後半部分的頁會分別被儲存於不同的等候緩衝器147。若包含輸出對象的群集的前半部分的頁及包含輸出對象的群集的後半部分的頁的各個的儲存去處的等候緩衝器147被確定,且輸出對象的群集的前半部分及後半部分的輸出被指示,且輸出對象的群集的前半部分預定量(在此是第1量)積存於等候緩衝器147,則可開始來自輸出對象的群集的等候緩衝器群142的輸出。亦即,在S704判定是否可開始來自輸出對象的群集的等候緩衝器群142的輸出。
另外,第1量是可被任意地設定。其一例,第1量是按照連接等候緩衝器群142及隨機緩衝器143與ECC電路145的配線的匯流排寬來決定。例如當連接等候緩衝器群142及隨機緩衝器143與ECC電路145的配線的匯流排寬為64位元時,可設定64位元作為第1量。
當未符合S704的條件時(S704:No),再度實行S704的處理。
當符合S704的條件時(S704:Yes),緩衝器管理器是將輸出對象的群集的前半部分及後半部分從等候緩衝器群142依序輸出(S705)。然後,控制遷移至S701。
另外,在S704的判定處理中,在被判定為Yes的時間點,輸出對象的群集之中,在等候緩衝器群142存在未儲存的部分時,該部分是正在實行S705的處理中被儲存於等候緩衝器群142。亦即,等候緩衝器群142是同時實行輸出對象的群集的輸入及輸出對象的群集的輸出。藉此,相較於輸出對象的群集的前半部分的全部及後半部分的全部被儲存於等候緩衝器群142之後開始S705的處理的情況,可提早輸出對象的群集的輸出開始的時機。另外,緩衝器管理器是亦可等待至輸出對象的群集的前半部分的全部及後半部分的全部被儲存於等候緩衝器群142之後開始S705的處理。
當輸出對象的群集的讀出模式為循序模式(S702:Yes),輸出對象的群集不是跨群集時(S703:No),緩衝器管理器判定輸出對象的群集是否為第1量以上、被儲存於等候緩衝器群142(S706)。
當輸出對象的群集為第1量以上、未被儲存於等候緩衝器群142時(S706:No),再度實行S706的處理。
當輸出對象的群集為第1量以上、被儲存於等候緩衝器群142時(S706:Yes),緩衝器管理器是將輸出對象的群集從等候緩衝器群142輸出(S707)。然後,控制會遷移至S701。
另外,緩衝器管理器是亦可等待至輸出對象的群集的全部被儲存於等候緩衝器群142為止之後開始S707的處理。
當輸出對象的群集的讀出模式不是循序模式時(S702:No),亦即輸出對象的群集的讀出模式為隨機模式時,輸出對象的群集無關是否相當於跨群集,輸出對象的群集是被儲存於隨機緩衝器143。緩衝器管理器是判定是否輸出對象的群集為第1量以上、被儲存於隨機緩衝器143(S708)。
當輸出對象的群集為第1量以上、未被儲存於隨機緩衝器143時(S708:No),再度施行S708的處理。
當輸出對象的群集為第1量以上、被儲存於隨機緩衝器143時(S708:Yes),緩衝器管理器是將輸出對象的群集從隨機緩衝器143輸出(S709)。然後,控制會被遷移至S701。
另外,緩衝器管理器是亦可等待至輸出對象的群集的全部被儲存於隨機緩衝器143為止之後開始S709的處理。
如此,若根據實施形態,則循序讀出的情況,即使作為讀出的對象的群集的群包含跨群集,一部分包含作為讀出的對象的群集的頁也會就這樣從記憶體晶片21轉送至NANDC14,在NANDC14中被儲存於等候緩衝器群142。作為讀出的對象的2個以上的群集是從等候緩衝器群142依序輸出至ECC電路145。當作為讀出的對象的群集為跨群集時,從儲存有包含該跨群集的前半部分的頁之1個的等候緩衝器147輸出該前半部分至ECC電路145,接著,從儲存有包含該跨群集的後半部分的頁之其他的等候緩衝器147輸出該後半部分至ECC電路145。
亦即,若根據實施形態,則在設定循序讀出的讀出模式時,即使作為讀出的對象的2個以上的群集包含跨群集,也不需要等候該跨群集的前半部分的資料輸出處理及跨群集的後半部分的資料輸出處理。
因此,若根據實施形態,則藉由利用循序讀出的讀出模式,可使平面#0及平面#1並列動作。
圖17是用以說明在實施形態的1個的記憶體晶片21中使2個的平面並列動作的例子的圖。在此,說明有關對於N的值為「23」的超級頁,以能依序讀出群集CL0~群集CL6、群集CL8、群集CL7、群集CL9~群集CL22之方式,在登錄佇列134儲存23個的第1讀出指示,然後,藉由S103的判定處理來設定循序讀出作為群集CL0~群集CL6、群集CL8、群集CL7、群集CL9~群集CL22的各者的讀出模式的情況。
另外,群集CL3、群集CL7、群集CL11、群集CL15及群集CL19的各者是相當於跨群集。將跨群集的前半部分記載為群集CLYa,且將跨群集的後半部分記載為群集CLYb。但,Y是3,7,11,15或19。
NANDC14是首先使將由群集CL0~CL3a所組成的的頁儲存於資料鎖存器25的感測處理實行於平面#0的存取電路24(時刻t0)。如此一來,在平面#0中開始感測處理。
接著,NANDC14使將由群集CL3b~CL7a所組成的的頁儲存於資料鎖存器25的感測處理實行於平面#1的存取電路24(時刻t1)。如此一來,在平面#1中開始感測處理。
在平面#0中,一旦感測處理完了,則NANDC14是實行由群集CL0~CL3a所組成的頁的資料輸出處理。亦即,NANDC14是以頁轉送模式來取得被儲存於平面#0的資料鎖存器25之由群集CL0~CL3a所組成的的頁。
接著,由群集CL3b~CL7a所組成的的頁的感測處理完了(時刻t2)。在此圖的說明中,由群集CL3b~CL7a所組成的頁的感測處理完了的時刻t2是比由群集CL0~CL3a所組成的頁的資料輸出處理完了的時刻更早。正在資料輸出處理中,通道會藉由資料輸出處理而被佔有。因此,由群集CL3b~CL7a所組成的頁的資料輸出處理是等待至通道可利用為止。
一旦由群集CL0~CL3a所組成的頁的頁轉送模式的資料輸出處理完了,則NANDC14是使將由群集CL7b~CL11a所組成的頁儲存於資料鎖存器25的感測處理實行於平面#0的存取電路24之後,使被儲存於平面#1的資料鎖存器25的由群集CL3b~CL7a所組成的頁的頁轉送模式的資料輸出處理實行(時刻t3)。
一旦由群集CL3b~CL7a所組成的頁的頁轉送模式的資料輸出處理完了,則NANDC14是使將由群集CL11b~CL15a所組成的頁儲存於資料鎖存器25的感測處理實行於平面#1的存取電路24。
在平面#0中,一旦群集CL7b~CL11a所組成的頁的感測處理完了,則NANDC14是開始群集CL7b~CL11a所組成的頁的資料輸出處理。
在平面#0的由群集CL7b~CL11a所組成的頁的資料輸出處理及在平面#1的由群集CL11b~CL15a所組成的頁的感測處理,在此圖的說明中是在幾乎同時機完了。一旦在平面#0的由群集CL7b~CL11a所組成的頁的資料輸出處理及在平面#1的由群集CL11b~CL15a所組成的頁的感測處理完了,則NANDC14是使將由群集CL15b~CL19a所組成的頁儲存於資料鎖存器25的感測處理實行於平面#0的存取電路24之後,使被儲存於平面#1的資料鎖存器25的由群集CL11b~CL15a所組成的頁的頁轉送模式的資料輸出處理實行(時刻t4)。
在平面#1中,一旦由群集CL11b~CL15a所組成的頁的頁轉送模式的資料輸出處理完了,則NANDC14是使將由群集CL19b~CL22所組成的頁儲存於資料鎖存器25的感測處理實行於平面#1的存取電路24。以後的處理的說明是被省略。
NANDC14是在等候緩衝器群142儲存由群集CL0~CL3a所組成的頁、由群集CL3b~CL7a所組成的頁、由群集CL7b~CL11a所組成的頁、由群集CL11b~CL15a所組成的頁、由群集CL15b~CL19a所組成的頁、及由群集CL19b~CL22所組成的頁。然後,從等候緩衝器群142依序輸出群集CL0~群集CL6、群集CL7、群集CL8、群集CL9~群集CL22至ECC電路145。
循序讀出後讀出模式是即使作為讀出的對象的複數的群集含有跨群集,也不需要等候該跨群集的前半部分的資料輸出處理及跨群集的後半部分的資料輸出處理。因此,如圖17所示般,可成為:在2個的平面的一方實行感測處理時,使資料輸出處理實行於2個的平面的另一方,在該另一方的平面實行感測處理時,使資料輸出處理實行於該一方的平面之交錯動作。
如以上述般,若根據實施形態,則當被設定於讀出對象的群集為一部分(記載為第1片斷)被儲存於平面#0的子陣列(subarray)23,剩下的一部分(記載為第2片斷)被儲存於平面#1的子陣列之跨群集時,記憶體控制器10特別是NANDC14可實行下述的動作。亦即,NANDC14是藉由使包含第1片斷的頁的感測處理實行於平面#0的存取電路24,使包含第1片斷的頁儲存於平面#0的資料鎖存器25,藉由使包含第2片斷的頁的感測處理實行於平面#1的存取電路24,使包含第2片斷的頁儲存於平面#1的資料鎖存器25。然後,NANDC14是使被儲存於平面#0的資料鎖存器25之包含第1片斷的頁從記憶體晶片21輸出,而將包含該第1片斷的頁儲存於等候緩衝器147之中的1個(記載為第1緩衝器)。又,NANDC14是使被儲存於平面#1的資料鎖存器25之包含第2片斷的頁從記憶體晶片21輸出,而將包含該第2片斷的頁儲存於等候緩衝器147之中的別的1個(記載為第2緩衝器)。然後,NANDC14是從被儲存於第1緩衝器的頁讀出第1片斷,從被儲存於第2緩衝器的頁讀出第2片斷,結合第1片斷與第2片斷來輸入至ECC電路145。
因此,不需等候要用以轉送第1片斷的資料輸出處理及用以轉送第2片斷的資料輸出處理。其結果,可使平面#0與平面#1交錯動作,因此從記憶體晶片往記憶體控制器的資料的轉送速度會提升。
若根據實施形態,則NANDC14是將指示包含第1片斷的頁的輸出之資料輸出命令集發送至記憶體晶片21。記憶體晶片21是一旦接收該資料輸出命令集,則將包含第1片斷的頁的輸出以頁單位來輸出。換言之,記憶體晶片21是至包含第1片斷的頁的輸出完了為止,哪個的命令的輸入也不需要,實行包含第1片斷的頁的輸出。又,NANDC14是將指示包含第2片斷的頁的輸出之資料輸出命令集發送至記憶體晶片21。記憶體晶片21是一旦接收該資料輸出命令集,則將包含第2片斷的頁的輸出以頁單位來輸出。換言之,記憶體晶片21是至包含第2片斷的頁的輸出完了為止,哪個的命令的輸入也不需要,實行包含第2片斷的頁的輸出。
因此,在與第1片斷或第2片斷同頁中含有與跨群集不同的讀出對象的群集時,NANDC14是可從第1緩衝器或第2緩衝器取得該別的讀出對象的群集。亦即,為了該別的讀出對象的群集及跨群集的各者,可個別地實行資料輸出處理。
若根據實施形態,則NANDC14是在頁轉送模式及群集轉送模式的哪個的轉送模式皆可動作。從記憶體晶片21往NANDC14的資料的轉送模式是亦可包含頁轉送模式及群集轉送模式的其他任意的模式。
若根據實施形態,則記憶體控制器10特別是CPU11判定別的讀出對象的群集是否含在包含第1片斷的頁及包含第2片斷的頁之中的任一個。當該別的讀出對象的群集含在包含第1片斷的頁及包含第2片斷的頁之中的任一個時,CPU11是選擇循序讀出作為讀出模式。當選擇循序讀出時,NANDC14是以頁轉送模式來實行資料輸出處理。當別的讀出對象的群集在包含第1片斷的頁及包含第2片斷的頁之中的任一個皆未含有時,CPU11是選擇隨機讀出作為讀出模式。當選擇隨機讀出的讀出模式時,NANDC14是以群集轉送模式來實行資料輸出處理。
若根據實施形態,則當記憶體控制器10特別是NANDC14選擇隨機讀出時,使被儲存於平面#0的資料鎖存器25的頁之中的第1片斷輸出至記憶體晶片21,使被儲存於平面#1的資料鎖存器25的頁之中的第2片斷輸出至記憶體晶片21。然後,NANDC14是結合第1片斷及第2片斷來輸入至ECC電路145。
說明了本發明的幾個的實施形態,但該等的實施形態是舉例提示者,不是意圖限定發明的範圍。該等實施形態是可被實施於其他的各種的形態,可在不脫離發明的主旨的範圍實施各種的省略、置換、變更。該等實施形態或其變形是與發明的範圍或主旨所含者同樣,為申請專利範圍記載的發明及其均等的範圍所包含。
1:記憶系統
2:主機
10:記憶體控制器
20:NAND記憶體
21:記憶體晶片
22:記憶格陣列
23:子陣列
24:存取電路
25:資料鎖存器
26:NAND串
131:翻譯資訊
132:群集格式資訊
133:資料鎖存器資訊
134:登錄佇列
141:定序器
142:等候緩衝器群
143:隨機緩衝器
144:等候緩衝器管理器
145:ECC電路
146:指示佇列
147:等候緩衝器
148:計數器
[圖1]是表示被連接至主機的實施形態的記憶系統的構成例的圖。
[圖2]是表示實施形態的記憶體晶片的構成之一例的模式性的圖。
[圖3]是表示實施形態的區塊的電路構成的圖。
[圖4]是表示實施形態的資料編碼與臨界值電壓分佈之一例的圖。
[圖5]是表示在實施形態的讀出動作時被收發於NANDC與記憶體晶片之間的訊號之一例的時間圖(timing chart)。
[圖6]是用以說明在群集轉送模式及頁轉送模式的各者中實施形態的IO訊號線轉送的訊號的不同的圖。
[圖7]是表示在採用碼率可變的錯誤訂正符號的實施形態的記憶系統中,被儲存於各平面的群集的位置的模式性的圖。
[圖8]是表示被儲存於實施形態的RAM的資訊之一例的模式性的圖。
[圖9]是表示實施形態的NANDC的構成之一例的模式性的圖。
[圖10]是表示實施形態的記憶系統的讀出動作之一例的流程圖。
[圖11]是表示在被判定為儲存對象的群集的資料鎖存器不存在時實行所被發行的第2讀出指示的動作之一例的圖。
[圖12]是表示在被判定為儲存對象的群集的資料鎖存器存在時實行所被發行的第2讀出指示的動作之一例的圖。
[圖13]是表示在被判定為儲存對象的群集的資料鎖存器存在時實行所被發行的第2讀出指示的動作的別的一例的圖。
[圖14]是表示在被判定為將對象的群集的讀出模式設定成隨機讀出時實行所被發行的第2讀出指示的動作之一例的圖。
[圖15]是用以說明實施形態的等候緩衝器群的管理方法的圖。
[圖16]是表示實施形態的等候緩衝器群及隨機緩衝器的動作之一例的流程圖。
[圖17]是用以說明在實施形態的1個的記憶體晶片中使2個的平面並列動作的例子的圖。