TW201742080A - 半導體儲存裝置及其記憶體系統 - Google Patents
半導體儲存裝置及其記憶體系統 Download PDFInfo
- Publication number
- TW201742080A TW201742080A TW106113864A TW106113864A TW201742080A TW 201742080 A TW201742080 A TW 201742080A TW 106113864 A TW106113864 A TW 106113864A TW 106113864 A TW106113864 A TW 106113864A TW 201742080 A TW201742080 A TW 201742080A
- Authority
- TW
- Taiwan
- Prior art keywords
- error correction
- area
- storage device
- address information
- semiconductor storage
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1068—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1048—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/18—Address generation devices; Devices for accessing memories, e.g. details of addressing circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/38—Response verification devices
- G11C29/42—Response verification devices using error correcting codes [ECC] or parity check
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/44—Indication or identification of errors, e.g. for repair
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C2029/0411—Online error correction
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/52—Protection of memory contents; Detection of errors in memory contents
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Read Only Memory (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Detection And Correction Of Errors (AREA)
- Memory System (AREA)
- For Increasing The Reliability Of Semiconductor Memories (AREA)
Abstract
本發明提供一種半導體儲存裝置及其記憶體系統。半導體儲存裝置包含記憶體陣列、錯誤糾正部件與設定部件。錯誤糾正部件將所生成的錯誤糾正碼保存至保存區域。設定部件能夠從外部設定所述保存區域。
Description
本發明涉及一種半導體儲存裝置,尤其涉及一種具備晶片上(on chip)的錯誤檢測/糾正功能的半導體儲存裝置及其記憶體系統。
在NAND型快閃記憶體中,由於要反覆進行資料的編程或抹除,因而會因穿隧絕緣膜的劣化而導致電荷保持特性發生惡化,或者因被穿隧絕緣膜捕獲的電荷而產生閾值變動,從而在讀出操作等時引起位錯(bit error)。日本專利特開2010-152989號公報中,作為此種位錯的對策,搭載了錯誤檢測糾正電路(Error Checking Correction,ECC)。
伴隨NAND快閃記憶體的微細化,在讀出過程等中產生的位錯數存在增加的傾向。各廠商為了具備與以往產品的相容性,而且為了更容易在系統中使用,開發出具備利用元件自身來執行錯誤檢測糾正的功能的產品。其被稱作晶片上ECC產品,並執行下述操作:在元件內部自動算出在ECC計算時使用的碼(code)資訊,並將其寫入所確定的位址區域。
圖1表示在晶片上搭載ECC功能的NAND型快閃記憶體的區段M部分。在晶片上搭載ECC功能的快閃記憶體中,能夠通過命令或設定等來啟用/禁用ECC。編程操作時,從外部輸入/輸出端子輸入的資料被載入至頁面緩衝器/讀出電路10,載入的資料經由傳輸電路20而傳輸至ECC電路30。傳輸電路20包含能夠進行雙向資料傳輸的多個電晶體,各電晶體是根據共同連接於閘極的控制信號TG而受到驅動。ECC電路30進行下述操作:進行所傳輸的資料的ECC運算,生成用於錯誤檢測/糾正的錯誤糾正碼,並將錯誤糾正碼重寫至頁面緩衝器/讀出電路10的備用(spare)區域。接下來,將由頁面緩衝器/讀出電路10所保持的編程資料及錯誤糾正碼編程至記憶體陣列的選擇頁面。而且,在讀出操作時,將從記憶體陣列的選擇頁面讀出的資料保持於頁面緩衝器/讀出電路10,接下來,將所保持的資料經由傳輸電路20而傳輸至ECC電路30。ECC電路30基於錯誤糾正碼來進行讀出資料的錯誤檢測、糾正,在檢測到錯誤的情況下,將糾正的資料設定至頁面緩衝器/讀出電路10。並且,從外部輸入/輸出端子輸出由頁面緩衝器/讀出電路10所保持的資料。
但是,以往的搭載有晶片上ECC功能的快閃記憶體中,存在如下所述的問題。圖2(A)是搭載有晶片上ECC功能的快閃記憶體側的備用區域的位址映射(address mapping)的例示,圖2(B)是系統40側的備用區域的位址映射的例示。如圖2(A)所示,頁面緩衝器/讀出電路10例如包含2 K位元組(byte)(512 B×4)的常規(regular)區域REG與64位元組(16 B×4)的備用區域SPA。此時,常規區域REG被分割為4個主要區段(sector)(M0、M1、M2、M3),向各區段中載入資料,以區段為單位來進行ECC處理。此時,將通過ECC運算而生成的錯誤糾正碼保存至備用區域SPA中。備用區域SPA的16位元組的區段S0保存區段M0的錯誤糾正碼,區段S1保存區段M1的錯誤糾正碼,區段S2保存區段M2的錯誤糾正碼,區段S3保存區段M3的錯誤糾正碼。隨後,將由頁面緩衝器10所保持的常規區域REG及備用區域SPA的資料編程至記憶體陣列的選擇頁面的常規區域REG及備用區域SPA。
另一方面,能夠執行ECC功能的系統40如圖2(B)所示,若為512位元組的區段M區段與16位元組的備用區域成對的結構,則至少系統40的備用區域的區段S0和區段S1的位址會與快閃記憶體側的常規區域REG的位址重複。因此,為了實現與執行晶片上ECC功能的快閃記憶體的相容性,必須在系統40側變更韌體(firmware),以使兩者的備用區域的位址一致,因此,不能說搭載有晶片上ECC功能的快閃記憶體與系統之間具有完全的相容性。
圖3(A)~圖3(D)是1個備用區域(16位元組)的例示,圖3(A)、圖3(B)、圖3(C)分別為規格不同的快閃記憶體側的備用區域,圖3(D)為系統側的備用區域。圖3(A)的快閃記憶體中,在起始的2位元組內保存是否為壞塊(bad block)的識別資訊,在接下來的6位元組內保存使用者資料,在接下來的6位元組內保存區段M0的錯誤糾正碼,在最後的2位元組內保存與區段S0的錯誤糾正碼相關的錯誤糾正碼(以下稱作備用區域的錯誤糾正碼)。圖3(B)的快閃記憶體中,在“8~F”這8位元組內保存區段M0的錯誤糾正碼與備用區域的錯誤糾正碼。在圖3(A)與圖3(B)的情況下,在相同的位元組位置保存錯誤糾正碼,但保存備用區域的錯誤糾正碼的位置未必一致。圖3(C)的快閃記憶體中,在“1~3”這3位元組內保存區段M0的錯誤糾正碼,在“4~7”這4位元組內保存備用區域的錯誤糾正碼。與此相對,在圖3(D)的系統側,在“2~9”這8位元組內保存常規區域的主要區段的錯誤糾正碼及備用區域的錯誤糾正碼,在“A~F”這6位元組內保存使用者能夠自由利用的元資料(metadata)。這樣,即使假設快閃記憶體的備用區域與系統側的備用區域的位址一致,但若在備用區域的不同位置保存錯誤糾正碼,則兩者並無完全的相容性。
本發明的目的在於解決所述的以往問題,提供一種具備與現有的系統之間實現相容性的錯誤糾正功能的半導體儲存裝置及其記憶體系統。
本發明的半導體儲存裝置包括:記憶體陣列;錯誤糾正部件,具備對儲存於所述記憶體陣列中的資料或從所述記憶體陣列讀出的資料的錯誤進行糾正的功能,且具備將用於錯誤糾正的所生成的錯誤糾正碼保存於保存區域中的功能;以及設定部件,能夠從外部設定所述保存區域。
優選形態中,所述設定部件從外部接受用於設定所述保存區域的位址資訊,基於所述位址資訊來設定所述保存區域。優選形態中,所述位址資訊包含用於保存所述錯誤糾正碼的起始位址與所述保存區域的大小。優選形態中,所述設定部件基於來自外部的命令來設定所述保存區域。優選形態中,所述設定部件在非揮發性暫存器(例如,配置暫存器(configuration register,CF))中保持所述位址資訊。優選形態中,半導體儲存裝置更包括:輸出部件,將由所述設定部件所設定的資訊輸出至外部。優選形態中,所述輸出部件在所述位址資訊中所含的保存區域的大小比所述錯誤糾正碼的大小要小時,輸出警告資訊。優選形態中,所述輸出部件在所述位址資訊中所含的起始位址的數量比能夠連續編程的最大次數大時,輸出警告資訊。優選形態中,所述記憶體陣列包含常規區域與備用區域,所述備用區域包含所述保存區域。優選形態中,半導體儲存裝置更包括控制部件,基於來自外部的命令來存取所述非揮發性暫存器,且基於來自外部的所述位址資訊改變所述非揮發性暫存器所保持的所述位址資訊,其中所述控制部件在接通電源時讀出所述非揮發性暫存器所保持的所述位址資訊且所述錯誤糾正部件基於所述非揮發性暫存器所保持的所述位址資訊將所述錯誤糾正碼保存於所述保存區域中。優選形態中,半導體儲存裝置更包括揮發性暫存器,所述控制部件將從所述非揮發性暫存器讀出的所述位址資訊保持於所述揮發性暫存器中,其中所述揮發性暫存器的存取速率大於所述非揮發性暫存器的存取速率,且所述錯誤糾正部件從所述揮發性暫存器讀出所述位址資訊,以將所述錯誤糾正碼保存於所述保存區域中。
本發明的系統包括所述結構的半導體儲存裝置、以及與所述半導體儲存裝置連接的外部控制器,所述外部控制器將用於設定所述保存區域的位址資訊輸出至所述半導體儲存裝置。優選形態中,外部控制器接受由所述設定部件所設定的資訊,並基於所接受的所述資訊來輸出所述位址資訊。
根據本發明,能夠從外部對保存錯誤糾正碼的保存區域進行設定,由此,能夠變更半導體儲存裝置的保存區域,因此,無須變更現有系統的規格,便能夠與半導體儲存裝置之間實現資料的相容性。
接下來,參照附圖來詳細說明本發明的實施方式。此處,作為半導體儲存裝置的優選形態,例示為NAND型快閃記憶體。
圖4是表示本實施例的記憶體系統的一例的圖。記憶體系統200包括外部控制器210以及連接於所述外部控制器210的快閃記憶體100。外部控制器210並無特別限定,例如為電腦、數位相機、印表機、記憶體控制器等電子裝置或主機(host)裝置。外部控制器210向快閃記憶體100發送命令、資料、控制信號等,以控制快閃記憶體100的操作(編程、讀出、抹除、設定等)。
圖5是表示快閃記憶體100的結構的圖。快閃記憶體100可包括記憶體陣列110、輸入/輸出緩衝器120、ECC電路130、位址暫存器140、配置暫存器150、控制器160、字元線選擇電路170、頁面緩衝器/讀出電路180、行選擇電路190以及內部電壓產生電192。記憶體陣列110包括呈矩陣狀地排列的多個儲存胞元。輸入/輸出緩衝器120連接於外部輸入/輸出端子,並保持輸入/輸出資料。ECC電路130對編程入記憶體陣列110的資料或從其中讀出的資料進行錯誤檢測/糾正。位址暫存器140接受來自輸入/輸出緩衝器120的位址資料。配置暫存器150儲存位址資訊,所述位址資訊保存由ECC電路所生成的錯誤糾正碼。控制器160基於來自外部控制器210的命令資料或控制信號來控制各部。字元線選擇電路170從位址暫存器140接受列位址資訊Ax,對列位址資訊Ax進行解碼,並基於解碼結果來進行區塊的選擇或字元線的選擇等。頁面緩衝器/讀出電路180保持從由字元線選擇電路170所選擇的頁面讀出的資料,或者保持欲對所選擇的頁面編程的資料。行選擇電路190從位址暫存器140接受行位址資訊Ay,對行位址資訊Ay進行解碼,並基於所述解碼結果來進行頁面緩衝器/讀出電路180內的行的選擇等。內部電壓產生電路192生成資料的讀出、編程及抹除等所需的各種電壓(寫入電壓Vpgm、通過電壓Vpass、讀出通過電壓Vread、抹除電壓Vers等)。
記憶體陣列110具有沿行方向配置的m個儲存區塊(memory block)BLK(0)、BLK(1)、...、BLK(m-1)。在1個儲存區塊中,形成有多個NAND串(string),所述NAND串是將多個儲存胞元串聯連接而成。儲存胞元例如具有金屬氧化物半導體(Metal Oxide Semiconductor,MOS)結構,所述MOS結構包括:作為N型擴散區域的源極/汲極,形成在P阱內;穿隧氧化膜,形成在源極/汲極間的通道上;浮動閘極(電荷蓄積層),形成在穿隧氧化膜上;以及控制閘極,經由介電質膜而形成在浮動閘極上。NAND串既可形成為二維陣列狀,也可形成為三維陣列狀。而且,儲存胞元既可為儲存1個位元(二值資料)的單層胞元(Single Level Cell,SLC)型,也可為儲存多個位元的多層胞元(Multi Level Cell,MLC)型。
表1是表示在快閃記憶體的各操作時施加的偏電壓的一例的表。在讀出操作時,對位元線施加某正電壓,對所選擇的字元線施加某電壓(例如0 V),對非選擇字元線施加通過電壓Vpass(例如4.5 V),對選擇閘極線SGD、SGS施加正電壓(例如4.5 V),使NAND串的位元線側選擇電晶體、源極線側選擇電晶體導通,對共用源極線施加0 V。在編程(寫入)操作時,對所選擇的字元線施加高電壓的編程電壓Vpgm(15 V~20 V),對非選擇的字元線施加中間電位(例如10 V),使位元線側選擇電晶體導通,使源極線側選擇電晶體斷開,並將與“0”或“1”的資料相應的電位供給至位元線。在抹除操作時,對區塊內的被選擇的字元線施加0 V,對P阱施加高電壓(例如21V),將浮動閘極的電荷抽出至基板,由此以區塊為單位來抹除數據。表1
ECC電路130能夠通過命令或出貨時的設定等來啟用或禁用。在晶片上ECC功能被啟用的情況下,在編程操作期間經由輸入/輸出緩衝器120而將欲編程的資料載入至頁面緩衝器/讀出電路180時,ECC電路130對從頁面緩衝器/讀出電路180傳輸的資料進行運算,並生成錯誤糾正碼。ECC的運算例如是通過同位檢查(parity check)、漢明碼(hamming code)或裡德所羅門(Reed-Solomon)等公知方法來進行,將所輸入的k位元或k位元組的資料轉換為p=k+q。“q”是資料的錯誤檢測糾正所需的錯誤糾正碼或同位檢查位元(parity bit)。ECC電路130將所生成的錯誤糾正碼保存至頁面緩衝器/讀出電路180的備用區域。這樣,對頁面緩衝器/讀出電路180所設定的資料與錯誤糾正碼被編程至記憶體陣列110的選擇頁面。
讀出操作時,當將從記憶體陣列110的選擇頁面讀出的資料保持於頁面緩衝器/讀出電路180時,ECC電路130基於從頁面緩衝器/讀出電路180傳輸的資料及錯誤糾正碼來進行讀出資料的錯誤檢測,在檢測到錯誤的情況下,將糾正的資料設定至頁面緩衝器/讀出電路180。並且,經由輸入/輸出緩衝器120將由頁面緩衝器/讀出電路180所保持的資料輸出。
配置暫存器150保存用於對快閃記憶體100的操作進行定義的各種資訊,但本實施例的配置暫存器150是儲存用於對保存備用區域的錯誤糾正碼的保存區域進行設定的資訊,即,用於保存由ECC電路130所生成的錯誤糾正碼的位址資訊。配置暫存器150包含可重寫的非揮發性記憶體,外部控制器210例如輸出特定的命令,由此來對配置暫存器150進行存取,從而能夠變更配置暫存器150的設定內容。或者,不依賴於此種命令,外部控制器210在快閃記憶體100處於特定的模式時(如測試模式),對配置暫存器150進行存取,從而能夠變更配置暫存器150的設定。
在配置暫存器150中,保持如上所述用於對錯誤糾正碼的保存區域進行規定的位址資訊,但在預設設定中,如圖2(A)所示,將常規區域的區段M3之後的所有備用區段S0~S3(16 B×4)設定為所述位址資訊的保存區域。圖6表示此種位址資訊為預設設定時的ECC處理的一例。
控制器160在經由輸入/輸出緩衝器120而收到編程命令時,開始用於編程的程序。當快閃記憶體100具有×8的外部輸入/輸出端子P0~P7時,從外部輸入/輸出端子P0~P7經由各輸入/輸出緩衝器120-1~120-7而對頁面緩衝器/讀出電路180載入輸入資料。在本例的情況下,頁面緩衝器/讀出電路180具有:常規區域300,被分割為區段M0~區段M3這4個區段;以及備用區域310,被分割為區段S0、區段S1、區段S2、區段S3這4個區段。常規區域300的1個區段包含512位元組,備用區域310的1個區段包含16位元組。
備用區域310的1個區段例如具有:區域311,儲存對包含不良儲存胞元的壞塊進行識別的資訊;區域312,儲存使用者資料;區域313,儲存與常規區域300的1個區段相關的錯誤糾正碼;以及區域314,儲存備用區域310進行ECC運算時的錯誤糾正碼。備用0的區域313儲存區段M0的錯誤糾正碼,備用1的區域313儲存區段M1的錯誤糾正碼,備用2儲存區段M2的錯誤糾正碼,備用3儲存區段M3的錯誤糾正碼。
對於常規區域300的1個區段,分配有輸入/輸出緩衝器120-0~120-7,即,對於1個外部輸入/輸出端子,分配有512位元(512位元×8=1區段)。行選擇電路190對在編程操作時收到的行位址資訊Ay進行解碼,並基於所述解碼結果來選擇載入來自外部輸入/輸出端子P-0~P7的輸入資料的區段。圖6表示利用外部輸入/輸出端子P-0~P-7將所收到的輸入資料載入至區段M0的例子。
而且,本實施例的ECC電路130包含用於寫入錯誤糾正碼的寫入電路。優選的是,ECC電路130能夠進行ECC運算,直至與常規區域300的1個區段相等的位元組數的資料為止。若常規區域300的1個區段為512位元組,則ECC電路對512位元組的資料進行ECC運算,例如生成對1位元的錯誤進行糾正的錯誤糾正碼。此時,所有4區段中,最大能夠糾正4位元的錯誤。
ECC電路130將所生成的錯誤糾正碼寫入至備用區域310的對應區域313。在圖6所示的例子中,輸入資料Di被載入至區段M0,因此錯誤糾正碼被寫入至區段S0的區域313。
圖7例示保存於備用區域310中的資料的ECC處理。當對常規區域300的各區段結束ECC處理時,接下來,對備用區域310的各區段進行ECC處理。進行備用區域310的1個區段內所含的哪個資料的ECC處理為任意,但在本例中,是對區域312、313的資料進行ECC處理。因此,區段S0的區域312、313的資料被傳輸至ECC電路130,通過ECC處理所生成的錯誤糾正碼被寫入至區段S0的區域314。對於其他的區段S1至區段S3也進行同樣的處理。當ECC處理結束時,開始記憶體陣列110的選擇頁面的編程。
接下來,對由配置暫存器150所保持的位址資訊的變更進行詳細說明。圖8是對用於變更或設定位址資訊的操作進行說明的流程圖。首先,外部控制器210對快閃記憶體100輸出用於對配置暫存器150的設定進行變更的特定命令,所述特定命令被快閃記憶體100接受(S100)。控制器160回應所收到的特定命令,來開始用於對配置暫存器150的設定進行變更的程序。
外部控制器210對快閃記憶體100輸出用於對錯誤糾正碼的保存區域進行規定的位址資訊,所述位址資訊被輸入至快閃記憶體100(S102)。控制器160依照所輸入的位址資訊來變更配置暫存器150的設定內容(S104)。
此處,從外部控制器210發出的位址資訊優選包含保存錯誤糾正碼的起始位址及大小(位元組數)。假設設定圖6所示的常規區域300與備用區域310的情況下,位址資訊包含用於保存區段S0、區段S1、區段S2及區段S3各自的錯誤糾正碼的起始位址及大小。若為區段S0,則為區域313的起始位址及從其算起的大小。
接下來,對錯誤糾正碼的保存區域的具體變更例進行說明。圖9(A)是快閃記憶體側的預設時的備用區域的結構,圖9(B)是系統側的備用區域的結構,圖9(C)是根據本實施例來對圖9(A)的備用區域的錯誤糾正碼的保存區域進行變更時的例子。圖9(A)中,錯誤糾正碼的保存區域是由起始位址從“8”開始的8位元組所規定的區域,圖9(B)的系統側的錯誤糾正碼的保存區域是由起始位址從“2”開始的8位元組所規定的區域。系統側的“A~F”這6位元組的元(Meta)區域是使用者保存資料的區域,為了與系統之間具備相容性,必須對與元區域重複的快閃記憶體側的“A~F”的錯誤糾正碼的保存區域進行變更。因此,本實施例中,如圖9(C)所示,為了變更快閃記憶體側的錯誤糾正碼的保存區域,外部控制器210將包含起始位址“2”、大小=8位元組的位址資訊輸出至快閃記憶體100,控制器160依照所輸入的位址資訊來變更配置暫存器150的設定內容。
圖9(A)~圖9(C)的例子是快閃記憶體側與系統側的備用區域的位置一致的情況,但如圖2(A)、圖2(B)所示,在備用區域的位置不同的情況也同樣,可將包含起始位址與大小的位址資訊設定至配置暫存器150,並變更錯誤糾正碼的保存區域。常規區域的區段M0~M3的合計為2048位元組,備用區域的區段S0~S3的合計為64位元組,兩者的合計為2112位元組,其中,設定有用於保存錯誤糾正碼的起始位址與大小。即,如圖10(A)所示,用於保存區段M0的錯誤糾正碼的起始位址X0為514(512B+2B),大小為8位元組。以後,根據圖9(C)的結構,空閒空間(free space)為6位元組,下個區段M1為512位元組,緊跟其後的壞塊為2位元組,下個備用區域的區段S1的起始位址X1為1042(=512+16+512+2),下個區段S2的起始位址X2為1570,最後的區段S3的起始位址為2098。而且,它們的大小全部為8位元組。而且,假設若變更為圖2(A)所示的備用區域SPA,則備用區域的區段S0的起始位址為2050,區段S1的起始位址為2066,區段S2的起始位址為2082,區段S3的起始位址為2098。它們的大小全部為8位元組。而且,圖10(B)表示具有將圖10(A)所示的常規區域的區段與備用區域的區段的順序反轉的位址映射的例子。備用區域的區段S0保存常規區域的區段M0的錯誤糾正碼,同樣,備用區域的區段S1、S2、S3分別保存常規區域的區段M1、M2、M3的錯誤糾正碼。圖10(B)時,通過與所述同樣的方法,也能夠對包含備用區域的各區段S0、S1、S2、S3的起始位址及其大小的位址資訊進行變更。
圖11(A)~圖11(D)表示本實施例的其他錯誤糾正碼的保存區域的變更例。圖11(A)是晶片上ECC模式禁用時的快閃記憶體側的頁面緩衝器的例子,頁面緩衝器具有分割為區段S0~區段S3的2048位元組的常規區域300;及128位元組的備用區域310。圖11(B)為系統側的頁面緩衝器的結構,在128位元組的備用區域中,設定有錯誤糾正碼的保存區域(ECC)以及使用者所使用的元區域。圖11(C)是圖11(A)的快閃記憶體的ECC被啟用時的頁面緩衝器的結構,此時,128位元組的備用區域被設定為64位元組的備用區域與64位元組的隱藏區域(使用者無法看到的區域)。此種例子中,64位元組的隱藏區域與系統側的元區域重複,系統間的資料的相容性受損。因此,適用了本實施例的快閃記憶體如圖11(D)所示,能夠在128位元組的備用區域310中,以與系統側的錯誤糾正碼的保存區域一致的方式來變更錯誤糾正碼的保存區域。其結果,能夠直接利用系統側的元區域。
接下來,參照圖12的流程來說明本實施例的ECC操作。當圖4所示的系統200啟動,對快閃記憶體100接通電源時(S200),控制器160開始用於上電(power up)程序的編程或狀態機(state machine)。控制器160作為其一環,對配置暫存器150進行存取,從其中讀出位址資訊,並將位址資訊保持於例如靜態隨機存取記憶體(Static Random Access Memory,SRAM)或動態隨機存取記憶體(Dynamic Random Access Memory,DRAM)等能夠高速讀出的揮發性暫存器(S210)。
隨後,在編程操作時等,當進行ECC操作時(S220),ECC電路130從揮發性暫存器讀出位址資訊(S230),並將所生成的錯誤糾正碼保存至由所述位址資訊所規定的備用區域或保存區域內(S240)。而且,當對從記憶體陣列讀出的資料進行ECC時,從備用區域或保存區域讀出錯誤糾正碼,進行與讀出資料相關的錯誤的檢測/糾正。
如此,根據本實施例,在具備晶片上ECC功能的快閃記憶體中,能夠從外部對保存由ECC電路所生成的錯誤糾正碼的保存區域進行變更,因此無須變更系統側的位址映射或韌體,而能夠實現與記憶體系統的相容性。
接下來,對本發明的第2實施例進行說明。所述實施例中,表示了從外部控制器210向快閃記憶體100輸出位址資訊,對配置暫存器150的設定內容進行變更的例子,但此時理想的是,使用者預先知曉與快閃記憶體的ECC相關的規格(例如所生成的錯誤糾正碼的位元組數)。第2實施例中,外部控制器210具備下述功能:從快閃記憶體100讀出與由配置暫存器所保持的錯誤糾正碼的保存區域相關的資訊。
圖13是表示第2實施例的操作的序列的一例。首先,外部控制器210對快閃記憶體100輸出用於讀出配置暫存器150的內容的命令。控制器160根據所述特定的命令,讀出由配置暫存器150所保持的位址資訊(S300),並將讀出的位址資訊輸出至外部控制器210。外部控制器210基於所接收的位址資訊,輸出快閃記憶體100的ECC的規格。由此,使用者能夠對由快閃記憶體100的ECC電路130所生成的錯誤糾正碼的大小進行確認。隨後,如第1實施例中所說明般,在對配置暫存器150的位址資訊進行變更的情況下,將包含不小於所生成的錯誤糾正碼的大小的位址資訊發送至快閃記憶體100。
接下來,對本發明的第3實施例進行說明。第3實施例中,快閃記憶體100的控制器160在從外部控制器210發送的位址資訊比由ECC電路130所生成的錯誤糾正碼的大小小的情況下,對外部控制器210發出警告。圖14是表示第3實施例的操作的程序的一例。如所述圖14所示,當從外部控制器210對快閃記憶體100發送用於對錯誤糾正碼的保存區域進行變更的位址資訊時,控制器160對所發送的位址資訊中所含的大小Sa與由ECC電路130所生成的錯誤糾正碼的大小Sb進行比較(S410),若所變更的大小Sa為所生成的錯誤糾正碼的大小Sb以上,則控制器160對配置暫存器150的位址資訊進行變更(S420)。在所變更的大小Sa比所生成的錯誤糾正碼的大小Sb更小的情況下,控制器160對外部控制器210發送警告或者發送所生成的錯誤糾正碼的大小Sb的資訊,外部控制器210通過輸出警告等而將所述意旨告知給使用者(S430)。
而且,在快閃記憶體具備局部頁面編程功能,即,將比1頁面大小(2 K位元組)小的大小的資料多次編程至同一字元線的功能的情況下,為了防止將高編程電壓反覆施加至同一字元線的不良影響,而規定有所允許的編程的最大次數Nop。作為第3實施例的變形例,控制器160對來自外部控制器210的位址資訊中所含的起始位址的數量與最大次數Nop進行比較,在大於最大次數Nop的情況下,也可對外部控制器210發出警告。
所述實施例中,表示了將對錯誤糾正碼的保存區域進行規定的位址資訊設定至配置暫存器的例子,但這只是一例,也可為其他非揮發性的儲存區域。此種儲存區域也可為從由使用者所利用的或參照的記憶體陣列的區域隱藏的區域。而且,對錯誤糾正碼的保存區域進行規定的位址資訊既可為表示物理位址空間的位址,也可為表示邏輯位址空間的位址。進而,非揮發性的儲存區域例如也可包含或非(NOR)型或NAND型的記憶體件、電可擦可編程唯讀記憶體(Electrically Erasable Programmable Read Only Memory,EEPROM)、磁性隨機存取記憶體(Magnetic Random Access Memory,MRAM)、可變電阻式隨機存取記憶體(Resistive Random Access Memory,ReRAM)等記憶體件等。
進而,所述實施例中,例示了快閃記憶體,但本發明也能夠適用於搭載有晶片上ECC功能的其他半導體儲存裝置、或者具備記憶體功能的半導體儲存裝置(例如嵌入有快閃記憶體的半導體儲存裝置)。
對本發明的優選實施方式進行了詳述,但本發明並不限定於特定的實施方式,在權利要求書所記載的發明的主旨的範圍內可進行各種變形、變更。
10、180‧‧‧頁面緩衝器/讀出電路
20‧‧‧傳輸電路
30、130‧‧‧ECC電路
100‧‧‧快閃記憶體
110‧‧‧記憶體陣列
120-0、120-1~120-7、120‧‧‧輸入/輸出緩衝器
140‧‧‧位址暫存器
150‧‧‧配置暫存器
160‧‧‧控制器
170‧‧‧字元線選擇電路
190‧‧‧行選擇電路
192‧‧‧內部電壓產生電路
200‧‧‧系統
210‧‧‧外部控制器
300‧‧‧常規區域
310‧‧‧備用區域
311、312、313、314‧‧‧區域
Ax‧‧‧列位址資訊
Ay‧‧‧行位址資訊
BLK(0)、BLK(1)、BLK(m-1)‧‧‧儲存區塊
M0~M3‧‧‧常規區域的區段
REG‧‧‧常規區域
P-0、P-1~P-7‧‧‧外部輸入/輸出端子
SPA‧‧‧備用區域
S0~S3‧‧‧備用區域的區段
TG‧‧‧控制信號
Vers‧‧‧抹除電壓
Vpass‧‧‧通過電壓
Vpgm‧‧‧寫入電壓
Vread‧‧‧讀出通過電壓
X0‧‧‧起始位址
S100、S102、S104、S200、S210、S220、S230、S240、S300、S310、S400、S410、S420、S430‧‧‧步驟
20‧‧‧傳輸電路
30、130‧‧‧ECC電路
100‧‧‧快閃記憶體
110‧‧‧記憶體陣列
120-0、120-1~120-7、120‧‧‧輸入/輸出緩衝器
140‧‧‧位址暫存器
150‧‧‧配置暫存器
160‧‧‧控制器
170‧‧‧字元線選擇電路
190‧‧‧行選擇電路
192‧‧‧內部電壓產生電路
200‧‧‧系統
210‧‧‧外部控制器
300‧‧‧常規區域
310‧‧‧備用區域
311、312、313、314‧‧‧區域
Ax‧‧‧列位址資訊
Ay‧‧‧行位址資訊
BLK(0)、BLK(1)、BLK(m-1)‧‧‧儲存區塊
M0~M3‧‧‧常規區域的區段
REG‧‧‧常規區域
P-0、P-1~P-7‧‧‧外部輸入/輸出端子
SPA‧‧‧備用區域
S0~S3‧‧‧備用區域的區段
TG‧‧‧控制信號
Vers‧‧‧抹除電壓
Vpass‧‧‧通過電壓
Vpgm‧‧‧寫入電壓
Vread‧‧‧讀出通過電壓
X0‧‧‧起始位址
S100、S102、S104、S200、S210、S220、S230、S240、S300、S310、S400、S410、S420、S430‧‧‧步驟
圖1是以往的快閃記憶體的晶片上ECC操作的示意圖。 圖2(A)、圖2(B)是表示以往的快閃記憶體的備用區域與主機裝置(系統)側的備用區域的位址映射不同的例子的圖。 圖3(A)~圖3(D)是表示在以往的快閃記憶體的備用區域與主機裝置(系統)側的備用區域中保存的資訊的一例的圖。 圖4是表示本發明的實施例的記憶體系統的一結構例的圖。 圖5是表示本發明的實施例的NAND型快閃記憶體的整體的概略結構的圖。 圖6是對本發明的實施例的編程操作時的常規區域的ECC處理進行說明的圖。 圖7是對本發明的實施例的編程操作時的備用區域的ECC處理進行說明的圖。 圖8是說明對本發明的實施例的備用區域的錯誤糾正碼的保存區域進行設定的操作的流程圖。 圖9(A)~圖9(C)是對本實施例的錯誤糾正碼的保存區域進行變更的例子。 圖10(A)、圖10(B)是對備用區域的位置不同時的錯誤糾正碼的保存區域進行變更的具體例。 圖11(A)~圖11(D)是對本實施例的錯誤糾正碼的保存區域進行變更的另一例。 圖12是表示本發明的實施例的ECC操作的例子的流程圖。 圖13是對本發明的第2實施例的操作序列進行說明的圖。 圖14是對本發明的第3實施例的操作序列進行說明的圖。
S200、S210、S220、S230、S240‧‧‧步驟
Claims (13)
- 一種半導體儲存裝置,包括: 記憶體陣列; 錯誤糾正部件,具備對儲存於所述記憶體陣列中的資料或從所述記憶體陣列讀出的資料的錯誤進行糾正的功能,且具備將用於錯誤糾正的所生成的錯誤糾正碼保存於保存區域中的功能;以及 設定部件,能夠從外部設定所述保存區域。
- 如申請專利範圍第1項所述的半導體儲存裝置,其中, 所述設定部件從外部接受用於設定所述保存區域的位址資訊,基於所述位址資訊來設定所述保存區域。
- 如申請專利範圍第2項所述的半導體儲存裝置,其中, 所述位址資訊包含用於保存所述錯誤糾正碼的起始位址與所述保存區域的大小。
- 如申請專利範圍第3項所述的半導體儲存裝置,其中, 所述設定部件基於來自外部的命令來設定所述保存區域。
- 如申請專利範圍第2項所述的半導體儲存裝置,其中, 所述設定部件在非揮發性暫存器中保持所述位址資訊。
- 如申請專利範圍第1項至第5項中任一項所述的半導體儲存裝置,其中, 所述半導體儲存裝置更包括:輸出部件,將由所述設定部件所設定的資訊輸出至外部。
- 如申請專利範圍第6項所述的半導體儲存裝置,其中, 所述輸出部件在所述位址資訊中所含的所述保存區域的大小比所述錯誤糾正碼的大小要小時,輸出警告資訊。
- 如申請專利範圍第6項所述的半導體儲存裝置,其中, 所述輸出部件在所述位址資訊中所含的所述起始位址的數量比能夠連續編程的最大次數大時,輸出警告資訊。
- 如申請專利範圍第5項所述的半導體儲存裝置,其中, 所述記憶體陣列包含常規區域與備用區域,所述備用區域包含所述保存區域。
- 如申請專利範圍第9項所述的半導體儲存裝置,更包括控制部件,基於來自外部的命令來存取所述非揮發性暫存器,且基於來自外部的所述位址資訊改變所述非揮發性暫存器所保持的所述位址資訊,其中所述控制部件在接通電源時讀出所述非揮發性暫存器所保持的所述位址資訊且所述錯誤糾正部件基於所述非揮發性暫存器所保持的所述位址資訊將所述錯誤糾正碼保存於所述保存區域中。
- 如申請專利範圍第10項所述的半導體儲存裝置,更包括揮發性暫存器,所述控制部件將從所述非揮發性暫存器讀出的所述位址資訊保持於所述揮發性暫存器中,其中所述揮發性暫存器的存取速率大於所述非揮發性暫存器的存取速率,且所述錯誤糾正部件從所述揮發性暫存器讀出所述位址資訊,以將所述錯誤糾正碼保存於所述保存區域中。
- 一種記憶體系統,包括: 如申請專利範圍第1項至第11項中任一項所述的半導體儲存裝置;以及 外部控制器,與所述半導體儲存裝置連接, 所述外部控制器將用於設定所述保存區域的位址資訊輸出至所述半導體儲存裝置。
- 如申請專利範圍第12項所述的記憶體系統,其中, 所述外部控制器接受由所述設定部件所設定的資訊,並基於所接受的所述資訊來輸出所述位址資訊。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016097870A JP6258399B2 (ja) | 2016-05-16 | 2016-05-16 | 半導体装置 |
JP2016-097870 | 2016-05-16 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201742080A true TW201742080A (zh) | 2017-12-01 |
TWI637395B TWI637395B (zh) | 2018-10-01 |
Family
ID=60297542
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW106113864A TWI637395B (zh) | 2016-05-16 | 2017-04-26 | 半導體儲存裝置及其記憶體系統 |
Country Status (5)
Country | Link |
---|---|
US (1) | US10496474B2 (zh) |
JP (1) | JP6258399B2 (zh) |
KR (1) | KR101950758B1 (zh) |
CN (1) | CN107402836B (zh) |
TW (1) | TWI637395B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI659308B (zh) * | 2017-12-08 | 2019-05-11 | 旺宏電子股份有限公司 | 記憶體裝置及其操作方法 |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111026675B (zh) * | 2019-12-06 | 2022-02-15 | 华中科技大学 | 一种高效的闪存数据刷新方法及基于闪存的固态硬盘 |
EP3936996A4 (en) | 2020-04-01 | 2022-07-06 | Changxin Memory Technologies, Inc. | READ-WRITE METHOD AND STORAGE DEVICE |
CN113495674B (zh) | 2020-04-01 | 2023-10-10 | 长鑫存储技术有限公司 | 读写方法及存储器装置 |
CN113495671B (zh) | 2020-04-01 | 2023-10-17 | 长鑫存储技术有限公司 | 读写方法及存储器装置 |
CN113495672B (zh) | 2020-04-01 | 2023-08-11 | 长鑫存储技术有限公司 | 读写方法及存储器装置 |
EP3964941B1 (en) | 2020-04-01 | 2024-02-28 | Changxin Memory Technologies, Inc. | Read-write method and memory device |
EP3964940A4 (en) | 2020-04-01 | 2022-08-17 | Changxin Memory Technologies, Inc. | READ/WRITE METHOD AND STORAGE DEVICE |
CN113495675B (zh) | 2020-04-01 | 2023-08-11 | 长鑫存储技术有限公司 | 读写方法及存储器装置 |
EP3985494B1 (en) | 2020-04-01 | 2024-01-17 | Changxin Memory Technologies, Inc. | Read-write method and memory device |
JP2022137391A (ja) * | 2021-03-09 | 2022-09-22 | ウィンボンド エレクトロニクス コーポレーション | 半導体記憶装置および誤り検出訂正方法 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4550439B2 (ja) * | 2003-02-28 | 2010-09-22 | 東芝メモリシステムズ株式会社 | Ecc制御装置 |
US8135935B2 (en) * | 2007-03-20 | 2012-03-13 | Advanced Micro Devices, Inc. | ECC implementation in non-ECC components |
KR101403429B1 (ko) * | 2007-10-09 | 2014-06-03 | 삼성전자주식회사 | 멀티 비트 프로그래밍 장치 및 방법 |
JP2010152989A (ja) | 2008-12-25 | 2010-07-08 | Toshiba Corp | 不揮発性半導体記憶装置 |
US8555141B2 (en) * | 2009-06-04 | 2013-10-08 | Lsi Corporation | Flash memory organization |
US20110041039A1 (en) * | 2009-08-11 | 2011-02-17 | Eliyahou Harari | Controller and Method for Interfacing Between a Host Controller in a Host and a Flash Memory Device |
US9727414B2 (en) * | 2010-12-01 | 2017-08-08 | Seagate Technology Llc | Fractional redundant array of silicon independent elements |
US8560922B2 (en) * | 2011-03-04 | 2013-10-15 | International Business Machines Corporation | Bad block management for flash memory |
US8902653B2 (en) * | 2011-08-12 | 2014-12-02 | Micron Technology, Inc. | Memory devices and configuration methods for a memory device |
US8719646B2 (en) * | 2012-04-30 | 2014-05-06 | Freescale Semiconductor, Inc. | Non-volatile memory (NVM) reset sequence with built-in read check |
US9122626B2 (en) * | 2013-05-13 | 2015-09-01 | Seagate Technology Llc | Linearly related threshold voltage offsets |
US9201728B2 (en) * | 2013-09-12 | 2015-12-01 | Seagate Technology Llc | Memory device with variable code rate |
JP6131207B2 (ja) * | 2014-03-14 | 2017-05-17 | ウィンボンド エレクトロニクス コーポレーション | 半導体記憶装置 |
CN104951405B (zh) * | 2014-03-28 | 2019-09-06 | 三星电子株式会社 | 存储系统以及对存储系统执行和验证写保护的方法 |
US9984007B2 (en) * | 2014-03-28 | 2018-05-29 | Samsung Electronics Co., Ltd. | Storage system and method for performing and authenticating write-protection thereof |
-
2016
- 2016-05-16 JP JP2016097870A patent/JP6258399B2/ja active Active
-
2017
- 2017-04-26 TW TW106113864A patent/TWI637395B/zh active
- 2017-05-12 KR KR1020170059400A patent/KR101950758B1/ko active IP Right Grant
- 2017-05-15 CN CN201710339908.9A patent/CN107402836B/zh active Active
- 2017-05-15 US US15/594,670 patent/US10496474B2/en active Active
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI659308B (zh) * | 2017-12-08 | 2019-05-11 | 旺宏電子股份有限公司 | 記憶體裝置及其操作方法 |
Also Published As
Publication number | Publication date |
---|---|
KR101950758B1 (ko) | 2019-02-21 |
KR20170129060A (ko) | 2017-11-24 |
TWI637395B (zh) | 2018-10-01 |
US20170329670A1 (en) | 2017-11-16 |
JP2017208149A (ja) | 2017-11-24 |
US10496474B2 (en) | 2019-12-03 |
CN107402836A (zh) | 2017-11-28 |
CN107402836B (zh) | 2020-12-22 |
JP6258399B2 (ja) | 2018-01-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI637395B (zh) | 半導體儲存裝置及其記憶體系統 | |
US20200143877A1 (en) | Semiconductor memory device and memory system | |
US8125825B2 (en) | Memory system protected from errors due to read disturbance and reading method thereof | |
US10007465B2 (en) | Remapping in a memory device | |
TWI595497B (zh) | 半導體記憶裝置、其不良行救濟方法及冗餘資訊設定方法 | |
JP6131207B2 (ja) | 半導体記憶装置 | |
JP2020155180A (ja) | メモリ読み出し方法及びメモリシステム並びにコンピュータ・プログラム | |
US9613720B2 (en) | Semiconductor storage device | |
US8891304B2 (en) | Nonvolatile semiconductor memory device and memory system | |
US20160062827A1 (en) | Semiconductor memory device and programming method thereof | |
TW201807710A (zh) | 反及型快閃記憶體及其讀出方法 | |
US7543104B2 (en) | Non-volatile semiconductor device for use in memory card and memory system | |
JP2020155167A (ja) | 不揮発性メモリ | |
JP6115740B1 (ja) | 半導体記憶装置 | |
TW202117721A (zh) | 記憶體系統 | |
US9922687B2 (en) | Memory system, semiconductor device and methods of operating the same | |
KR101651573B1 (ko) | 반도체 기억장치 및 그 프로그래밍 방법 | |
TWI753814B (zh) | 半導體儲存裝置以及錯誤檢測糾正相關資訊的讀出方法 | |
TWI521530B (zh) | 半導體記憶裝置及其編程方法 | |
JP6293846B2 (ja) | 半導体記憶装置 | |
JP5710815B1 (ja) | 半導体記憶装置 | |
TWI505278B (zh) | Semiconductor memory device | |
TW202211237A (zh) | 半導體記憶裝置 |