TWI812034B - Memory device and operation method thereof - Google Patents
Memory device and operation method thereof Download PDFInfo
- Publication number
- TWI812034B TWI812034B TW111107113A TW111107113A TWI812034B TW I812034 B TWI812034 B TW I812034B TW 111107113 A TW111107113 A TW 111107113A TW 111107113 A TW111107113 A TW 111107113A TW I812034 B TWI812034 B TW I812034B
- Authority
- TW
- Taiwan
- Prior art keywords
- memory
- data
- column
- row
- target block
- Prior art date
Links
- 238000000034 method Methods 0.000 title abstract description 11
- 238000012937 correction Methods 0.000 claims abstract description 107
- 238000011017 operating method Methods 0.000 claims description 7
- 238000010586 diagram Methods 0.000 description 12
- 230000008569 process Effects 0.000 description 5
- 238000007689 inspection Methods 0.000 description 4
- 238000007667 floating Methods 0.000 description 3
- 101000575029 Bacillus subtilis (strain 168) 50S ribosomal protein L11 Proteins 0.000 description 2
- 102100035793 CD83 antigen Human genes 0.000 description 2
- 101000946856 Homo sapiens CD83 antigen Proteins 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 125000004122 cyclic group Chemical group 0.000 description 2
- 238000013480 data collection Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000008672 reprogramming Effects 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 101710190981 50S ribosomal protein L6 Proteins 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
- For Increasing The Reliability Of Semiconductor Memories (AREA)
- Dram (AREA)
- Electrotherapy Devices (AREA)
Abstract
Description
本發明是有關於一種記憶區塊、記憶體裝置及其操作方法。 The present invention relates to a memory block, a memory device and an operating method thereof.
記憶體內搜尋(in-memory search,IMS)技術被廣泛應用在人工智能(artificial intelligence)、大數據(big data)、網址搜尋(IP search)等領域。然而,記憶體內儲存的資料可能因種種原因而出現錯誤位元。當儲存的資料出現錯誤位元,搜尋結果的可靠性也會受到影響。於是,為了確保搜尋結果的可靠性,有必要解決記憶體內搜尋陣列儲存的資料出現錯誤位元的問題。 In-memory search (IMS) technology is widely used in fields such as artificial intelligence, big data, and IP search. However, the data stored in the memory may contain erroneous bits due to various reasons. When there are bit errors in the stored data, the reliability of the search results will also be affected. Therefore, in order to ensure the reliability of search results, it is necessary to solve the problem of erroneous bits in the data stored in the search array in the memory.
本發明一實施例係揭露一種記憶體裝置,包括複數個記憶區塊、複數個驅動電路、一錯誤更正電路及一控制電路。各記憶區塊包括複數個記憶單元。驅動電路耦接至該些記憶區塊。錯誤更正電路耦接至記憶區塊。控制電路耦接至驅動電路及錯誤更正電路,用以選擇記憶區塊之一作為一目標區塊,並對目標區塊執行錯誤更正操作。目標區塊的記憶單元具有複數行與複數列。該些行包括至少一資料行與至少一檢查行。資料行的記憶 單元所儲存的資料為使用者資料。檢查行的記憶單元所儲存的資料係為檢查碼。每一列的記憶單元所儲存的檢查碼係根據同一列的記憶單元所儲存的使用者資料所產生。錯誤更正操作包括逐列讀取目標區塊的記憶單元。將目標區塊的記憶單元儲存的資料傳送至錯誤更正電路。錯誤更正電路根據各列的記憶單元所儲存的檢查碼,檢查各列的記憶單元所儲存的使用者資料是否存在錯誤位元並進行更正,以產生對應於各列的記憶單元儲存的資料的一更正資料。 An embodiment of the present invention discloses a memory device, which includes a plurality of memory blocks, a plurality of driving circuits, an error correction circuit and a control circuit. Each memory block includes a plurality of memory units. The driving circuit is coupled to the memory blocks. The error correction circuit is coupled to the memory block. The control circuit is coupled to the driving circuit and the error correction circuit for selecting one of the memory blocks as a target block and performing an error correction operation on the target block. The memory unit of the target block has a plural number of rows and a plural number of columns. The rows include at least one data row and at least one check row. Data row memory The data stored in the unit is user data. The data stored in the memory unit of the check line is the check code. The check code stored in the memory unit of each column is generated based on the user data stored in the memory unit of the same column. The error correction operation involves reading the memory cells of the target block column by column. The data stored in the memory unit of the target block is sent to the error correction circuit. The error correction circuit checks whether there are error bits in the user data stored in the memory units of each column based on the check codes stored in the memory units of each column and performs corrections to generate a code corresponding to the data stored in the memory units of each column. Correct information.
本發明另一實施例揭露一種記憶體裝置的操作方法,包括:選擇複數個記憶區塊的其中之一做為一目標區塊以執行一錯誤更正操作,該目標區塊包括複數個記憶單元,該些記憶單元具有複數行與複數列,該些行包括至少一資料行與至少一檢查行,資料行的記憶單元所儲存的資料係為使用者資料,檢查行的記憶單元所儲存的資料係為檢查碼,每一列的記憶單元所儲存的檢查碼係根據同一列的記憶單元所儲存的使用者資料所產生;逐列讀取該目標區塊的該些列的記憶單元;將目標區塊的該些列的記憶單元儲存的資料傳送至一錯誤更正電路;以及錯誤更正電路根據各列的記憶單元所儲存的檢查碼,檢查各列的記憶單元所儲存的使用者資料是否存在錯誤位元並進行更正,以產生對應於各列的記憶單元儲存的資料的一更正資料。 Another embodiment of the present invention discloses an operating method of a memory device, including: selecting one of a plurality of memory blocks as a target block to perform an error correction operation, the target block including a plurality of memory units, The memory units have a plurality of rows and a plurality of columns. The rows include at least one data row and at least one check row. The data stored in the memory unit of the data row is user data, and the data stored in the memory unit of the check row is user data. As a check code, the check code stored in the memory unit of each column is generated based on the user data stored in the memory unit of the same column; the memory units of the columns of the target block are read column by column; the target block is The data stored in the memory units of the rows is sent to an error correction circuit; and the error correction circuit checks whether the user data stored in the memory units of each row contains error bits based on the check codes stored in the memory units of each row. And correction is performed to generate a corrected data corresponding to the data stored in the memory unit of each column.
本發明又一實施例係揭露一種記憶區塊,包括複數個記憶單元。該些記憶單元具有複數行與複數列。該些列的記憶單元用以通過複數條第一信號線耦接至一第一驅動電路。該些行的記憶單元 用以通過複數條第二信號線耦接至一第二驅動電路且通過複數條第三信號線耦接至一感測電路。記憶單元更耦接至一錯誤更正電路。該些行包括至少一資料行與至少一檢查行。資料行的記憶單元所儲存的資料係為使用者資料。檢查行的記憶單元所儲存的資料係為檢查碼。每一列的記憶單元所儲存的檢查碼係根據同一列的記憶單元所儲存的使用者資料所產生。 Another embodiment of the present invention discloses a memory block including a plurality of memory units. The memory cells have a plurality of rows and a plurality of columns. The rows of memory cells are coupled to a first driving circuit through a plurality of first signal lines. The memory cells of these rows For coupling to a second driving circuit through a plurality of second signal lines and to a sensing circuit through a plurality of third signal lines. The memory unit is further coupled to an error correction circuit. The rows include at least one data row and at least one check row. The data stored in the memory unit of the data row is user data. The data stored in the memory unit of the check line is the check code. The check code stored in the memory unit of each column is generated based on the user data stored in the memory unit of the same column.
為了對本發明之上述及其他方面有更佳的瞭解,下文特舉實施例,並配合所附圖式詳細說明如下: In order to have a better understanding of the above and other aspects of the present invention, examples are given below and are described in detail with reference to the accompanying drawings:
10:記憶體裝置 10:Memory device
102:第一驅動電路 102: First drive circuit
104:第二驅動電路 104: Second drive circuit
106:感測電路 106: Sensing circuit
108-1~108-3:記憶區塊 108-1~108-3: Memory block
110:錯誤更正電路 110: Error correction circuit
112:控制電路 112:Control circuit
SL1~SLm:第一信號線 SL1~SLm: first signal line
BL1~BLn:第二信號線 BL1~BLn: second signal line
ML1~MLn:第三信號線 ML1~MLn: The third signal line
U1-1~Um-n:記憶單元 U1-1~Um-n: memory unit
S301~S307、S801~S807:步驟 S301~S307, S801~S807: steps
400、500、620:資料集合 400, 500, 620: Data collection
700:讀出的列資料 700: Read column data
710:邏輯 710:Logic
720:更正資料 720:Correct information
730~760:檢查單元 730~760: Check unit
770:計算單元 770:Computing unit
第1圖繪示根據本發明一實施例的記憶體裝置的方塊圖;第2圖繪示根據本發明一實施例的記憶區塊的示意圖;第3圖繪示根據本發明一實施例的記憶體裝置的操作方法的流程圖;第4圖繪示記憶區塊中儲存的資料集合的示意圖;第5A~5D圖繪示逐行讀取記憶區塊的資料進行檢查及更正的示意圖;第6圖繪示將經過檢查及更正得到的正確資料集合編程至另一記憶區塊的示意圖;第7圖繪示根據本發明一實施例的錯誤更正電路的運作示意圖;第8圖繪示根據本發明一實施例的記憶體裝置的操作流程。 Figure 1 illustrates a block diagram of a memory device according to an embodiment of the present invention; Figure 2 illustrates a schematic diagram of a memory block according to an embodiment of the present invention; Figure 3 illustrates a memory device according to an embodiment of the present invention. A flow chart of the operation method of the physical device; Figure 4 shows a schematic diagram of the data collection stored in the memory block; Figures 5A~5D show a schematic diagram of reading the data in the memory block line by line for checking and correction; Figure 6 The figure shows a schematic diagram of programming the correct data set obtained after checking and correction into another memory block; Figure 7 shows a schematic diagram of the operation of the error correction circuit according to an embodiment of the present invention; Figure 8 shows a schematic diagram of the error correction circuit according to the present invention Operational flow of a memory device according to an embodiment.
請參照第1圖,第1圖繪示根據本發明一實施例的記憶體裝置的方塊圖。記憶體裝置10包括一第一驅動電路102、一第二驅動電路104、一感測電路106、多個記憶區塊(memory block)108-1~108-2、一錯誤更正電路110及一控制電路112。需要注意的是,第1圖中記憶區塊108-1~108-3的排列方式及各電路方塊的位置係基於清楚表示連接關係的目的而配置,非用以限制本發明,且與實際的配置可能有所差異。另外,本發明亦不限制記憶區塊的數量。
Please refer to FIG. 1 , which illustrates a block diagram of a memory device according to an embodiment of the present invention. The
各記憶區塊108-1~108-3通過多條第一信號線耦接至第一驅動電路102,通過多條第二信號線耦接至第二驅動電路104,並通過多條第三信號線耦接至感測電路106。在一實施例中,第一信號線為字元線(word line)或搜尋線(search line),第二信號線為位元線(bit line),第三信號線為匹配線(match line),第一驅動電路102可為字元線驅動電路,第二驅動電路104可為位元線驅動電路。
Each memory block 108-1~108-3 is coupled to the
請參照第2圖繪示的根據本發明一實施例的記憶體區塊的示意圖。由於記憶區塊108-1~108-3具有相似的結構,第2圖僅繪出記憶區塊108-1。記憶區塊108-1可包括多個記憶單元U1-1~Um-n。記憶單元U1-1~Um-n可為電阻式儲存元件、鐵電電晶體及浮閘電晶體等。此些記憶單元U1-1~Um-n形成一記憶體內搜尋陣列(in-memory search array,IMS array)。記憶單元U1-1~Um-n被配置為m個列及n個行,其中m、n為正整數。第i列記憶單元通過第一信號線SLi耦接至第一驅動電路102,其中i=1、2、...、m。第j行記憶單元通過第二信
號線BLj耦接至第二驅動電路104,且通過第三信號線MLj耦接至感測電路106,其中j=1、2、...、n。
Please refer to Figure 2 for a schematic diagram of a memory block according to an embodiment of the present invention. Since the memory blocks 108-1~108-3 have similar structures, only the memory block 108-1 is shown in Figure 2. The memory block 108-1 may include a plurality of memory units U1-1~Um-n. The memory units U1-1~Um-n can be resistive storage elements, ferroelectric transistors, floating gate transistors, etc. These memory units U1-1~Um-n form an in-memory search array (IMS array). The memory units U1-1~Um-n are configured as m columns and n rows, where m and n are positive integers. The i-th column memory cell is coupled to the
記憶單元U1-1~Um-n可分別被編程為不同的二種狀態中的一種。以浮閘電晶體來說,狀態是根據閾值電來來決定,不同的二種狀態分別為高閾值電壓與低閾值電壓,其中低閾值電壓可代表0及1的其中之一,高閾值電壓可代表0及1的其中另一。 The memory units U1-1~Um-n can be programmed into one of two different states respectively. For floating gate transistors, the state is determined based on the threshold voltage. The two different states are high threshold voltage and low threshold voltage. The low threshold voltage can represent one of 0 and 1, and the high threshold voltage can represent The other of 0 and 1.
在一實施例中,一個記憶單元會被配置一個記憶胞。基於記憶單元的狀態的不同,一個記憶胞可以儲存代表0或1的資料。此種架構稱之為內容可定址記憶體(content addressable memory,CAM)。 In one embodiment, a memory unit is configured with one memory cell. Depending on the state of the memory cell, a memory cell can store data representing 0 or 1. This architecture is called content addressable memory (CAM).
在另一實施例中,二個記憶單元會被配置一個記憶胞。舉例來說,記憶單元U1-1、U2-1可被配置為一記憶胞,記憶單元U1-2、U2-2可被配置為另一記憶胞,以此類推。基於二個記憶單元的狀態組合,一個記憶胞可以儲存代表0、1或隨意(don’t care)中的一種資料。此種架構稱之為三態內容可定址記憶體(ternary content addressable memory,TCAM)。 In another embodiment, two memory cells are configured into one memory cell. For example, the memory units U1-1 and U2-1 can be configured as one memory cell, the memory units U1-2 and U2-2 can be configured as another memory cell, and so on. Based on the combination of the states of two memory cells, a memory cell can store data representing 0, 1, or don’t care. This architecture is called ternary content addressable memory (TCAM).
需要說明的是,在一些實施例中,以儲存多張圖片特徵值的TCAM為例,記憶胞儲存的資料可能代表一張圖片的特徵值中的一個位元,而單個記憶單元儲存的資料是沒有具體意義的。然而,資料的正確性無關乎資料所代表的具體意義。只要記憶單元儲存的資料都是正確的,由記憶單元構成的記憶胞儲存的資料便會是正確的。換句話說,每一列的記憶單元儲存的資料都是正確的,每一行的記憶 單元儲存的資料也會是正確的。因此,接下來文中所述的資料涉及的是記憶單元儲存的資料。 It should be noted that in some embodiments, taking a TCAM that stores feature values of multiple pictures as an example, the data stored in a memory cell may represent one bit in the feature value of a picture, and the data stored in a single memory unit is There is no specific meaning. However, the accuracy of the data is independent of the specific meaning represented by the data. As long as the data stored in the memory units are correct, the data stored in the memory cells composed of memory units will be correct. In other words, the data stored in the memory cells of each column is correct, and the memory cells of each row The data stored in the unit will also be correct. Therefore, the data described in the following article refers to the data stored in the memory unit.
錯誤更正電路110耦接至記憶區塊108-1~108-3。關於錯誤更正電路110的細節會於下文詳述。
The
控制電路112耦接至第一驅動電路102、第二驅動電路104、感測電路106及錯誤更正電路110。控制電路112用以藉由信號控制第一驅動電路102、第二驅動電路104、感測電路106及錯誤更正電路110的操作。
The
記憶體裝置10可執行的操作包括編程(program)操作、讀取(read)操作、擦除(erase)操作及搜尋(search)操作等CAM及TCAM的基本操作。編程操作及擦除操作可由控制電路112控制第一驅動電路102及第二驅動電路104分別施加適當的偏壓於第一信號線SL1~SLm及第二信號線BL1~BLn來實現。讀取操作及搜尋操作可由控制電路112控制第一驅動電路102及第二驅動電路104分別施加適當的偏壓於第一信號線SL1~SLm及第二信號線BL1~BLn,並控制感測電路106偵測第三信號線ML1~MLn流出的電流來實現。其中,搜尋操作中,第一驅動電路102施加於第一信號線SL1~SLm上的偏壓係代表所要搜尋的資料,且感測電路106根據偵測第三信號線ML11~MLn流出的電流大小判斷是否有任何行的記憶單元儲存的資料與所要搜尋的資料匹配。需要注意的是,編程操作、讀取操作、擦除操作及搜尋操作的具體實行方式會根據記憶體裝置10的類型(例如NOR型、NAND型)、記憶單元的類型(例如電阻式儲存元件、鐵電電晶體、浮閘電晶
體)及其他因素而有所不同。需要注意的是,部分記憶區塊在進行搜尋操作的同時,其他的記憶區塊可處於閒置狀態或是進行搜尋操作以外的操作。所謂閒置狀態指的是記憶區塊沒有在進行編程操作、讀取操作、擦除操作、搜尋操作以及將於下文說明的錯誤更正操作。
The operations that the
記憶體裝置10可進一步執行錯誤更正操作。
The
請參照第3圖,第3圖繪示根據本發明一實施例的記憶體裝置的操作方法的流程圖。本流程是用以針對記憶區塊內儲存的資料進行錯誤檢查及更正。 Please refer to FIG. 3 , which illustrates a flow chart of an operating method of a memory device according to an embodiment of the present invention. This process is used to check and correct errors in the data stored in the memory block.
在步驟S301中,由控制電路112從記憶區塊108-1~108-3中決定一目標區塊。控制電路112可從記憶區塊108-1~108-3中選擇處於閒置狀態者做為目標區塊。例如,假設記憶區塊108-2正在執行搜尋操作,記憶區塊108-1及108-3未在執行任何操作,控制電路112可選擇記憶區塊108-1做為目標區塊。在一實施例中,記憶區塊108-1內儲存的資料集合如第4圖所示。
In step S301, the
請參照第4圖,第4圖繪示根據本發明一實施例的記憶區塊儲存的資料集合的示意圖。資料集合400是儲存在記憶區塊108-1的記憶單元中。例如由上起算的四列資料分別儲存在記憶區塊108-1中對應於第一信號線SL1~SL4的四列記憶單元中,由左起算的十一行的資料分別儲存在記憶區塊108-1中對應於第二信號線BL1~BL11的十一行記憶單元中。例如,左起第一行的資料0011儲存在對應於第一信號線BL1上的記憶單元U1-1~U4-1,其中記憶單元U1-1儲存的是0,記憶單元U2-1儲存的0,記憶單元U3-1儲存的是1,記憶單元U4-1儲
存的是1。為了說明的方便,「對應於特定信號線的記憶單元」將被描述為「特定信號線上的記憶單元」。例如,對應於第一信號線SL1的記憶單元U1-1~U1-n將被描述為第一信號線SL1上的記憶單元U1-1~U1-n;對應於第二信號線BL1(或第三信號線ML1)的記憶單元U1-1~Um-1將被描述為第二信號線BL1(或第三信號線ML1)上的記憶單元U1-1~U1-n。在本實施例中,記憶區塊108-1中至少一行的記憶單元被配置為資料行,至少一行的記憶單元被配置為檢查行。資料行儲存的資料為使用者資料,檢查行儲存的資料是檢查碼。使用者資料例如是圖片的特徵值及IP位址等。資料集合400中,由左起算,第一行是使用者資料0011,第二行是使用者資料1110,第三行是使用者資料1111,第四行是檢查碼1101,第五行是使用者資料1001,第六行是使用者資料0010,第七行是使用者資料0110,第八行是檢查碼0010,第九行是使用者資料0101,第十行是檢查碼1100,第十一行是檢查碼1001,其中檢查碼的位元以點格表示。也就是說,在記憶區塊108-1中,第一信號線BL1~BL3、BL5~BL7、BL9上的記憶單元為資料行,儲存的是使用者資料,第一信號線BL4、BL8、BL10、BL11上的記憶單元為檢查行,儲存的是檢查碼。每一列的資料包含的檢查碼是根據同一列的使用者資料所產生。舉例來說,由上起算第一行的資料中,第四、八、十、十一位元為檢查碼,此些檢查碼是根據同屬第一行的第一、二、三、五、六、七、九位元的使用者資料所產生。產生檢查碼所使用的演算法可為里德-所羅門碼(Reed-Solomon code)、奇偶校驗碼(parity check code)、校驗和(check sum)、循環冗
餘校驗(cyclic redundancy code)等任何為人所熟知且可應用的演算法。
Please refer to FIG. 4 , which is a schematic diagram of a data set stored in a memory block according to an embodiment of the present invention.
在步驟S303中,由控制電路112判斷是否觸發錯誤檢查及更正。若否,結束本流程;若是,執行S303。控制電路112可根據目標區塊的讀取次數、搜尋次數、資料的持續時間(前一次編程後經過的時間)等參數判斷是否觸發針對目標區塊的錯誤檢查及更正。例如,當讀取次數、搜尋次數或資料的維持時間大於對應的閥值時,控制電路112判斷要觸發針對目標區塊的錯誤檢查及更正。
In step S303, the
在步驟S304中,控制電路112命令第一驅動電路102及第二驅動電路104對目標區塊(記憶區塊108-1)施加讀取偏壓以逐列讀取目標區塊中的各列的記憶單元儲存的資料,並將各列的記憶單元儲存的資料傳送至至錯誤更正電路110。
In step S304, the
在步驟S305中,由錯誤更正電路110判斷從各列的記憶單元讀出的資料是否存在錯誤位元。若是,執行S306;若否,結束本流程。
In step S305, the
在S306中,由錯誤更正電路110判斷錯誤位元是否能夠被更正。若是,執行S307;若否,結束本流程。任何錯誤校正碼皆存在錯誤更正率。當錯誤位元的數量超過使用的錯誤校正碼所能更正的錯誤位元的數量上限時,即使知道有錯誤位元的存在也無法將其更正。
In S306, the
在S307中,由錯誤更正電路110對從各列的記憶單元讀出的資料中的錯誤位元進行更正並產生(輸出)更正資料。
In S307, the
請參照第5A-5D圖,第5A-5D圖繪示逐列讀取目標區塊的資料並送入錯誤更正電路進行檢查及更正的示意圖。第5A-5D圖顯示的資料集合500是因第4圖顯示的資料集合400出現錯誤位元而形成。在本實施例中,記憶單元U2-3儲存的資料出現錯誤,也就是資料集合500中資料位元502實際上是錯誤位元,該位元在資料集合400中為1,而在資料集合500中為0(錯誤)。
Please refer to Figures 5A-5D. Figures 5A-5D illustrate a schematic diagram of reading the data of the target block column by column and sending it to the error correction circuit for checking and correction. The
在第5A圖中,第一驅動電路102施加讀取電壓Vread在第一信號線SL1,施加通過電壓Vpass在其他第一信號線SL2~SLm,以讀取第一信號線SL1上記憶單元U1-1~U1-11儲存的資料510,即01111000011。讀出的資料被輸入至錯誤更正電路110進行錯誤檢查及更正。錯誤更正電路110檢查後得到01111000011沒有錯誤位元的檢查結果530。
In Figure 5A, the
在第5B圖中,第一驅動電路施加讀取電壓Vread在第一信號線SL2,施加通過電壓Vpass在其他第一信號線SL1、SL3~SLm,以讀取第一信號線SL2上記憶單元U2-1~U2-11儲存的資料540,即01010010110。讀出的資料被輸入至錯誤更正電路110進行錯誤檢查及更正。錯誤更正電路110檢查後得到01010010110中的由左起算第三個位元是錯誤位元的檢查結果。接著,錯誤更正電路106將錯誤位元由0更正為1後輸出更正資料550,即01110010110。
In Figure 5B, the first driving circuit applies the read voltage Vread to the first signal line SL2, and applies the pass voltage Vpass to the other first signal lines SL1, SL3~SLm to read the memory unit U2 on the first signal line SL2. The data stored in -1~U2-11 is 540, which is 01010010110. The read data is input to the
在第5C圖中,第一驅動電路施加讀取電壓Vread在第一信號線SL3,施加通過電壓Vpass在其他第一信號線SL1~SL2、SL4~SLm,以讀取第一信號線SL3上記憶單元U3-1~U3-11儲存的資
料560,即11100111000。讀出的資料被輸入至錯誤更正電路110進行錯誤檢查及更正。錯誤更正電路110檢查後得到11100111000沒有錯誤位元的檢查結果570。
In Figure 5C, the first driving circuit applies the read voltage Vread to the first signal line SL3, and applies the pass voltage Vpass to the other first signal lines SL1~SL2, SL4~SLm to read the memory on the first signal line SL3. The data stored in units U3-1~U3-11
The material is 560, which is 11100111000. The read data is input to the
在第5D圖中,第一驅動電路施加讀取電壓Vread在第一信號線SL4,施加通過電壓Vpass在其他第一信號線SL1~SL3、SL5~SLm,以讀取第一信號線SL4上記憶單元U4-1~U4-11儲存的資料580,即10111000101。讀出的資料被輸入至錯誤更正電路110進行錯誤檢查及更正。錯誤更正電路110檢查後得到10111000101沒有錯誤位元的檢查結果590。
In Figure 5D, the first driving circuit applies the read voltage Vread to the first signal line SL4, and applies the pass voltage Vpass to the other first signal lines SL1~SL3, SL5~SLm to read the memory on the first signal line SL4. The data stored in units U4-1~U4-11 is 580, which is 10111000101. The read data is input to the
在一實施例中,錯誤更正電路110在得到沒有錯誤位元的檢查結果後,可輸出用以代表「沒有錯誤」的信號至控制電路112。控制電路收到代表「沒有錯誤」的信號便不會更動記憶區塊108-1中未出現錯誤位元的該列的記憶單元儲存的資料。例如,在第5A~5D圖的例子中,控制單元1112不會更動第一信號線SL1、SL3~SL4上記憶單元儲存的資料。另一方面,錯誤更正電路110可將對應於檢查出錯誤的該列的記憶單元儲存的資料的更正資料輸出至控制電路112,控制電路112可根據更正資料編程出現錯誤位元的第一信號線上的記憶單元,以將錯誤的資料變更為正確的資料。以第5A~5D圖的例子來說,在第5B圖的操作執行之後,錯誤更正電路110將更正資料550,即01110010110,輸出至控制電路112,控制電路112根據更正資料550命令第一驅動電路102及第二驅動電路104對第一信號線
SL1~SLm及第二信號線BL1~BLn分別施加編程偏壓,以對記憶單元U2-1~U2-n進行編程,藉以將記憶單元U2-3儲存的資料由0變更為1。
In one embodiment, after obtaining the check result that there are no error bits, the
在另一實施例中,錯誤更正電路110在得到沒有錯誤位元的檢查結果後,可將經過檢查沒有發現錯誤的資料做為更正資料輸出(相同於讀出的資料)。例如,在第5A、5C、5D圖的例子中,錯誤更正電路110在檢查過讀取出的資料510、560、580後未發現錯誤,錯誤更正電路110會將檢查後沒有錯誤的資料做為更正資料530、570、590(相同於讀出的資料510、560、580)輸出。控制電路112可接收錯誤更正電路110輸出的更正資料(包括未檢查出錯誤的資料的更正資料530、570、590以及經過更正獲得的更正資料550),並命令第一驅動電路102及第二驅動電路104施加編程偏壓至另一個記憶區塊,以將此些更正資料編程至另一個記憶區塊。例如,由於記憶區塊10-2在執行搜尋操作且記憶區塊108-1在執行錯誤更正操作,控制電路112可將記憶區塊108-1執行錯誤更正操作得到的更正資料編程至記憶區塊108-3。如第6圖所示,原本儲存在記憶區塊108-1中的資料集合500在經過錯誤更正電路110的檢查及更正後,得到由資料集合500中各列資料所對應的更正資料構成的資料集合620,資料集合620被編程到記憶區塊108-3。如此一來,原本儲存在記憶區塊108-1中的資料集合會被認為已經被「移動」到記憶區塊108-3,也就是說儲存在記憶區塊108-3的資料集合620會被視為是資料集合500的正確版本,而記憶區塊108-3會被用來代替記憶區塊108-1進行搜尋操作。
In another embodiment, after obtaining the check result that no error bits are found, the
請參照第7圖,第7圖繪示根據本發明一實施例的錯誤更正的示意圖。資料700是第5B圖中從第一信號線SL2上記憶單元讀出的資料,其中位元b9為錯誤位元。邏輯710是等效於錯誤更正電路的運算方塊。位元b1、b3、b5、b7、b9、b11被取出送入檢查單元730進行偶同位元檢查(even parity check),即計算此些位元為1的數量是否為偶數(若是,檢查結果為1,若否,檢查結果為0),得到C1=1。位元b2、b3、b6、b7、b10、b11被取出送入檢查單元740進行偶同位元檢查,得到C2=0。位元b4、b5、b6、b7被取出送入檢查單元750進行偶同位元檢查,得到C3=0。位元b8、b9、b10、b11被取出送入檢查單元760進行偶同位元檢查,得到C4=1。接著,檢查單元730~760的輸出被送入計算單元770計算N=8*C4+4*C3+2*C2+C1。若N為0,代表沒有錯誤;若N不為0,代表由最低有效位元起算第N個位元為錯誤位元。以本實施例來說,最低有效位元為位元b1,且N為9,即代表從位元b1起算第九個位元b9為錯誤位元。於是,計算單元770可根據運算的結果N將第九個位元由0變更為1,而得到更正資料720並輸出。
Please refer to FIG. 7 , which is a schematic diagram of error correction according to an embodiment of the present invention.
請參照第8圖,第8圖繪示根據本發明一實施例的記憶體裝置的操作流程。 Please refer to FIG. 8 , which illustrates an operation flow of a memory device according to an embodiment of the present invention.
在步驟S801中,執行錯誤更正檢查(ECC check),逐列檢查直到整個範圍都被檢查過。此處所謂整個範圍指的是在一個記憶區塊中有儲存資料的記憶單元。也就是說,沒有儲存資料的記憶單元可以不進行錯誤更正檢查。舉例來說,以第5A~5D圖的例子,記憶區 塊108-1實際上有m列記憶單元,但在執行錯誤更正檢查時,可以只讀取有儲存資料的四列記憶單元,即第一信號線SL1~SL4上的記憶單元。 In step S801, an error correction check (ECC check) is performed, column by column until the entire range has been checked. The entire range here refers to the memory units that store data in a memory block. In other words, memory cells that do not store data do not need to be checked for error correction. For example, taking the example of Figures 5A~5D, the memory area Block 108-1 actually has m columns of memory cells, but when performing an error correction check, only the four columns of memory cells with stored data, that is, the memory cells on the first signal lines SL1 to SL4, can be read.
在步驟S802中,判斷是否檢查到錯誤位元。若是,執行步驟S803;若否,執行步驟S806。參考前文所述,步驟S802可由錯誤更正電路110執行。
In step S802, it is determined whether an error bit is detected. If yes, execute step S803; if not, execute step S806. Referring to the foregoing description, step S802 may be performed by the
在步驟S803中,編程對應於在錯誤更正檢查中檢查到的錯誤位元所在的第一信號線上的記憶單元,以更正儲存錯誤位元的記憶單元中的資料。控制電路112可根據錯誤更正電路110的檢查結果決定對哪一條第一信號線上的記憶單元進行編程。此方式適合應用於允許單條字元線進行個別編程及擦除操作的記憶體類型。
In step S803, the memory unit corresponding to the first signal line where the error bit detected in the error correction check is located is programmed to correct the data in the memory unit storing the error bit. The
在步驟S804中,判斷儲存錯誤位元的記憶單元是否能被重新編程。若是,執行步驟S805;若否,執行步驟S805。控制電路112可在根據錯誤更正電路110的輸出編程對應於在錯誤更正檢查中檢查到的錯誤位元所在的第一信號線上的記憶單元之後進行驗證來確認編程後該列記憶單元中的資料是否相同於所要編程的更正資料(正確的資料)。造成記憶單元儲存的錯誤位元無法透過重新編程進行變更的原因可能是記憶單元已損壞。
In step S804, it is determined whether the memory cell storing the error bit can be reprogrammed. If yes, perform step S805; if not, perform step S805. The
在步驟S805中,使用另一行記憶單元(即另一條位元線/匹配線上的記憶單元)來儲存該筆資料的正確版本。造成記憶單元儲存的錯誤位元無法透過重新編程進行更正的原因可能是記憶單元已損壞。於是,控制電路112可選擇另一條位元線/匹配線上的記憶單元來
儲存對應於無法重新編程的記憶單元的該行使用者資料的正確版本(即錯誤位元被更正後的該行使用者資料)。以第2圖及第5B圖的例子來說,若記憶單元U2-3無法重新編程以儲存正確的資料,則控制電路112可將第二信號線BL3上記憶單元U1-3~U4-3儲存的使用者資料的正確版本(即1111,而不是1011)編程到第二信號線BL12上的記憶單元U1-12~U4-12。
In step S805, another row of memory cells (ie, memory cells on another bit line/match line) is used to store the correct version of the data. The reason why the erroneous bits stored in the memory cells cannot be corrected through reprogramming may be that the memory cells are damaged. Therefore, the
在步驟S806中,施加搜尋請求。 In step S806, a search request is applied.
在步驟S807中,判斷錯誤更正檢查是否被觸發。若是,執行步驟S801;若否,執行步驟S806。 In step S807, it is determined whether the error correction check is triggered. If yes, execute step S801; if not, execute step S806.
本實施例的流程可以是對記憶體裝置中的每一個記憶區塊個別執行。 The process of this embodiment may be executed individually for each memory block in the memory device.
在搜尋操作時,此些用以儲存檢查碼的檢查行可不進行搜尋或者搜尋的結果不會被輸出。在一實施例中,控制電路112在對記憶區塊執行搜尋操作時可命令第二驅動電路不施加搜尋偏壓於對應於檢查行的第二信號線。在另一實施例中,控制電路112在對記憶區塊執行搜尋操作時可命令感測電路不偵測從對應於檢查行的第三信號線流出的電流。具體實現方式例如是禁能感測電路中用以偵測對應於檢查行的第三信號線的電流感測單元(例如感測放大器)。
During a search operation, the check lines used to store check codes may not be searched or the search results may not be output. In one embodiment, the
在一實施例中,檢查行的位置與數量是固定的。在另一實施例中,檢查行的位置與數量是可變動的,例如可由控制電路112動態配置。
In one embodiment, the location and number of check rows are fixed. In another embodiment, the position and number of inspection rows are variable, such as dynamically configured by the
另一方面,本發明可搭配針對搜尋時的輸入的錯誤更正機制來達到更佳的搜尋結果可靠性。舉例來說,在第一驅動電路中可配置針對搜尋時的輸入資料(所要搜尋的資料)的錯誤更正電路,來確保第一驅動電路施加到記憶區塊的搜尋電壓是對應於真正所要搜尋的資料。 On the other hand, the present invention can be combined with an error correction mechanism for input during search to achieve better search result reliability. For example, an error correction circuit for the input data (data to be searched) during search can be configured in the first driving circuit to ensure that the search voltage applied by the first driving circuit to the memory block corresponds to the actual search voltage. material.
本發明可以對不儲於搜尋操作的記憶區塊進行錯誤更正操作,以增加記憶區塊儲存的資料集合的正確性。藉此,可以使搜尋操作針對正確的資料集合進行,進而提升搜尋結果的可靠性。 The present invention can perform error correction operations on memory blocks that are not stored in search operations, so as to increase the accuracy of the data set stored in the memory blocks. This allows search operations to be targeted at the correct set of data, thereby improving the reliability of search results.
綜上所述,雖然本發明已以實施例揭露如上,然其並非用以限定本發明。本發明所屬技術領域中具有通常知識者,在不脫離本發明之精神和範圍內,當可作各種之更動與潤飾。因此,本發明之保護範圍當視後附之申請專利範圍所界定者為準。 In summary, although the present invention has been disclosed above through embodiments, they are not intended to limit the present invention. Those with ordinary knowledge in the technical field to which the present invention belongs can make various modifications and modifications without departing from the spirit and scope of the present invention. Therefore, the protection scope of the present invention shall be determined by the appended patent application scope.
S301~S307:步驟 S301~S307: steps
Claims (8)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW111107113A TWI812034B (en) | 2022-02-25 | 2022-02-25 | Memory device and operation method thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW111107113A TWI812034B (en) | 2022-02-25 | 2022-02-25 | Memory device and operation method thereof |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI812034B true TWI812034B (en) | 2023-08-11 |
TW202334977A TW202334977A (en) | 2023-09-01 |
Family
ID=88585505
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW111107113A TWI812034B (en) | 2022-02-25 | 2022-02-25 | Memory device and operation method thereof |
Country Status (1)
Country | Link |
---|---|
TW (1) | TWI812034B (en) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW200917265A (en) * | 2007-09-26 | 2009-04-16 | Toshiba Kk | Semiconductor memory device and its control method |
US20090282318A1 (en) * | 2008-05-07 | 2009-11-12 | Kabushiki Kaisha Toshiba | Semiconductor memory device |
TW201447577A (en) * | 2013-06-14 | 2014-12-16 | Phison Electronics Corp | Data writing method, memory controller and memory storage apparatus |
TW202038248A (en) * | 2019-04-02 | 2020-10-16 | 華邦電子股份有限公司 | Memory with error correction circuit |
-
2022
- 2022-02-25 TW TW111107113A patent/TWI812034B/en active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW200917265A (en) * | 2007-09-26 | 2009-04-16 | Toshiba Kk | Semiconductor memory device and its control method |
US20090282318A1 (en) * | 2008-05-07 | 2009-11-12 | Kabushiki Kaisha Toshiba | Semiconductor memory device |
TW201447577A (en) * | 2013-06-14 | 2014-12-16 | Phison Electronics Corp | Data writing method, memory controller and memory storage apparatus |
TW202038248A (en) * | 2019-04-02 | 2020-10-16 | 華邦電子股份有限公司 | Memory with error correction circuit |
Also Published As
Publication number | Publication date |
---|---|
TW202334977A (en) | 2023-09-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI777366B (en) | Memory system and memory controller | |
US20200110547A1 (en) | Storage device and operating method of storage device | |
JP4504138B2 (en) | Storage system and data copy method thereof | |
TWI408686B (en) | Programming a memory device to increase data reliability | |
TWI478167B (en) | Determining and using soft data in memory devices and systems | |
TWI394167B (en) | Error correction for memory | |
US8719662B2 (en) | Memory device with error detection | |
KR101532819B1 (en) | Methods, devices, and systems for dealing with threshold voltage change in memory devices | |
KR101049582B1 (en) | Detect overprogrammed memory cells after programming of adjacent memory cells | |
US20140101519A1 (en) | Non-volatile memory device having adjustable read voltage, memory system comprising same, and method of operating same | |
JP2007500411A (en) | Technology to detect over-programmed memory | |
KR20120120221A (en) | Programming non-volatile storage with fast bit detection and verify skip | |
KR20090014036A (en) | Memory system protected from errors due to read disturbance and method thereof | |
TWI537970B (en) | Semiconductor memory device and programming method of nand flash memory | |
CN110164496B (en) | Semiconductor memory device and method for reading the same | |
TWI805183B (en) | Memory systems for determining read voltages | |
TWI777672B (en) | Memory device and method to determining read voltages for memory systems | |
US20160012916A1 (en) | Semiconductor memory device and memory system | |
TWI704569B (en) | Integrated circuit and computing method thereof | |
TW202032567A (en) | Memory device and programming method thereof | |
KR20210143612A (en) | Nonvolatile memory device, and method of operating nonvolatile memory device | |
TWI812034B (en) | Memory device and operation method thereof | |
CN110175135B (en) | Memory device | |
CN116705133A (en) | Memory device and method of operating the same | |
US11848054B2 (en) | Memory device determining precharge time based on a number of times that a program voltage is applied to word line and operating method of memory device |