存儲(chǔ)器及其操作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明是有關(guān)于包括錯(cuò)誤校正碼(Error Correct1n Code,ECC)邏輯的存儲(chǔ)器裝置及系統(tǒng),尤其是一種存儲(chǔ)器及其操作方法,用于存儲(chǔ)器的錯(cuò)誤校正碼方法。
【背景技術(shù)】
[0002]用于集成電路存儲(chǔ)器的存儲(chǔ)器技術(shù)正朝向體積越來(lái)越小的技術(shù)發(fā)展,且應(yīng)用于單一集成電路的越來(lái)越大的存儲(chǔ)器陣列上。隨著存儲(chǔ)單元(Memory Cell)的技術(shù)前進(jìn),用于感測(cè)數(shù)據(jù)的容限(Margin)會(huì)變成更嚴(yán)謹(jǐn)。又,在存儲(chǔ)單元狀態(tài)的擾動(dòng)(由存取存儲(chǔ)單元及存取鄰近存儲(chǔ)單元的高速及高容積所導(dǎo)致)存在時(shí),存儲(chǔ)單元保留數(shù)據(jù)值的能力(亦即,持久性)更受限于更嚴(yán)謹(jǐn)?shù)娜菹蕖?br>[0003]當(dāng)這些技術(shù)著重在尺寸及密度上時(shí),為了處理因更嚴(yán)謹(jǐn)?shù)娜菹藜按鎯?chǔ)單元擾動(dòng)而出現(xiàn)的關(guān)鍵問(wèn)題,使用嵌入于集成電路存儲(chǔ)器的錯(cuò)誤校正碼(ECC)已變得更普及。
[0004]通常將閃存設(shè)計(jì)成可通過(guò)區(qū)塊擦除來(lái)一次擦除一區(qū)塊。當(dāng)擦除一區(qū)塊時(shí),區(qū)塊中的存儲(chǔ)單元被設(shè)定到邏輯值,例如I。在擦除了一區(qū)塊之后,區(qū)塊中的存儲(chǔ)單元可被編程至不同數(shù)值,例如O。一旦存儲(chǔ)單元被編程至0,對(duì)被編程存儲(chǔ)單元的區(qū)塊進(jìn)行區(qū)塊擦除可將存儲(chǔ)單元改回至I。一旦一區(qū)塊中的某些存儲(chǔ)單元(例如區(qū)塊的一選擇的字節(jié)(byte)或字(word)中的晶胞)是在一第一編程操作期間被編程至0,在相同區(qū)塊的不同字節(jié)或字中的其他存儲(chǔ)單元(已知是處于擦除狀態(tài)),仍然可在一第二編程操作期間被編程至0,而不需要預(yù)先擦除此區(qū)塊。在本說(shuō)明中,伴隨著對(duì)相同區(qū)塊中的不同位置所進(jìn)行的第一編程操作及第二編程操作的一區(qū)塊擦除,可被稱(chēng)為雙重圖案化。當(dāng)然,當(dāng)每個(gè)編程操作是針對(duì)此區(qū)塊的一不同部分以達(dá)成一"多重圖案化操作"時(shí),區(qū)塊擦除操作可以伴隨著多重編程操作(兩個(gè)以上)。
[0005]在雙重或多重圖案化操作中,一錯(cuò)誤校正碼(ECC)可在第一編程操作期間,被計(jì)算并編程于此區(qū)塊中的一特定位置。然而,因?yàn)閰^(qū)塊擦除的一存儲(chǔ)器中的第二編程操作的關(guān)系,無(wú)法安全地改變ECC。ECC無(wú)法在第二編程操作中安全地被改變,這是因?yàn)橐辉儆?jì)算出的ECC,必須將ECC中的至少一位從O (被編程狀態(tài))改變成I (擦除狀態(tài)),且此改變將需要一區(qū)塊擦除,這將擦除整個(gè)區(qū)塊中的數(shù)據(jù)。
[0006]較好可以提供一種解決方法,用于確實(shí)地控制雙重圖案化及多重圖案化操作的錯(cuò)誤偵測(cè)及修正用的ECC邏輯的利用。
【發(fā)明內(nèi)容】
[0007]—種存儲(chǔ)器的操作方法包括:儲(chǔ)存多個(gè)數(shù)據(jù)集(例如分頁(yè)),以及數(shù)據(jù)集用的多個(gè)錯(cuò)誤校正碼ECC于存儲(chǔ)器中,數(shù)據(jù)集包括多個(gè)可編址段(例如字或字節(jié))。當(dāng)將新數(shù)據(jù)寫(xiě)入在存儲(chǔ)器中的一選擇數(shù)據(jù)集的其中一個(gè)可編址段中時(shí),如果儲(chǔ)存新數(shù)據(jù)及事先在選擇數(shù)據(jù)集中被編程的數(shù)據(jù)的一些可編址段包括至少一預(yù)定數(shù)目的可編址段,則可為選擇數(shù)據(jù)集計(jì)算并儲(chǔ)存一 ECC。預(yù)定數(shù)目可以是選擇數(shù)據(jù)集中的全部的可編址段。
[0008]多個(gè)指示可以與數(shù)據(jù)集一起被儲(chǔ)存,數(shù)據(jù)集表示是否致能或禁能與數(shù)據(jù)集一起被儲(chǔ)存的ECC的使用。這些指示可通過(guò)儲(chǔ)存擴(kuò)展ECC(例如128位數(shù)據(jù)用的XtECC[9:0])而被提供,擴(kuò)展ECC包括數(shù)據(jù)集的ECC的一字段(例如128位數(shù)據(jù)用的xtECC[7:0])、從ECC衍生出的一第一額外ECC位的一字段(例如XtECC[8])以及一第二額外ECC位用一字段(例iM xtECC [9]) ο 對(duì) ECC 執(zhí)行一邏輯互斥函數(shù)(logical exclusive-OR funct1n)而衍生出第一額外ECC位。擴(kuò)展ECC可表示是否致能或禁能與數(shù)據(jù)集一起被儲(chǔ)存的ECC的使用。
[0009]擴(kuò)展ECC可具有一第一預(yù)定值(例如128位數(shù)據(jù)用的9' hOOO)、一第二預(yù)定值(例如128位數(shù)據(jù)用的9' hlCO)以及一計(jì)算值,第一預(yù)定值供第一額外位與ECC使用,表示一第一狀態(tài)以禁能ECC的字段中的數(shù)據(jù)的使用,第二預(yù)定值供第一額外位與ECC使用,表示一第二狀態(tài),于其中擴(kuò)展ECC原始具有等于第一預(yù)定值的一計(jì)算值,而計(jì)算值表示一第三狀態(tài),包括在ECC的字段中的多個(gè)計(jì)算出的ECC,以及在從計(jì)算出的ECC衍生出的第一額外ECC位的字段中的一位。
[0010]此方法包括:如果儲(chǔ)存新數(shù)據(jù)及事先在選擇數(shù)據(jù)集中被編程的數(shù)據(jù)的一些可編址段包括至少一預(yù)定數(shù)目(例如全部)的可編址段,則使用選擇數(shù)據(jù)集的一擴(kuò)展ECC的一計(jì)算值,且一錯(cuò)誤狀況不會(huì)發(fā)生(于此錯(cuò)誤狀況中,選擇數(shù)據(jù)集已經(jīng)于新數(shù)據(jù)用的可編址段被編程)。
[0011]此方法包括:如果選擇數(shù)據(jù)集是事先于新數(shù)據(jù)用的可編址段被編程,則將擴(kuò)展ECC設(shè)定成第一預(yù)定值,藉以表示禁能與選擇數(shù)據(jù)集一起被儲(chǔ)存的ECC的使用。此方法包括:如果擴(kuò)展ECC等于第一預(yù)定值,且選擇數(shù)據(jù)集并未于新數(shù)據(jù)的可編址段被編程,則將擴(kuò)展ECC設(shè)定成第二預(yù)定值。
[0012]此方法更包括:將第二額外ECC位設(shè)定成一數(shù)值,用于表示選擇數(shù)據(jù)集是在至少一可編址段中被編程。一空白或未被編程狀態(tài)可起因于數(shù)據(jù)集的一區(qū)塊擦除,以使位于空白ECC狀態(tài)的一 ECC包括所有"I"。在一區(qū)塊擦除之后,第一額外ECC位亦包括一數(shù)值'Γ。一 ECC的一計(jì)算值亦可以是所有"I",而ECC的第一額外ECC位應(yīng)具有一數(shù)'O',如于此所說(shuō)明的。然而,在一保留錯(cuò)誤的情況下,第一額外ECC位可錯(cuò)誤地改變成,r。在那種情況下,為了決定ECC的使用是否應(yīng)被致能的,一讀取操作無(wú)法分辨全為"Is"的ECC,以及具有一數(shù)值"I"的第一額外ECC位是否是計(jì)算值或位于擦除狀態(tài)。第二額外ECC位從而用于表示選擇數(shù)據(jù)集是否在至少一可編址段中被編程。
[0013]包括一 ECC (例如128位數(shù)據(jù)的XtECC [7:0])、一第一額外ECC位(例如xtECC [8])以及一第二額外ECC位(例如xtECC [9])的一擴(kuò)展ECC (例如128位數(shù)據(jù)的xtECC [9:0]),是可從一選擇數(shù)據(jù)集被讀取,于此第一額外ECC位是通過(guò)使用一邏輯函數(shù)而從ECC衍生出。如果ECC的邏輯函數(shù)等于第一額外ECC位,且ECC并不等于表示第一狀態(tài)的第一預(yù)定值以禁能ECC的使用,則可致能與選擇數(shù)據(jù)集一起被儲(chǔ)存的ECC的使用。
[0014]此方法包括:將ECC設(shè)定成表示第一狀態(tài)的第一預(yù)定值(例如9' h000),然后致能具有選擇數(shù)據(jù)集的ECC的使用。邏輯函數(shù)可以是一邏輯互斥函數(shù),如果ECC的邏輯函數(shù)并不等于第一額外ECC位,且ECC等于第二預(yù)定值(例如9' hlC0)(表示第二狀態(tài),其中ECC原始具有等于第一預(yù)定值的一計(jì)算值)的話(huà)。
[0015]此方法包括:讀取第二額外ECC位,表示選擇數(shù)據(jù)集是否在至少一可編址段中被編程;以及致能與選擇數(shù)據(jù)集一起被儲(chǔ)存的ECC的使用,如果ECC的邏輯函數(shù)并不等于第一額外ECC位、ECC等于表示一空白ECC狀態(tài)的一空白值(例如8' hFF),以及第二額外ECC位表示選擇數(shù)據(jù)集在至少一可編址段中被編程的話(huà)。一空白ECC狀態(tài)可起因于數(shù)據(jù)集的一區(qū)塊擦除,以使位于空白ECC狀態(tài)的一 ECC位于擦除狀態(tài),例如所有"I"。第一與第二狀態(tài)用的第一與第二預(yù)定值是被預(yù)先決定成不同于空白值。
[0016]為了對(duì)本發(fā)明的上述及其他方面有更佳的了解,下文特舉較佳實(shí)施例,并配合所附圖式,作詳細(xì)說(shuō)明如下:
【附圖說(shuō)明】
[0017]圖1是依據(jù)一實(shí)施例的一集成電路存儲(chǔ)器的簡(jiǎn)化芯片方塊圖。
[0018]圖2顯示一存儲(chǔ)器中的局部數(shù)據(jù)集編程操作。
[0019]圖3是一存儲(chǔ)器中的編程操作的流程圖。
[0020]圖4是使用擴(kuò)展ECC的ECC產(chǎn)生的流程圖。
[0021 ]圖5是使用擴(kuò)展ECC的讀取操作的流程圖。
[0022]【符號(hào)說(shuō)明】
[0023]100:存儲(chǔ)器
[0024]105:數(shù)據(jù)總線(xiàn)
[0025]110:控制器
[0026]120:偏壓配置電源電壓方塊
[0027]130:總線(xiàn)
[0028]140:列譯碼器
[0029]145:字線(xiàn)
[0030]150:ECC 邏輯
[0031]155:信號(hào)
[0032]160:數(shù)據(jù)集
[0033]165:位線(xiàn)
[0034]170:分頁(yè)緩沖器
[0035]175:數(shù)據(jù)總線(xiàn)
[0036]190:輸入/輸出電路
[0037]210:第一局部數(shù)據(jù)集編程操作
[0038]211:其他地址
[0039]212:陣列的 ECC
[0040]213:第一額外ECC位及第二額外位
[0041]220:第二局部數(shù)據(jù)集編程操作
[0042]221:其他地址
[0043]222:數(shù)據(jù)集的 ECC
[0044]223:第一額外ECC位及第二額外位
[0045]230:最后局部陣列操作
[0046]232:ECC
[0047]233:第一額外 ECC 位
[0048]305、310、320、330、340、341、343、350、360、365、370、375、380、385、390:步驟
[0049]410、420、430、440、451、453、460、470、480、490:步驟
[0050]510、520、530、550、551、560、561、563、570、571:步驟
【具體實(shí)施方式】
[0051]以下參考附圖而提供本發(fā)明的多個(gè)實(shí)施例的詳細(xì)說(shuō)明。
[0052]隨著集成電路存儲(chǔ)器中的存儲(chǔ)單元的技術(shù)尺寸縮小,用于感測(cè)數(shù)據(jù)的容限會(huì)變得更嚴(yán)謹(jǐn),因而在存儲(chǔ)單元狀態(tài)的擾動(dòng)(由存取存儲(chǔ)單元及存取鄰近存儲(chǔ)單元的高速及高容積所導(dǎo)致)存在時(shí),限制了存儲(chǔ)單元保留數(shù)據(jù)值的能力。為了處理起因于更嚴(yán)謹(jǐn)?shù)娜菹夼c存儲(chǔ)單元擾動(dòng)的議題,可使用嵌入于集成電路存儲(chǔ)器的錯(cuò)誤校正碼(ECC)。