[相關(guān)申請]
本申請享有以日本專利申請2016-38942號(申請日:2016年3月1日)為基礎(chǔ)申請的優(yōu)先權(quán)。本申請通過參照該基礎(chǔ)申請而包含基礎(chǔ)申請的全部內(nèi)容。
實施方式涉及一種半導(dǎo)體存儲裝置及存儲器系統(tǒng)。
背景技術(shù):
已知有如下存儲器系統(tǒng):具備半導(dǎo)體存儲裝置及控制器,所述半導(dǎo)體存儲裝置具有使用存儲1比特的數(shù)據(jù)的存儲器單元的高速緩存區(qū)域與使用存儲2比特以上的存儲器單元的存儲區(qū)域。
技術(shù)實現(xiàn)要素:
本發(fā)明的實施方式提供一種能夠使動作高速化的半導(dǎo)體存儲裝置及存儲器系統(tǒng)。
實施方式的半導(dǎo)體存儲裝置具備:第1存儲器單元,能夠存儲n比特(n為1以上的自然數(shù))的數(shù)據(jù);第2存儲器單元,能夠存儲m比特(m為2以上的自然數(shù),m>n)的數(shù)據(jù);以及讀出放大器,對第1及第2存儲器單元進行數(shù)據(jù)的讀取及寫入。在半導(dǎo)體存儲裝置從控制器接收到第1命令時,讀出放大器將第1數(shù)據(jù)寫入至第1存儲器單元。然后,讀出放大器在寫入后從第1存儲器單元讀取第1數(shù)據(jù),并將第1數(shù)據(jù)與所讀取出的第1數(shù)據(jù)進行比較。在半導(dǎo)體存儲裝置從控制器接收到第2命令的情況下,讀出放大器將從第1存儲器單元讀取出的第1數(shù)據(jù)或從控制器接收到的第2數(shù)據(jù)寫入至第2存儲器單元。
附圖說明
圖1是第1實施方式的存儲器系統(tǒng)的框圖。
圖2是第1實施方式的存儲器系統(tǒng)所具備的半導(dǎo)體存儲裝置的框圖。
圖3是第1實施方式的存儲器系統(tǒng)所具備的半導(dǎo)體存儲裝置所包含的存儲器單元陣列及讀出放大器模塊的電路圖。
圖4是第1實施方式的存儲器系統(tǒng)中的寫入動作的流程圖。
圖5是第1實施方式的存儲器系統(tǒng)中的第1寫入動作的流程圖。
圖6是第1實施方式的存儲器系統(tǒng)中的第1寫入動作時的狀態(tài)讀取結(jié)果。
圖7是存儲在第1實施方式的存儲器系統(tǒng)所具備的控制器中的錯誤訂正標(biāo)記信息的數(shù)據(jù)表。
圖8是第1實施方式的存儲器系統(tǒng)中的第1寫入動作的時序圖。
圖9是第1實施方式的存儲器系統(tǒng)中的第1寫入動作的指令順序。
圖10是第1實施方式的存儲器系統(tǒng)中的第2寫入動作的流程圖。
圖11是第1實施方式的存儲器系統(tǒng)中的第2寫入動作的指令順序。
圖12是第1實施方式的存儲器系統(tǒng)中的第2寫入動作的說明圖。
圖13是第1實施方式的存儲器系統(tǒng)中的第2寫入動作的說明圖。
圖14是說明第2實施方式的存儲器系統(tǒng)所具備的半導(dǎo)體存儲裝置所包含的存儲器單元晶體管的閾值分布的圖。
圖15是第2實施方式的存儲器系統(tǒng)中的第1寫入動作的流程圖。
圖16是第2實施方式的存儲器系統(tǒng)中的第1寫入動作時的狀態(tài)讀取結(jié)果。
圖17是第2實施方式的存儲器系統(tǒng)中的第2寫入動作的流程圖。
圖18是第1實施方式的存儲器系統(tǒng)中的第2寫入動作的指令順序。
具體實施方式
以下,參照附圖對實施方式進行說明。此外,在以下的說明中,對于具有相同功能及構(gòu)成的要素標(biāo)注共通的參照符號。
[1]第1實施方式
以下,對第1實施方式的半導(dǎo)體存儲裝置及存儲器系統(tǒng)進行說明。
[1-1]存儲器系統(tǒng)1的構(gòu)成
首先,使用圖1對存儲器系統(tǒng)的構(gòu)成進行說明。在圖1中示出存儲器系統(tǒng)的框圖。如圖1所示,存儲器系統(tǒng)1具備半導(dǎo)體存儲裝置10及控制器20。
半導(dǎo)體存儲裝置10是非易失地存儲數(shù)據(jù)的nand(notand,與非)型閃存。在下文中對半導(dǎo)體存儲裝置10的構(gòu)成的詳細(xì)內(nèi)容進行敘述。
控制器20響應(yīng)來自外部的主機機器的命令而命令半導(dǎo)體存儲裝置10執(zhí)行讀取、寫入及刪除等。另外,控制器20對半導(dǎo)體存儲裝置10中的存儲器空間進行管理。如圖1所示,控制器20具備處理器(cpu)21、內(nèi)置存儲器(ram)22、寄存器23、ecc(errorcheckingandcorrecting,錯誤檢查與訂正)電路24、nand接口電路25、緩沖存儲器26及主機接口電路27。
處理器21對控制器20整體的動作進行控制。例如,處理器21響應(yīng)從主機機器接收的寫入命令,發(fā)布基于nand接口的寫入命令。該動作在讀取及刪除的情況下也同樣。
內(nèi)置存儲器22及寄存器23例如為dram(dynamicrandomaccessmemory,動態(tài)隨機存取存儲器)等半導(dǎo)體存儲器,且被用作處理器21的作業(yè)區(qū)域。內(nèi)置存儲器22保存用來管理半導(dǎo)體存儲裝置10的固件或各種管理表等。寄存器23保存在高速緩存寫入動作時從半導(dǎo)體存儲裝置10接收的錯誤訂正標(biāo)記。
ecc電路24進行數(shù)據(jù)的錯誤訂正(ecc:errorcheckingandcorrecting)處理。具體來說,ecc電路24在寫入數(shù)據(jù)時基于寫入數(shù)據(jù)而產(chǎn)生奇偶校驗(parity)。然后,ecc電路24在讀取數(shù)據(jù)時根據(jù)奇偶校驗產(chǎn)生校驗子來檢測錯誤,并對所檢測出的錯誤進行訂正。
nand接口電路25與半導(dǎo)體存儲裝置10連接,并負(fù)責(zé)與半導(dǎo)體存儲裝置10的通信。例如,nand接口電路25根據(jù)處理器21的指示將指令cmd、地址信息add及數(shù)據(jù)dat發(fā)送至半導(dǎo)體存儲裝置10。另外,nand接口電路25從半導(dǎo)體存儲裝置10接收狀態(tài)信息sts及數(shù)據(jù)dat。該狀態(tài)信息sts例如包含錯誤訂正標(biāo)記或待命/忙碌信息。錯誤訂正標(biāo)記及待命/忙碌信息的詳細(xì)內(nèi)容在下文中進行敘述。
緩沖存儲器26暫時保存控制器20從半導(dǎo)體存儲裝置10及主機機器接收的數(shù)據(jù)等。
主機接口電路27經(jīng)由未圖示的主機總線與主機機器連接,并負(fù)責(zé)與主機機器的通信。例如,主機接口電路27將從主機機器接收的命令及數(shù)據(jù)分別傳輸至處理器21及緩沖存儲器26。
此外,也可為在所述構(gòu)成中未設(shè)置ecc電路24,處理器21具有ecc電路24的功能。另外,內(nèi)置存儲器22及寄存器23也可由1個半導(dǎo)體存儲器構(gòu)成。另外,nand總線所含之信號線dq的條數(shù)并不限定于此,可以進行各種變更。
[1-1-1]半導(dǎo)體存儲裝置10的構(gòu)成
接下來,使用圖2對半導(dǎo)體存儲裝置10的構(gòu)成進行說明。在圖2中示出半導(dǎo)體存儲裝置10的框圖。如圖2所示,半導(dǎo)體存儲裝置10具備存儲器單元陣列11、讀出放大器模塊12、行解碼器13、輸入輸出電路14、寄存器15、邏輯控制電路16、定序器17、待命/忙碌控制電路18及電壓產(chǎn)生電路19。
存儲器單元陣列11具備多個區(qū)塊blk,在圖2中例示多個區(qū)塊blk中的區(qū)塊blk0~blk3。區(qū)塊blk是與比特線及字線建立關(guān)聯(lián)的多個非易失性存儲器單元的集合,例如成為數(shù)據(jù)的刪除單位。在半導(dǎo)體存儲裝置10中,例如區(qū)塊blk0被用作高速緩存區(qū)域,區(qū)塊blk1~blk3被用作存儲區(qū)域。
高速緩存區(qū)域是暫時保存寫入數(shù)據(jù)的存儲區(qū)域。該高速緩存區(qū)域應(yīng)用使存儲器單元存儲1比特的數(shù)據(jù)的slc(single-levelcell,單級單元)方式。相對于此,存儲區(qū)域是每單位面積的存儲容量大于高速緩存區(qū)域的存儲區(qū)域,是數(shù)據(jù)的保存區(qū)域。該存儲區(qū)域應(yīng)用使存儲器單元存儲2比特以上的數(shù)據(jù)的mlc(multi-levelcell,多級單元)方式。因此,關(guān)于高速地寫入數(shù)據(jù),高速緩存區(qū)域比存儲區(qū)域更優(yōu)異。相對于此,就保存大容量的數(shù)據(jù)的方面來說,存儲區(qū)域比高速緩存區(qū)域更優(yōu)異。
因此,在從控制器20接收數(shù)據(jù)的寫入命令時,數(shù)據(jù)首先被暫時寫入至高速緩存區(qū)域。其后,在任意時間點(例如空白時間)將寫入至高速緩存區(qū)域的數(shù)據(jù)傳輸至存儲區(qū)域。由此,能夠兼顧數(shù)據(jù)的高速寫入與大容量化。
本實施方式是以應(yīng)用使存儲區(qū)域的存儲器單元存儲3比特的數(shù)據(jù)的tlc(triple-levelcell,三級單元)方式的情況為例進行說明。
讀出放大器模塊12從存儲器單元陣列11讀取數(shù)據(jù)dat,并視需要經(jīng)由輸入輸出電路14將所讀取出的數(shù)據(jù)dat輸出至控制器20。另外,讀出放大器模塊12將從控制器20經(jīng)由輸入輸出電路14接收的寫入數(shù)據(jù)dat傳輸至存儲器單元陣列11。
行解碼器13選擇與進行讀取及寫入的對象的存儲器單元對應(yīng)的字線。然后,行解碼器13對所選擇的字線及非選擇的字線分別施加所需的電壓。
輸入輸出電路14從控制器20接收指令cmd、地址信息add及寫入數(shù)據(jù)dat,并分別傳輸至指令寄存器15c、地址寄存器15b及讀出放大器模塊12。另外,輸入輸出電路14將從狀態(tài)寄存器15a及讀出放大器模塊12傳輸?shù)臓顟B(tài)信息sts及讀出數(shù)據(jù)dat發(fā)送至控制器20。所述多個輸入輸出信號例如經(jīng)由8比特寬的輸入輸出端子i/o1~i/o8而被收發(fā)。以下,將收發(fā)該8比特的數(shù)據(jù)的各條信號線稱為信號線dq0~dq7。
寄存器15包含狀態(tài)寄存器15a、地址寄存器15b、指令寄存器15c。狀態(tài)寄存器15a保存狀態(tài)信息sts。另外,狀態(tài)寄存器15a根據(jù)定序器17的指示而將該狀態(tài)信息sts傳輸至輸入輸出電路14。地址寄存器15b保存地址信息add。并且,地址寄存器15b將地址信息add所包含之列地址信號ca及行地址信號ra分別傳輸至讀出放大器模塊12及行解碼器13。指令寄存器15c保存指令cmd。并且,指令寄存器15c將指令cmd傳輸至定序器17。
邏輯控制電路16從控制器20接收各種控制信號以控制輸入輸出電路14及定序器17。作為該控制信號,例如使用芯片使能信號/ce、指令鎖存使能信號cle、地址鎖存使能信號ale、寫入使能信號/we、讀取使能信號/re及寫入保護信號/wp。信號/ce是用來使半導(dǎo)體存儲裝置10使能的信號。信號cle及ale分別是將輸入信號為指令及地址信號通知給輸入輸出電路14的信號。信號/we及/re分別是例如對輸入輸出電路14指示經(jīng)由輸入輸出端子i/o1~i/o8輸入及輸出信號的信號。信號/wp例如是用來在接通/斷開電源時使半導(dǎo)體存儲裝置10為保護狀態(tài)的信號。
定序器17控制半導(dǎo)體存儲裝置10整體的動作。具體來說,定序器17基于從指令寄存器15c傳輸?shù)闹噶頲md來控制讀出放大器模塊12、行解碼器13、電壓產(chǎn)生電路19等,而執(zhí)行數(shù)據(jù)的寫入、讀取動作等。
待命/忙碌控制電路18基于定序器17的動作狀態(tài)產(chǎn)生待命/忙碌信號ry/(/by),并將該信號發(fā)送至控制器20。信號ry/(/by)是將半導(dǎo)體存儲裝置10為待命狀態(tài)(受理來自控制器20的命令的狀態(tài))抑或是忙碌狀態(tài)(未受理來自控制器20的命令的狀態(tài))通知給控制器20的信號。另外,信號ry/(/by)是通過由待命/忙碌控制電路18控制連接在其輸出的晶體管tr的接通斷開而產(chǎn)生。例如,信號ry/(/by)在半導(dǎo)體存儲裝置10讀取數(shù)據(jù)等的動作中被設(shè)為“l(fā)”電平(忙碌狀態(tài)),當(dāng)這些動作結(jié)束時被設(shè)為“h”電平(待命狀態(tài))。
電壓產(chǎn)生電路19產(chǎn)生適合于存儲器單元陣列11、讀出放大器模塊12及行解碼器13的電壓。
此外,存儲器單元陣列11所具備的區(qū)塊blk數(shù)并不限定于此,可以設(shè)為任意的數(shù)量。另外,在多個區(qū)塊blk中,被分配至高速緩存區(qū)域的區(qū)塊blk的個數(shù)與被分配至存儲區(qū)域的區(qū)塊blk的個數(shù)也并不限定于此,可以分別設(shè)為任意的數(shù)量。
另外,作為控制器20獲知半導(dǎo)體存儲裝置10的動作狀態(tài)的機構(gòu),也可以不使用待命/忙碌控制電路18。在該情況下,定序器17將與待命/忙碌信號對應(yīng)的待命/忙碌信息存儲至狀態(tài)寄存器15a。因此,如果控制器20發(fā)布狀態(tài)讀取指令,那么該信息從狀態(tài)寄存器15a被讀出,并從輸入輸出電路14被輸出。由此,控制器20能夠獲知半導(dǎo)體存儲裝置10的動作狀態(tài)。
[1-1-2]區(qū)塊blk的構(gòu)成
接下來,使用圖3對區(qū)塊blk的構(gòu)成進行說明。在圖3中示出區(qū)塊blk及讀出放大器模塊12的電路圖。如圖3所示,區(qū)塊blk具備多個nand串ns。
各nand串ns與比特線bl0~bl(l-1)((l-1)為1以上的自然數(shù))對應(yīng)地設(shè)置,例如包含8個存儲器單元晶體管mt(mt0~mt7)及選擇晶體管st1、st2。
存儲器單元晶體管mt具備控制柵極及電荷儲存層,且非易失地保存數(shù)據(jù)。另外,存儲器單元晶體管mt串聯(lián)連接在選擇晶體管st1的源極與選擇晶體管st2的漏極之間。同一區(qū)塊內(nèi)的選擇晶體管st1及st2的柵極分別共通地連接在選擇柵極線sgd及sgs。同樣地,同一區(qū)塊內(nèi)的存儲器單元晶體管mt0~mt7的控制柵極分別共通地連接在字線wl0~wl7。
另外,在存儲器單元陣列11內(nèi)位于同一列的nand串ns的選擇晶體管st1的漏極共通地連接在比特線bl。也就是說,比特線bl將多個區(qū)塊blk間位于同一列的nand串ns共通地連接。進而,多個選擇晶體管st2的源極共通地連接在源極線sl。
在以上構(gòu)成中,將連接在共通的字線wl的多個存儲器單元所保存的1比特數(shù)據(jù)的集合稱為“頁”。因此,在應(yīng)用slc方式的情況下,在連接在1條字線wl的多個存儲器單元的集合中存儲1頁量的數(shù)據(jù)。另一方面,在應(yīng)用tlc方式的情況下,各存儲器單元能夠保存3比特數(shù)據(jù),因此在連接在1條字線wl的多個存儲器單元的集合中存儲了3頁量的數(shù)據(jù)(作為3比特中的上位比特數(shù)據(jù)的集合的上位頁、作為中位比特數(shù)據(jù)的集合的中位頁、及作為下位比特數(shù)據(jù)的集合的下位頁這3頁)。
換句話說,所謂“頁”,也可以定義為由連接在同一字線的存儲器單元所形成的存儲器空間的一部分。數(shù)據(jù)的寫入及讀取可以針對每一該頁進行(將該方式稱為page-by-pagereading/writing(逐頁讀取/寫入))。在該情況下,每次寫入或讀取1頁數(shù)據(jù)時,控制器20均對半導(dǎo)體存儲裝置10發(fā)布指令。
或者,數(shù)據(jù)的寫入及讀取也可以針對每條字線wl進行。在該情況下,應(yīng)用slc方式時的動作與針對每頁進行的情況相同,但在應(yīng)用tlc方式的情況下,通過1次指令輸入而統(tǒng)括地寫入或讀取被分配至1條字線wl的3頁量的數(shù)據(jù)(將該方式稱為sequentialreading/writing(順序讀取/寫入))。
以下,以page-by-pagereading/writing的情況為例進行說明,但在sequentialreading/writing的情況下也可以應(yīng)用。
此外,在所述構(gòu)成中,1個nand串ns所包含的存儲器單元晶體管mt的數(shù)量并不限定于此,可以設(shè)為任意的數(shù)量。
[1-1-3]讀出放大器模塊12的構(gòu)成
接下來,接著使用圖3對讀出放大器模塊12的構(gòu)成進行說明。如圖3所示,讀出放大器模塊12具備設(shè)置在每條比特線bl的讀出放大器單元sau(sau0~sau(l-1))。并且,各讀出放大器單元sau具備讀出放大器部sa、鎖存電路sdl、dl1、dl2及xdl、以及運算部op。這些讀出放大器部sa、鎖存電路sdl、dl1、dl2及xdl、以及運算部op是以能夠相互收發(fā)數(shù)據(jù)的方式連接。
讀出放大器部sa在讀取時讀出已被讀取至對應(yīng)的比特線bl的數(shù)據(jù),并判斷讀取數(shù)據(jù)是“0”還是“1”。另外,在寫入時,基于寫入數(shù)據(jù)對比特線bl施加電壓。
鎖存電路sdl、dl1及dl2暫時保存讀取數(shù)據(jù)及寫入數(shù)據(jù)。讀取時讀出放大器部sa所確定的讀取數(shù)據(jù)、及寫入時被傳輸至鎖存電路xdl的寫入數(shù)據(jù)例如被傳輸至鎖存電路sdl、dl1及dl2的任一個。
鎖存電路xdl用于讀出放大器單元sau與控制器20之間的數(shù)據(jù)的輸入輸出。也就是說,從控制器20接收的數(shù)據(jù)經(jīng)由鎖存電路xdl傳輸至鎖存電路sdl、dl1或者dl2、或讀出放大器部sa。另外,鎖存電路sdl、dl1或者dl2、或讀出放大器部sa的數(shù)據(jù)經(jīng)由鎖存電路xdl傳輸至控制器20。
運算部op基于保存在鎖存電路sdl、dl1及dl2的數(shù)據(jù)進行與門(and)運算、與非門(nand)運算、或門(or)運算、或非門(nor)運算、及異或非門(xnor)運算等各種邏輯運算。
此外,讀出放大器單元sau所具備的鎖存電路的個數(shù)并不限定于此。例如,基于1個存儲器單元所存儲的比特數(shù)進行設(shè)定。另外,也可以不在讀出放大器單元sau設(shè)置運算部op。在該情況下,運算部op的功能是通過鎖存電路sdl、dl1及dl2間的數(shù)據(jù)傳輸而實現(xiàn)。
[1-2]寫入動作
[1-2-1]寫入動作的概略
接下來,使用圖4對存儲器系統(tǒng)1的寫入動作的概略進行說明。在圖4中示出存儲器系統(tǒng)1中的寫入動作的流程圖。
首先,半導(dǎo)體存儲裝置10將從控制器20傳輸?shù)妮斎霐?shù)據(jù)以slc方式寫入至高速緩存區(qū)域(步驟s10)。接下來,半導(dǎo)體存儲裝置10將在步驟s10中寫入至高速緩存區(qū)域的3頁量的數(shù)據(jù)從該高速緩存區(qū)域讀取出(步驟s11)。此處從高速緩存區(qū)域讀取出的頁數(shù)是基于應(yīng)用于存儲區(qū)域的寫入方式而設(shè)定,且與在存儲區(qū)域中1個存儲器單元能夠存儲的數(shù)據(jù)的比特數(shù)對應(yīng)。在本例的情況下,存儲區(qū)域應(yīng)用tlc方式,因此從高速緩存區(qū)域讀取3頁量的數(shù)據(jù)。
接下來,半導(dǎo)體存儲裝置10將從高速緩存區(qū)域讀取出的3頁量的數(shù)據(jù)以tlc方式寫入至存儲區(qū)域(步驟s12)。
接下來,半導(dǎo)體存儲裝置10確認(rèn)從控制器20傳輸?shù)娜枯斎霐?shù)據(jù)是否被寫入至存儲區(qū)域(步驟s13)。在全部輸入數(shù)據(jù)未被寫入至存儲區(qū)域的情況下(步驟s13、no(否)),返回至步驟s11,半導(dǎo)體存儲裝置10進行剩余輸入數(shù)據(jù)的寫入處理。此處,在剩余輸入數(shù)據(jù)量小于3頁的情況下,將剩余的1頁或2頁量的數(shù)據(jù)從高速緩存區(qū)域讀出,并將讀出的數(shù)據(jù)的1比特或2比特量以tlc方式寫入至存儲區(qū)域。另一方面,在全部輸入數(shù)據(jù)已被寫入至存儲區(qū)域的情況下(步驟s13、yes(是)),存儲器系統(tǒng)1結(jié)束寫入動作。
如上所述,在存儲器系統(tǒng)1的寫入動作中,半導(dǎo)體存儲裝置10將從控制器20輸入的數(shù)據(jù)首先寫入至高速緩存區(qū)域。接下來,半導(dǎo)體存儲裝置10在結(jié)束對高速緩存區(qū)域的寫入后,將寫入的數(shù)據(jù)從高速緩存區(qū)域讀取并寫回至存儲區(qū)域。
在以上的動作中,將步驟s10中的數(shù)據(jù)的寫入稱作第1寫入動作,將步驟s11及s12稱作第2寫入動作,以下對這些動作的詳細(xì)內(nèi)容進行說明。
[1-2-2]第1寫入動作
[1-2-2-1]第1寫入動作的詳細(xì)內(nèi)容
首先,使用圖5對第1寫入動作的詳細(xì)內(nèi)容進行說明。在圖5中示出第1寫入動作的流程圖。
如圖5所示,首先,控制器20將寫入指令、地址及1頁量的數(shù)據(jù)發(fā)送至半導(dǎo)體存儲裝置10(步驟s30)。那么,在接收了這些信號的半導(dǎo)體存儲裝置10中,定序器17控制讀出放大器模塊12及行解碼器13等,并將所接收的1頁量的數(shù)據(jù)以slc方式寫入至高速緩存區(qū)域的存儲器單元(步驟s20)。該slc方式的寫入動作也包含寫入數(shù)據(jù)后的錯誤確認(rèn)動作。所謂錯誤確認(rèn)動作是指通過讀取所寫入的數(shù)據(jù)并將其與保存在讀出放大器內(nèi)的寫入數(shù)據(jù)進行比較而判斷是否產(chǎn)生寫入錯誤的動作。錯誤確認(rèn)動作的詳細(xì)內(nèi)容在下文中進行敘述。
在步驟s20之后,如果半導(dǎo)體存儲裝置從忙碌狀態(tài)轉(zhuǎn)變成待命狀態(tài),那么控制器發(fā)布狀態(tài)讀取指令“xxh”(步驟s31),并將其保存在半導(dǎo)體存儲裝置10的指令寄存器15c。指令“xxh”是命令包含錯誤訂正標(biāo)記的狀態(tài)信息的讀取的指令。當(dāng)指令“xxh”被儲存至寄存器15c時,定序器17從狀態(tài)寄存器15a讀取包含錯誤訂正標(biāo)記的狀態(tài)信息(步驟s21)。
使用圖6對在所述步驟s21中讀取的狀態(tài)信息進行說明。如圖示那樣,狀態(tài)信息例如為8比特的數(shù)據(jù),且包含錯誤訂正標(biāo)記及待命/忙碌信息。也就是說,錯誤訂正標(biāo)記保存在8比特數(shù)據(jù)的最上位比特,待命/忙碌信息保存在最下位比特。在本例中,未使用第2比特至第7比特,但這些比特中也可以包含其它信息。
錯誤訂正標(biāo)記例如在不需要進行對象頁的錯誤訂正的情況下變成“0”,在需要進行對象頁的錯誤訂正的情況下變成“1”。待命/忙碌信息表示半導(dǎo)體存儲裝置10能否從控制器20接收指令,例如在半導(dǎo)體存儲裝置10為忙碌狀態(tài)的情況下變成“0”,在待命狀態(tài)的情況下變成“1”。
并且,所述8比特數(shù)據(jù)從最上位比特依序與信號線dq0~dq7配對,并使用這些信號線將其輸出至控制器20(步驟s22)。然后,控制器20將所接收的狀態(tài)信息所含的錯誤訂正標(biāo)記以表的形式保存在寄存器23(步驟s32)。
使用圖7對所述步驟s32中由錯誤訂正標(biāo)記而產(chǎn)生的表進行說明。圖7是表的概念圖,存儲器單元陣列11的高速緩存區(qū)域具備分別包含n(n為1以上的自然數(shù))頁pg的m個(m為1以上的自然數(shù))區(qū)塊blk,并將該高速緩存區(qū)域的錯誤訂正標(biāo)記制成表。
如圖示那樣,表是(n×m)的矩陣,列表示字線wl的位置(頁pg0~pg(n-1)),行表示區(qū)塊blk的位置(區(qū)塊blk0~blk(m-1))。
例如,在區(qū)塊blk0中不包含需要錯誤訂正的頁的情況下,如圖7所示,與區(qū)塊blk0對應(yīng)的列中全部保存“0”。另一方面,在區(qū)塊blk1中第(n-2)頁pg(n-2)中需要錯誤訂正的情況下,如圖7所示,與區(qū)塊blk1的頁pg(n-2)對應(yīng)的單元中保存“1”,與其它不需要錯誤訂正的頁pg對應(yīng)的單元中保存“0”。以下的區(qū)塊blk也同樣。
該表例如是通過處理器21的處理而制作。具體來說,首先,nand接口電路25將從半導(dǎo)體存儲裝置10接收的狀態(tài)信息傳輸至緩沖存儲器26。接下來,處理器21從存儲在緩沖存儲器26中的狀態(tài)信息中提取錯誤訂正標(biāo)記。接下來,處理器21將所提取的錯誤訂正標(biāo)記與對應(yīng)的字線wl及區(qū)塊blk建立關(guān)聯(lián)而制成表,并將其保存在寄存器23。
并且,通過參照該表,處理器21能夠獲得哪一區(qū)塊的哪一頁中需要錯誤訂正的信息。
在步驟s22之后,在已寫入的數(shù)據(jù)并非為最后1頁量的情況下(步驟s23、否),返回至步驟s20,半導(dǎo)體存儲裝置10進行剩余輸入數(shù)據(jù)的寫入處理。另一方面,在已寫入的數(shù)據(jù)為最后1頁量的情況下(步驟s23、是),存儲器系統(tǒng)1結(jié)束第1寫入動作。
[1-2-2-2]錯誤確認(rèn)動作
接下來,使用圖8對錯誤確認(rèn)動作的詳細(xì)內(nèi)容進行說明。在圖8中示出第1寫入動作的時序圖,且示出各動作的處理狀態(tài)與保存在鎖存電路sdl、dl1及xdl的數(shù)據(jù)。
如圖8所示,第1寫入動作大體包含寫入動作與錯誤確認(rèn)動作。以下,為了與包含第1寫入動作及第2寫入動作的“廣義的寫入動作”進行區(qū)分,將第1寫入動作所含的寫入動作稱為“狹義的寫入動作”。
首先,在時刻t0,開始進行基于slc方式的狹義的寫入動作。該寫入例如包含3次編程循環(huán)操作及在3次編程循環(huán)操作后進行的檢測動作。編程循環(huán)操作是編程動作與編程驗證動作的組合,所述編程動作是將電子注入至電荷儲存層而使閾值電壓變動(如果是非寫入對象單元,那么例如通過自升壓技術(shù)等而抑制閾值電壓的變動),所述編程驗證動作判斷通過該編程動作而變動后的閾值電壓是否處于適當(dāng)?shù)碾娖?。另外,檢測動作是如下動作:對第3次編程循環(huán)操作中的驗證動作結(jié)果進行確認(rèn),并判斷驗證失敗的比特數(shù)(失敗比特數(shù))是否變成某閾值以上。
如圖示那樣,在重復(fù)進行編程循環(huán)操作的期間,鎖存電路sdl保存驗證結(jié)果,鎖存電路dl1保存對所選擇的頁的寫入數(shù)據(jù),鎖存電路xdl保存寫入至下一頁的數(shù)據(jù)。
接下來,在時刻t1,定序器17參照讀出放大器模塊的鎖存電路sdl確認(rèn)失敗比特數(shù)。此處,在失敗比特數(shù)變成閾值以上的情況下,返回至?xí)r刻t0,并再次進行編程循環(huán)操作。另一方面,在失敗比特數(shù)小于閾值的情況下,移行至?xí)r刻t2的動作。此外,確認(rèn)該失敗比特數(shù)的動作可以在每次編程循環(huán)操作中執(zhí)行,也可以在規(guī)定次數(shù)的編程循環(huán)操作后執(zhí)行。另外,在執(zhí)行了規(guī)定次數(shù)的該確認(rèn)動作后失敗比特數(shù)小于閾值的情況下,定序器17將對象頁的寫入設(shè)為失敗,并將表示該頁的寫入失敗的信息保存在狀態(tài)寄存器15a。
接下來,在時刻t2,定序器17開始進行錯誤確認(rèn)動作。錯誤確認(rèn)動作大體包含讀取動作、數(shù)據(jù)運算動作及檢測動作這3個步驟。以下,對它們的詳細(xì)內(nèi)容進行說明。
如圖示那樣,首先,在時刻t2,定序器17開始進行讀取動作。也就是說,各讀出放大器單元sau將寫入數(shù)據(jù)保存在鎖存電路dl1,并直接將剛寫入的數(shù)據(jù)(在時刻t0~t1寫入的數(shù)據(jù))從存儲器單元陣列11讀出。從存儲器單元陣列11讀出的數(shù)據(jù)被保存在鎖存電路sdl。
接下來,在時刻t3,開始進行數(shù)據(jù)運算動作。也就是說,各讀出放大器單元sau的運算部op進行保存在鎖存電路sdl的數(shù)據(jù)與保存在鎖存電路dl1的數(shù)據(jù)的xnor運算。也就是說,運算部op判定寫入數(shù)據(jù)與來自寫入對象頁的讀取數(shù)據(jù)是否一致。該運算結(jié)果被保存在鎖存電路dl1,此處,表示運算結(jié)果不一致的比特表示在讀取時被作為錯誤而檢測出的可能性高。
接下來,在時刻t4,開始進行檢測動作。也就是說,定序器17對表示xnor運算結(jié)果不一致的讀出放大器單元sau的數(shù)量(錯誤比特數(shù))進行確認(rèn)。具體來說,定序器17在該錯誤比特數(shù)小于閾值的情況下,將錯誤訂正標(biāo)記設(shè)為“0”(無需對象頁的錯誤訂正),在錯誤比特數(shù)超過閾值的情況下,將錯誤訂正標(biāo)記設(shè)為“1”(必需對象頁的錯誤訂正)。該錯誤訂正標(biāo)記如上所述那樣存儲在狀態(tài)寄存器15a。
此外,在所述動作中保存各數(shù)據(jù)的鎖存電路并不限定于此,可以進行各種變更。例如,也可以使xnor運算結(jié)果保存在未圖示的鎖存電路dl2。
[1-2-2-3]第1寫入動作的指令順序
接下來,使用圖9對第1寫入動作的指令順序進行說明。在圖9中示出第1寫入動作的指令順序的一例。以下,以將3頁量的數(shù)據(jù)寫入至高速緩存區(qū)域的情況為例進行說明。此外,在以下的說明中,由控制器20發(fā)布的地址及指令分別被存儲在地址寄存器15b及指令寄存器15c。
如圖9所示,首先控制器20發(fā)布指令“a2h”,并發(fā)送至半導(dǎo)體存儲裝置10。指令“a2h”是對半導(dǎo)體存儲裝置10命令以slc方式進行處理的指令。接下來,控制器20發(fā)布寫入指令“80h”,并發(fā)送至半導(dǎo)體存儲裝置10。指令“80h”是命令寫入的指令。
接下來,控制器20例如跨及5個循環(huán)發(fā)布地址信息add,并發(fā)送至半導(dǎo)體存儲裝置10。該地址信息add是指定高速緩存區(qū)域的地址的信息。接下來,控制器20跨及多個循環(huán)將寫入數(shù)據(jù)din輸出至半導(dǎo)體存儲裝置10(圖5、步驟s30)。此處所輸出的數(shù)據(jù)din合計相當(dāng)于1頁量的數(shù)據(jù),例如被保存在讀出放大器模塊12的鎖存電路xdl。
接下來,控制器20發(fā)布指令“10h”,并發(fā)送至半導(dǎo)體存儲裝置10。指令“10h”是基于剛發(fā)送來的地址信息及數(shù)據(jù)din而用來使半導(dǎo)體存儲裝置10執(zhí)行數(shù)據(jù)寫入的指令。如果指令“10h”被保存至寄存器15c,那么定序器17控制讀出放大器模塊12及行解碼器13等,并開始進行包含錯誤確認(rèn)動作的slc方式的寫入動作(圖5、步驟s20)。此時,讀出放大器模塊12對寄存器內(nèi)的地址信息中的列地址信號ca進行解碼,并將保存在鎖存電路xdl的數(shù)據(jù)din傳輸至各比特線bl。另外,行解碼器13對寄存器內(nèi)的地址信息中的行地址信息ra進行解碼,并對選擇字線及非選擇字線施加所需的電壓。此時,待命/忙碌控制電路18將待命/忙碌信號設(shè)為“l(fā)”電平,并將半導(dǎo)體存儲裝置10為忙碌狀態(tài)通知給控制器20。接下來,如果半導(dǎo)體存儲裝置10結(jié)束寫入動作,那么待命/忙碌控制電路18將待命/忙碌信號設(shè)為“h”電平,并將半導(dǎo)體存儲裝置10為待命狀態(tài)通知給控制器20。圖示的tprog(slc)表示進行該slc方式的寫入動作的期間。
接下來,控制器20發(fā)布指令“xxh”,并將其發(fā)送至半導(dǎo)體存儲裝置10(圖5、步驟s31)。指令“xxh”是用來從狀態(tài)寄存器15a讀取狀態(tài)信息的指令。如果指令“xxh”被保存至寄存器15c,那么定序器17讀取存儲在寄存器15a的包含錯誤訂正標(biāo)記的狀態(tài)信息(圖5、步驟s21),并將包含狀態(tài)信息的數(shù)據(jù)dout輸出至控制器20(圖5、步驟s22)。當(dāng)控制器20接收數(shù)據(jù)dout時,從數(shù)據(jù)dout提取錯誤訂正標(biāo)記并將其存儲在寄存器23(圖5、步驟s32)。
以上的動作與將1頁量的數(shù)據(jù)寫入至高速緩存區(qū)域相對應(yīng)。關(guān)于以下的第2頁及第3頁的數(shù)據(jù)的寫入,僅地址信息add及數(shù)據(jù)din、dout的內(nèi)容不同,指令順序相同,因此省略說明。
[1-2-3]第2寫入動作
[1-2-3-1]第2寫入動作的詳細(xì)內(nèi)容
接下來,使用圖10對第2寫入動作的詳細(xì)內(nèi)容進行說明。在圖10中示出第2寫入動作的流程圖。
如圖10所示,首先控制器20發(fā)布讀取指令,并將其發(fā)送至半導(dǎo)體存儲裝置10(步驟s40)。該讀取指令是命令半導(dǎo)體存儲裝置10從存儲器單元陣列11向讀出放大器模塊讀取1頁量的指令。接下來,控制器20發(fā)送成為讀取對象的區(qū)域的地址。該地址相當(dāng)于存儲器單元陣列11的高速緩存區(qū)域的任一頁。
定序器17基于所接收的讀取指令,從存儲器單元陣列11的高速緩存區(qū)域讀取1頁量的數(shù)據(jù)(步驟s41)。具體來說,行解碼器13對寄存器15內(nèi)的地址信息中的行地址信息ra進行解碼,并對選擇字線及非選擇字線施加所需的電壓。然后,讀出放大器模塊12讀出已被讀取至比特線的數(shù)據(jù)。此時所讀出的數(shù)據(jù)例如保存在各讀出放大器單元sau的鎖存電路sdl。
接下來,控制器20的例如處理器21參照存儲在寄存器23的表,對與剛將數(shù)據(jù)讀出后的頁對應(yīng)的錯誤訂正標(biāo)記進行確認(rèn)(步驟s42)。
此處,在所參照的錯誤訂正標(biāo)記為“1”的情況下(步驟s43、是)、也就是對象數(shù)據(jù)為必需錯誤訂正的數(shù)據(jù)的情況下,控制器20發(fā)布數(shù)據(jù)輸出指令,并將其發(fā)送至半導(dǎo)體存儲裝置10(步驟s44)。該數(shù)據(jù)輸出指令是命令從讀出放大器模塊12向控制器20輸出數(shù)據(jù)的指令。接下來,控制器20發(fā)送成為讀取對象的讀出放大器單元的地址。
定序器17基于所接收的數(shù)據(jù)輸出指令,從由地址指定的讀出放大器單元sau的鎖存電路sdl經(jīng)由鎖存電路xdl傳輸至控制器20(步驟s45)。該數(shù)據(jù)例如保存在緩沖存儲器26。
接下來,控制器20的ecc電路24執(zhí)行所接收到的讀取數(shù)據(jù)的錯誤訂正處理(步驟s46)。
接下來,控制器20發(fā)布指令“80h”并將其發(fā)送至半導(dǎo)體存儲裝置10,接著將作為寫入數(shù)據(jù)的錯誤訂正后的讀取數(shù)據(jù)傳輸至半導(dǎo)體存儲裝置10(步驟s47)。
另一方面,在步驟s43中所參照的錯誤訂正標(biāo)記為“0”的情況下(步驟s43、否)、也就是對象數(shù)據(jù)為無需錯誤訂正的數(shù)據(jù)的情況下,控制器20發(fā)布指令“80h”并將其發(fā)送至半導(dǎo)體存儲裝置10(步驟s48)。此時,未從控制器20向半導(dǎo)體存儲裝置10發(fā)送寫入數(shù)據(jù)。
在步驟s47或s48之后,控制器20判定從高速緩存區(qū)域讀取出的數(shù)據(jù)是否達(dá)到以tlc方式寫入至在存儲區(qū)域中連接在同一字線的存儲器單元的3頁量(步驟s49)。
在從高速緩存區(qū)域讀取出的數(shù)據(jù)未達(dá)到3頁量的情況下(步驟s49、否),控制器20以將讀取數(shù)據(jù)傳輸至并未保存從高速緩存區(qū)域讀取出的數(shù)據(jù)的鎖存電路dl1或dl2的方式對半導(dǎo)體存儲裝置10進行命令(步驟s50),并返回至步驟s40的動作。
另一方面,在從高速緩存區(qū)域讀出的數(shù)據(jù)達(dá)到3頁量的情況下(步驟s49、是),控制器20發(fā)布寫入指令并將其發(fā)送至半導(dǎo)體存儲裝置10(步驟s51)。該寫入指令是用來使半導(dǎo)體存儲裝置10開始實際地對存儲器單元寫入數(shù)據(jù)的指令。
于是,定序器17根據(jù)步驟s51中所接收到的寫入指令,將保存在各讀出放大器單元sau的鎖存電路sdl、dl1及dl2的3比特量的數(shù)據(jù)以tlc方式寫入至在存儲區(qū)域連接在同一字線wl的存儲器單元(步驟s52)。具體來說,行解碼器13對寄存器15內(nèi)的地址信息中的行地址信息ra進行解碼,并對選擇字線及非選擇字線施加所需的電壓。另外,讀出放大器模塊12將保存在鎖存電路sdl、dl1及dl2的數(shù)據(jù)傳輸至各比特線bl。更具體來說,將與這些數(shù)據(jù)對應(yīng)的電壓施加至比特線bl。以此方式,當(dāng)3比特量的數(shù)據(jù)寫入結(jié)束時,存儲器系統(tǒng)1結(jié)束第2寫入動作。
在以上的說明中,步驟s40至步驟s50的動作與圖4所示的步驟s11的動作對應(yīng),步驟s51及步驟s52的動作與圖4所示的步驟s12的動作對應(yīng)。
此外,在進行對存儲區(qū)域的數(shù)據(jù)寫入之前,保存在各讀出放大器單元sau的數(shù)據(jù)的頁數(shù)基于存儲區(qū)域所應(yīng)用的寫入方式而變化。也就是說,基于存儲區(qū)域的存儲器單元所存儲的數(shù)據(jù)的比特數(shù),各讀出放大器單元所必需的鎖存電路dl的個數(shù)也會發(fā)生變化。
[1-2-3-2]第2寫入動作的指令順序
接下來,使用圖11~圖13對第2寫入動作的指令順序進行說明。在圖11中示出第2寫入動作的指令順序的一例,在圖12及圖13中分別示出錯誤訂正標(biāo)記為“1”及“0”的情況下的數(shù)據(jù)的傳輸路徑的一例。以下,以在從高速緩存區(qū)域讀出的3頁量的數(shù)據(jù)中第1頁的錯誤訂正標(biāo)記為“1”、第2頁及第3頁的錯誤訂正標(biāo)記為“0”的情況為例進行說明。
如圖11所示,首先,控制器20持續(xù)發(fā)布指令“a2h”及“00h”,并分別發(fā)送至半導(dǎo)體存儲裝置10(圖10、步驟s40)。指令“00h”相當(dāng)于步驟s40中所說明的用于讀取的地址輸入受理指令,是命令半導(dǎo)體存儲裝置10讀取數(shù)據(jù)的指令。接下來,控制器20例如跨及5個循環(huán)發(fā)布地址信息add,并將其發(fā)送至半導(dǎo)體存儲裝置10。該地址信息add是指定高速緩存區(qū)域的地址的信息。接下來,控制器20發(fā)布指令“30h”,并將其發(fā)送至半導(dǎo)體存儲裝置10。指令“30h”是基于剛發(fā)送來的地址信息而用來使半導(dǎo)體存儲裝置10執(zhí)行數(shù)據(jù)讀取的指令。如果指令“30h”被儲存至寄存器15c,那么定序器17控制讀出放大器模塊12及行解碼器13等,并開始進行讀取動作(圖10、步驟s41)。此時,待命/忙碌控制電路18將待命/忙碌信號設(shè)為“l(fā)”電平,并將半導(dǎo)體存儲裝置10為忙碌狀態(tài)通知給控制器20。并且,當(dāng)半導(dǎo)體存儲裝置10結(jié)束讀出動作時,待命/忙碌控制電路18將待命/忙碌信號設(shè)為“h”電平,并將半導(dǎo)體存儲裝置10為待命狀態(tài)通知給控制器20。圖示的tread表示進行該讀取動作的期間。
在數(shù)據(jù)訂正標(biāo)記為“1”的情況下(圖10、步驟s43、是),控制器20在結(jié)束讀取動作后發(fā)布指令“05h”,并將其發(fā)送至半導(dǎo)體存儲裝置10(圖10、步驟s44)。指令“5h”相當(dāng)于步驟s44中說明的數(shù)據(jù)輸出指令,是命令從半導(dǎo)體存儲裝置10向控制器20輸出數(shù)據(jù)的指令。并且,控制器20例如跨及5個循環(huán)發(fā)布地址信息add后發(fā)布指令“e0h”,并分別發(fā)送至半導(dǎo)體存儲裝置10。該地址信息add與剛進行讀取的數(shù)據(jù)的地址對應(yīng)。指令“e0h”是基于剛發(fā)送來的地址信息而用來使半導(dǎo)體存儲裝置10執(zhí)行向控制器20輸出數(shù)據(jù)的指令。如果指令“e0h”被儲存至寄存器15c,那么儲存在讀出放大器模塊12的包含錯誤的讀出數(shù)據(jù)dout被輸出至控制器20(圖10、步驟s45)。然后,控制器20使用ecc電路24對所輸出的讀取數(shù)據(jù)dout的錯誤進行訂正(圖10、步驟s46)。
接下來,控制器20持續(xù)發(fā)布指令“01h”及“80h”,并分別發(fā)送至半導(dǎo)體存儲裝置10(圖10、步驟s47)。指令“01h”表示為第1頁的寫入數(shù)據(jù),是命令向?qū)?yīng)的鎖存電路傳輸數(shù)據(jù)的指令。然后,控制器20例如跨及5個循環(huán)發(fā)布地址信息add,并將其發(fā)送至半導(dǎo)體存儲裝置10。該地址信息add是指定存儲區(qū)域的地址的信息。進而,控制器20將對錯誤進行了訂正后的讀取數(shù)據(jù)din輸出至半導(dǎo)體存儲裝置10,接著發(fā)布指令“1ah”并將其發(fā)送至半導(dǎo)體存儲裝置10。如果指令“1ah”被儲存至寄存器15c,那么定序器17將所輸入的讀取數(shù)據(jù)din傳輸至對應(yīng)的讀出放大器單元sau的鎖存電路dl1(圖10、步驟s50)。此時,待命/忙碌控制電路18將待命/忙碌信號設(shè)為“l(fā)”電平,并將半導(dǎo)體存儲裝置10為忙碌狀態(tài)通知給控制器20。接下來,當(dāng)數(shù)據(jù)傳輸結(jié)束時,待命/忙碌控制電路18將待命/忙碌信號設(shè)為“h”電平,并將半導(dǎo)體存儲裝置10為待命狀態(tài)通知給控制器20。圖示的tdltrans表示進行數(shù)據(jù)傳輸?shù)钠陂g。
以上的說明與在第1頁的數(shù)據(jù)讀取中錯誤訂正標(biāo)記為“1”的情況下的指令順序?qū)?yīng)。圖12圖示了該動作中的讀取數(shù)據(jù)的傳輸路徑。
在第2頁以后的數(shù)據(jù)讀取中錯誤訂正標(biāo)記為“0”的情況下的指令順序相對于錯誤訂正標(biāo)記為“1”的情況的不同點是未發(fā)布與錯誤訂正處理相關(guān)的指令。以下,關(guān)于第2頁以后的數(shù)據(jù)讀取及數(shù)據(jù)寫入,對與錯誤訂正標(biāo)記為“1”的情況的不同點詳細(xì)地進行說明。
如圖11所示,在第2頁數(shù)據(jù)讀取中,首先控制器20發(fā)布指令“a2h”至結(jié)束數(shù)據(jù)讀取(直至tread的期間結(jié)束)與錯誤訂正標(biāo)記為“1”的情況同樣。
接下來,控制器20持續(xù)發(fā)布指令“02h”及“80h”,并分別發(fā)送至半導(dǎo)體存儲裝置10(圖10、步驟s48)。指令“02h”表示為第2頁的寫入數(shù)據(jù),是命令向?qū)?yīng)的鎖存電路傳輸數(shù)據(jù)的指令。然后,控制器20例如跨及5個循環(huán)發(fā)布地址信息add,并將其發(fā)送至半導(dǎo)體存儲裝置10。進而,控制器20發(fā)布指令“1ah”,并將其發(fā)送至半導(dǎo)體存儲裝置10。如果半導(dǎo)體存儲裝置10接收到指令“1ah”,那么將讀取數(shù)據(jù)傳輸至鎖存電路dl2。
圖13圖示了在該第2頁的數(shù)據(jù)讀取中錯誤訂正標(biāo)記為“0”的情況下的讀取數(shù)據(jù)的傳輸路徑。如圖13所示,錯誤訂正標(biāo)記為“0”的情況下的動作并不經(jīng)由讀出放大器單元sau與控制器20之間的數(shù)據(jù)傳輸。
第3頁的數(shù)據(jù)讀取與相對于如圖11所示在第2頁的數(shù)據(jù)讀取中發(fā)布指令“02h”及“1ah”而發(fā)布指令“03h”及“10h”的情況相同。指令“03h”是表示為第3頁的寫入數(shù)據(jù)的指令,指令“10h”是命令tlc方式的寫入的指令。
如果指令“10h”被儲存至寄存器15c,那么定序器17控制讀出放大器模塊12及行解碼器13等,并進行tlc方式的寫入動作(圖10、步驟s44)。此時,待命/忙碌控制電路18將待命/忙碌信號設(shè)為“l(fā)”電平,并將半導(dǎo)體存儲裝置10為忙碌狀態(tài)通知給控制器20。然后,當(dāng)半導(dǎo)體存儲裝置10結(jié)束寫入動作時,待命/忙碌控制電路18將待命/忙碌信號設(shè)為“h”電平,并將半導(dǎo)體存儲裝置10為待命狀態(tài)通知給控制器20。圖示的tprog(tlc)表示進行該tlc方式的寫入動作的期間。
通過以上的動作,從高速緩存區(qū)域讀出的3頁量的數(shù)據(jù)被寫入至在存儲區(qū)域連接在同一字線wl的存儲器單元。
[1-3]第1實施方式的效果
接下來,對第1實施方式的效果進行說明。根據(jù)第1實施方式的半導(dǎo)體存儲裝置10,能夠一邊維持?jǐn)?shù)據(jù)的可靠性,一邊使寫入動作高速化。以下,對該效果的詳細(xì)內(nèi)容進行說明。
在具備使用存儲1比特的數(shù)據(jù)的存儲器單元的高速緩存區(qū)域與使用存儲2比特以上的存儲器單元的存儲區(qū)域的半導(dǎo)體存儲裝置中,首先將寫入數(shù)據(jù)寫入至高速緩存區(qū)域后寫回至存儲區(qū)域,由此比直接將數(shù)據(jù)寫入至存儲區(qū)域的情況更能使寫入速度高速化。
然而,如果因微細(xì)化等的影響而導(dǎo)致從高速緩存區(qū)域讀出的數(shù)據(jù)所包含的錯誤比特數(shù)增加,那么必需錯誤訂正處理。并且,在進行錯誤訂正處理的情況下,會在半導(dǎo)體存儲裝置與控制器之間產(chǎn)生數(shù)據(jù)的交換,進而錯誤訂正處理本身耗費時間,因此寫入速度減慢。
因此,第1實施方式的半導(dǎo)體存儲裝置10在進行對高速緩存區(qū)域的寫入時進行錯誤確認(rèn)動作,并根據(jù)該確認(rèn)結(jié)果判斷是否需要寫回時的錯誤訂正處理。
具體來說,在錯誤確認(rèn)動作中,半導(dǎo)體存儲裝置10在剛對高速緩存區(qū)域?qū)懭牒螅_認(rèn)所寫入的數(shù)據(jù)是否被正確地讀取。然后,半導(dǎo)體存儲裝置10在錯誤比特數(shù)達(dá)到指定值以上的情況下確立錯誤訂正標(biāo)記,并將該標(biāo)記信息發(fā)送至控制器20??刂破?0根據(jù)所接收的標(biāo)記信息制作表,并將其保存在控制器20內(nèi)的寄存器23。由此控制器20能夠獲知存儲器單元陣列11內(nèi)必需錯誤訂正的頁的地址。
進而,控制器20在寫回數(shù)據(jù)時,基于錯誤訂正標(biāo)記進行錯誤訂正。具體來說,當(dāng)在錯誤訂正標(biāo)記為“1”的頁寫回時,控制器20將數(shù)據(jù)從半導(dǎo)體存儲裝置10讀出,并通過ecc電路24對錯誤進行訂正。接下來,將經(jīng)訂正后的數(shù)據(jù)發(fā)送至半導(dǎo)體存儲裝置10,且半導(dǎo)體存儲裝置10將該數(shù)據(jù)寫回至存儲器單元陣列11。另一方面,當(dāng)在錯誤訂正標(biāo)記為“0”的頁寫回時,控制器20并不特別讀取數(shù)據(jù),而由半導(dǎo)體存儲裝置10將已讀取至讀出放大器模塊12的數(shù)據(jù)直接寫回至存儲器單元陣列11。
由此,第1實施方式的半導(dǎo)體存儲裝置10在為了寫回至存儲區(qū)域而從高速緩存區(qū)域讀出的數(shù)據(jù)的錯誤比特數(shù)多的情況下進行錯誤訂正,因此能夠提高數(shù)據(jù)的可靠性。另外,在寫回至存儲區(qū)域時,僅在必需的情況下進行錯誤訂正處理,因此能夠使寫入動作高速化。
[2]第2實施方式
接下來,對第2實施方式的存儲器系統(tǒng)1進行說明。第2實施方式將所述第1實施方式中說明的錯誤訂正標(biāo)記變更為移位讀取(shiftread)標(biāo)記。并且,在第2寫入動作中的從高速緩存區(qū)域讀取數(shù)據(jù)時,基于移位讀取標(biāo)記進行移位讀取。以下,對與第1實施方式的不同點進行說明。
[2-1]關(guān)于移位讀取
首先,使用圖14對移位讀取進行說明。在圖14中示出存儲1比特的數(shù)據(jù)的存儲器單元的閾值分布,圖14的縱軸及橫軸分別與存儲器單元的數(shù)量及閾值電壓vth對應(yīng)。
如圖14所示,存儲1比特的數(shù)據(jù)的存儲器單元能夠獲取2個閾值的任一個。圖14所示的低閾值分布“er”為刪除狀態(tài),例如被分配數(shù)據(jù)“1”。另一方面,高閾值分布“a”為寫入狀態(tài),例如被分配數(shù)據(jù)“0”。在讀取這種存儲在存儲器單元的數(shù)據(jù)的情況下,通過將讀取電壓vr設(shè)定在閾值分布“er”與閾值分布“a”之間,而判定存儲在存儲器單元的數(shù)據(jù)。
然而,在存儲器單元劣化的情況下或具有不良的情況下,如圖14的虛線所示,存在閾值分布擴大的情況。例如,如圖14所示,如果擴大后的閾值分布“er”的下擺超過讀取電壓vr,那么存在在預(yù)先設(shè)定的讀取電壓vr下讀取數(shù)據(jù)的錯誤比特數(shù)增加的情況。
因此,對錯誤比特數(shù)增加后的頁進行變更用于數(shù)據(jù)讀取的電壓的移位讀取。具體來說,在移位讀取中,例如,如圖14所示,用于讀取數(shù)據(jù)的電壓從讀取電壓vr變更為向增高的方向移位后的讀取電壓vr'。該讀取電壓vr的移位量被最佳化為擴大后的閾值分布。
使用如所述那樣最佳化后的讀取電壓vr'的移位讀取在讀取劣化或具有不良的存儲器單元的數(shù)據(jù)的情況下,能夠降低讀取數(shù)據(jù)的錯誤比特數(shù)。
在第2實施方式的存儲器系統(tǒng)1中,進行基于移位讀取標(biāo)記的移位讀取。移位讀取標(biāo)記是基于第1實施方式中說明的錯誤確認(rèn)動作的結(jié)果而設(shè)定,例如在錯誤確認(rèn)動作中,在錯誤比特數(shù)小于閾值的情況下將移位讀取標(biāo)記設(shè)為“0”,在錯誤比特數(shù)超過閾值的情況下將移位讀取標(biāo)記設(shè)為“1”。在該情況下,移位讀取標(biāo)記“0”表示無需對象頁的移位讀取,移位讀取標(biāo)記“1”表示必需對象頁的移位讀取。
此外,使讀取電壓vr'從讀取電壓vr移位的量及方向能夠適當(dāng)進行變更。例如,在擴大后的閾值分布“a”的下擺小于讀取電壓vr的情況下,讀取電壓vr向降低的方向移位。
[2-2]寫入動作
接下來,對第2實施方式的存儲器系統(tǒng)1的寫入動作進行說明。寫入動作的概略與第1實施方式相同,第1及第2寫入動作的詳細(xì)內(nèi)容的一部分與第1實施方式不同。以下,對第2實施方式的存儲器系統(tǒng)1的第1及第2寫入動作與第1實施方式的不同點進行說明。
[2-2-1]第1寫入動作的詳細(xì)內(nèi)容
首先,使用圖15及圖16對第1寫入動作進行說明。在圖15中示出高速緩存區(qū)域?qū)懭雱幼鞯牧鞒虉D,在圖16中示出高速緩存寫入動作時的狀態(tài)讀取結(jié)果。第2實施方式的存儲器系統(tǒng)1的第1寫入動作是在第1實施方式中說明的圖5中,將與錯誤訂正標(biāo)記相關(guān)的動作替換成與移位讀取標(biāo)記相關(guān)的動作。
如圖15所示,首先,半導(dǎo)體存儲裝置10及控制器20分別進行所述步驟s20及步驟s30的動作。此外,在步驟s20中的錯誤確認(rèn)動作中,基于錯誤確認(rèn)結(jié)果的移位讀取標(biāo)記被儲存在狀態(tài)寄存器15a。
接下來,半導(dǎo)體存儲裝置10接收控制器20所發(fā)布的狀態(tài)讀取指令“yyh”(步驟s70),并將所接收到的指令“yyh”存儲至指令寄存器15c。指令“yyh”是命令讀取包含移位讀取標(biāo)記的狀態(tài)信息的指令。如果指令“yyh”儲存至指令寄存器15c,那么定序器17將包含移位讀取標(biāo)記的狀態(tài)信息從狀態(tài)寄存器15a讀出(步驟s60)。
然后,所讀出的狀態(tài)信息經(jīng)由信號線dq0~dq7被輸出至控制器20(步驟s61),控制器20將所接收到的狀態(tài)信息所包含的移位讀取標(biāo)記以表的形式保存至寄存器23(步驟s71)。以下的動作與第1實施方式中說明的圖5相同,因此省略說明。
此外,在所述步驟s61中從半導(dǎo)體存儲裝置10輸出的狀態(tài)信息成為例如圖16所示的信息。如圖16所示,包含移位讀取標(biāo)記的狀態(tài)信息與相對于圖6中說明的包含錯誤訂正標(biāo)記的狀態(tài)信息而將錯誤訂正標(biāo)記替換成移位讀取標(biāo)記的情況相同。
另外,保存在寄存器23的移位讀取標(biāo)記的表的構(gòu)成及制作方法與例如圖7中說明的錯誤訂正標(biāo)記的表相同。
[2-2-2]第2寫入動作
[2-2-2-1]第2寫入動作的詳細(xì)內(nèi)容
接下來,使用圖17對第2寫入動作進行說明。在圖17中示出第2寫入動作的流程圖。第2實施方式的存儲器系統(tǒng)1的第2寫入動作是在第1實施方式中說明的圖10中,將與錯誤訂正標(biāo)記相關(guān)的動作替換成與移位讀取標(biāo)記相關(guān)的動作。
如圖17所示,首先,控制器20的例如處理器21參照存儲在寄存器23的表,對與此后讀取的頁對應(yīng)的移位讀取標(biāo)記進行確認(rèn)(步驟s80)。
此處,在所參照的移位讀取標(biāo)記為“1”的情況下(步驟s81、是)、也就是此后讀取對象的頁中必需移位讀取的情況下,控制器20發(fā)布移位讀取指令,并將其發(fā)送至半導(dǎo)體存儲裝置10(步驟s82)。該移位讀取指令是命令半導(dǎo)體存儲裝置10從存儲器單元陣列11向讀出放大器模塊12利用移位讀取來讀取1頁量的指令。
另一方面,在步驟s81中所參照的移位讀取標(biāo)記為“0”的情況下(步驟s81、否)、也就是在讀取對象的頁中無需移位讀取的情況下,控制器20發(fā)布通常的讀取指令并將其發(fā)送至半導(dǎo)體存儲裝置10(步驟s83)。
在步驟s82或s83之后,控制器20發(fā)送成為讀取對象的區(qū)域的地址。該地址相當(dāng)于存儲器單元陣列11的高速緩存區(qū)域的任一頁。
定序器17基于所接收到的移位讀取指令或讀取指令,將1頁量的數(shù)據(jù)從存儲器單元陣列11的高速緩存區(qū)域讀出(步驟s84)。也就是說,在步驟s84中,在經(jīng)由步驟s82的情況下進行移位讀取,在經(jīng)由步驟s83的情況下進行通常讀取。在該移位讀取與通常讀取中,讀取動作時施加至字線wl的電壓不同。
在步驟s84之后,存儲器系統(tǒng)1的動作移行至所述步驟s48。以下的動作與第1實施方式中說明的圖10相同,僅圖17中從步驟s50移行至步驟s80的方面不同。
[2-2-2-2]第2寫入動作的指令順序
接下來,使用圖18對第2寫入動作的指令順序進行說明。在圖18中示出第2寫入動作的指令順序的一例。以下,以在從高速緩存區(qū)域讀取的3頁量的數(shù)據(jù)中第1頁的移位讀取標(biāo)記為“1”、第2頁及第3頁的移位讀取標(biāo)記為“0”的情況為例進行說明。
如圖18所示,首先,控制器20持續(xù)發(fā)布指令“a2h”及移位讀取指令“zzh”,并分別發(fā)送至半導(dǎo)體存儲裝置10(圖17、步驟s82)。指令“zzh”相當(dāng)于步驟s82中說明的移位讀取指令。
接下來,控制器20例如跨及5個循環(huán)發(fā)布地址信息add,并將其發(fā)送至半導(dǎo)體存儲裝置10。該地址信息add是指定高速緩存區(qū)域的地址的信息。接下來,控制器20發(fā)布指令“30h”,并將其發(fā)送至半導(dǎo)體存儲裝置10。如果指令“30h”被儲存至寄存器15c,那么定序器17控制讀出放大器模塊12及行解碼器13等,并開始進行移位讀取。當(dāng)進行移位讀取時,數(shù)據(jù)被讀取至各讀出放大器單元sau的讀出放大器部sa,且所讀出的數(shù)據(jù)從讀出放大器部sa被傳輸至鎖存電路sdl。
接下來,控制器20持續(xù)發(fā)布指令“01h”及“80h”,并分別發(fā)送至半導(dǎo)體存儲裝置10。然后,控制器20例如跨及5個循環(huán)發(fā)布地址信息add,并將其發(fā)送至半導(dǎo)體存儲裝置10。接下來,控制器20發(fā)布指令“1ah”,并將其發(fā)送至半導(dǎo)體存儲裝置10。當(dāng)半導(dǎo)體存儲裝置10接收到指令“1ah”時,將讀取數(shù)據(jù)傳輸至鎖存電路dl1(圖17、步驟s50)。
以下的動作與第1實施方式中說明的圖11相同,因此省略說明。也就是說,移位讀取標(biāo)記為“0”的情況下的指令順序與在第1實施方式中說明的圖11中錯誤訂正標(biāo)記為“0”的情況下的指令順序相同。
[2-3]第2實施方式的效果
接下來,對第2實施方式的效果進行說明。根據(jù)第2實施方式的半導(dǎo)體存儲裝置10,能夠比第1實施方式更提高寫入速度。以下,對該詳細(xì)內(nèi)容進行說明。
在半導(dǎo)體存儲裝置中,存在能夠通過進行移位讀取而降低從高速緩存區(qū)域讀取數(shù)據(jù)時所產(chǎn)生的錯誤比特數(shù)的情況。
因此,第2實施方式的半導(dǎo)體存儲裝置10是在第1實施方式中的錯誤確認(rèn)動作中,在錯誤比特數(shù)成為特定值以上的情況下確立移位讀取標(biāo)記,并基于該移位讀取標(biāo)記制作表。該表是表示在存儲器單元陣列11內(nèi)哪一頁中必需移位讀取的信息。然后,通過將該表發(fā)送至控制器20,控制器20能夠獲得必需移位讀取的地址。
進而,控制器20在寫回數(shù)據(jù)時,當(dāng)從高速緩存區(qū)域讀取數(shù)據(jù)時,基于移位讀取標(biāo)記發(fā)布移位讀取指令。具體來說,當(dāng)在移位讀取標(biāo)記為“1”的頁寫回時發(fā)布移位讀取指令,接收到移位讀取指令的半導(dǎo)體存儲裝置10通過移位讀取從高速緩存區(qū)域讀取數(shù)據(jù)。另一方面,當(dāng)在移位讀取標(biāo)記為“0”的頁寫回時發(fā)布通常的讀取指令,接收到通常的讀取指令的半導(dǎo)體存儲裝置10通過通常的讀取動作從高速緩存區(qū)域讀取數(shù)據(jù)。然后,所讀出的數(shù)據(jù)被寫入至存儲區(qū)域。
由此,第2實施方式的半導(dǎo)體存儲裝置10與第1實施方式同樣地能夠提高數(shù)據(jù)的可靠性。另外,移位讀取不會像進行錯誤訂正處理的情況那樣在半導(dǎo)體存儲裝置10與控制器20之間產(chǎn)生數(shù)據(jù)的交換,因此比第1實施方式更能使寫入動作高速化。
[3]變化例等
所述實施方式的半導(dǎo)體存儲裝置《10、圖1》具備:第1存儲器單元《高速緩存區(qū)域、圖2》,能夠存儲n比特(n為1以上的自然數(shù))的數(shù)據(jù);第2存儲器單元《存儲區(qū)域、圖2》,能夠存儲m比特(m為2以上的自然數(shù),m>n)的數(shù)據(jù);以及讀出放大器《12、圖2》,對第1及第2存儲器單元進行數(shù)據(jù)的讀取及寫入。當(dāng)半導(dǎo)體存儲裝置從外部的控制器《20、圖1》接收到第1命令《80h、圖9》時,讀出放大器將第1數(shù)據(jù)寫入至所述第1存儲器單元《program、圖8》。然后,讀出放大器在寫入后從第1存儲器單元讀取第1數(shù)據(jù)《read、圖8》,并將第1數(shù)據(jù)與所讀出的第1數(shù)據(jù)進行比較《xnor、圖8》。當(dāng)半導(dǎo)體存儲裝置接收第1命令后接收到與第1命令不同的第2命令《80h、圖11》時,基于所述比較結(jié)果,讀出放大器將從第1存儲器單元讀出的第1數(shù)據(jù)寫入至第2存儲器單元或?qū)目刂破鹘邮盏牡?數(shù)據(jù)寫入至第2存儲器單元。
另外,所述實施方式的存儲器系統(tǒng)具備所述半導(dǎo)體存儲裝置、及能夠輸出第1及第2命令的控制器。
由此,能夠提供一種能使動作高速化的半導(dǎo)體存儲裝置及存儲器系統(tǒng)。
此外,實施方式并不限定于所述第1及第2實施方式,可以進行各種變化。例如關(guān)于所述實施方式,使用具備1個平面的半導(dǎo)體存儲裝置10進行了說明,所述1個平面設(shè)置著1個存儲器單元陣列11及與其對應(yīng)的讀出放大器模塊12及行解碼器13,但并不限定于此。也就是說,半導(dǎo)體存儲裝置10也可以具備由1個定序器17控制的2個以上的平面。在該情況下,錯誤訂正標(biāo)記及移位讀取標(biāo)記針對各平面分別設(shè)定,狀態(tài)信息所包含的各平面的各標(biāo)記根據(jù)狀態(tài)讀取指令而經(jīng)由不同的信號線dq輸出。
另外,所述第1及第2實施方式通過將在錯誤確認(rèn)動作中確立標(biāo)記的錯誤比特數(shù)的閾值在錯誤訂正標(biāo)記與移位讀取標(biāo)記中設(shè)為不同的值而能夠同時地應(yīng)用。例如關(guān)于確立標(biāo)記的閾值,將錯誤訂正標(biāo)記設(shè)定為比移位讀取標(biāo)記高。在該情況下,在錯誤確認(rèn)動作中檢測出的錯誤比特數(shù)少而期待由移位讀取改善的情況下能夠應(yīng)用移位讀取,在錯誤確認(rèn)動作中檢測出的錯誤比特數(shù)多而必需錯誤訂正的情況下能夠應(yīng)用錯誤訂正。由此,能夠一邊維持?jǐn)?shù)據(jù)的可靠性,一邊比第1實施方式更提高寫入速度。此外,在進行此種處理的情況下,半導(dǎo)體存儲裝置10也可以根據(jù)1次狀態(tài)讀取指令將錯誤訂正標(biāo)記與移位讀取標(biāo)記同時地輸出至控制器20。
另外,控制器20分別在圖5所示的步驟s31中發(fā)布狀態(tài)讀取指令“xxh”,在圖15所示的步驟s70中發(fā)布狀態(tài)讀取指令“yyh”,相對于此,也可以發(fā)布狀態(tài)讀取指令“70h”。也就是說,半導(dǎo)體存儲裝置10也可以將在接收到狀態(tài)讀取指令“70h”的情況下讀取的寫入通過/失敗信息與錯誤訂正標(biāo)記及移位讀取標(biāo)記一起讀取。
另外,表示了在所述實施方式中分別對高速緩存區(qū)域及存儲區(qū)域的存儲器單元應(yīng)用slc方式及tlc方式的寫入的例,但并不限定于此,只要存儲在高速緩存區(qū)域的存儲器單元的比特數(shù)比存儲在存儲區(qū)域的存儲器單元的比特數(shù)少即可。
另外,在所述實施方式中輸出各狀態(tài)信息的信號線dq的分配并不限定于此,可以進行各種變更。另外,在所述實施方式中錯誤訂正標(biāo)記及移位讀取標(biāo)記的數(shù)字的分配并不限定于此,可以進行各種變更。
另外,在所述說明中,所謂“連接”表示電連接,不僅包含直接連接的情況,也包含經(jīng)由任意的元件連接的情況。
此外,存儲器單元陣列11也可為存儲器單元晶體管mt三維積層在半導(dǎo)體襯底的上方而成的構(gòu)成。關(guān)于此種構(gòu)成,例如記載在名為“三次元積層非易失性半導(dǎo)體存儲器”且在2009年3月19日申請的美國專利申請12/407,403號。另外,記載在名為“三次元積層非易失性半導(dǎo)體存儲器”且在2009年3月18日申請的美國專利申請12/406,524號、名為“非易失性半導(dǎo)體存儲裝置及其制造方法”且在2010年3月25日申請的美國專利申請12/679,991號、名為“半導(dǎo)體存儲器及其制造方法”且在2009年3月23日申請的美國專利申請12/532,030號。這些專利申請的整體通過參照而引用在本說明書中。
另外,在所述實施方式中,區(qū)塊blk也可以不成為數(shù)據(jù)的刪除單位。例如其它刪除動作記載在名為“非易失性半導(dǎo)體存儲裝置”且在2011年9月18日申請的美國專利申請13/235,389號、名為“非易失性半導(dǎo)體存儲裝置”且在2010年1月27日申請的美國專利申請12/694,690號。這些專利申請的整體通過參照而引用在本說明書中。
此外,對本發(fā)明的若干實施方式進行了說明,但這些實施方式是作為例子而提出的,并不意圖限定發(fā)明的范圍。這些實施方式能夠以其它各種方式實施,且能夠在不脫離發(fā)明主旨的范圍內(nèi)進行各種省略、替換、變更。這些實施方式或其變化包含在發(fā)明的范圍或主旨中,并且包含在權(quán)利要求書所記載的發(fā)明與其均等的范圍內(nèi)。
[符號的說明]
1存儲器系統(tǒng)
10半導(dǎo)體存儲裝置
11存儲器單元陣列
12讀出放大器模塊
13行解碼器
14輸入輸出電路
15寄存器
16邏輯控制電路
17定序器
18待命/忙碌控制電路
19電壓產(chǎn)生電路
20控制器
21處理器
22內(nèi)置存儲器
23寄存器
24ecc電路
25nand接口電路
26緩沖存儲器
27主機接口電路