TWI812034B - Memory device and operation method thereof - Google Patents

Memory device and operation method thereof Download PDF

Info

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
Application number
TW111107113A
Other languages
Chinese (zh)
Other versions
TW202334977A (en
Inventor
林昱佑
李峯旻
Original Assignee
旺宏電子股份有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 旺宏電子股份有限公司 filed Critical 旺宏電子股份有限公司
Priority to TW111107113A priority Critical patent/TWI812034B/en
Application granted granted Critical
Publication of TWI812034B publication Critical patent/TWI812034B/en
Publication of TW202334977A publication Critical patent/TW202334977A/en

Links

Images

Landscapes

  • Techniques For Improving Reliability Of Storages (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)
  • Dram (AREA)
  • Electrotherapy Devices (AREA)

Abstract

An operation method of memory device, comprising: selecting a target block for performing an error correction operation; reading the target block row by row; transmitting the read data to an error correction circuit; and checking and correcting read data to generate a corrected data.

Description

記憶體裝置及其操作方法 Memory device and method of operating the same

本發明是有關於一種記憶區塊、記憶體裝置及其操作方法。 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 memory device 10 includes a first driving circuit 102, a second driving circuit 104, a sensing circuit 106, a plurality of memory blocks 108-1~108-2, an error correction circuit 110 and a control Circuit 112. It should be noted that the arrangement of the memory blocks 108-1~108-3 and the position of each circuit block in Figure 1 are arranged for the purpose of clearly showing the connection relationship, and are not intended to limit the present invention, and are not consistent with the actual Configuration may vary. In addition, the present invention does not limit the number of memory blocks.

各記憶區塊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 first driving circuit 102 through a plurality of first signal lines, coupled to the second driving circuit 104 through a plurality of second signal lines, and coupled to a plurality of third signal lines. The line is coupled to sensing circuit 106 . In one embodiment, the first signal line is a word line or a search line, the second signal line is a bit line, and the third signal line is a match line. , the first driving circuit 102 may be a word line driving circuit, and the second driving circuit 104 may be a bit line driving circuit.

請參照第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 first driving circuit 102 through the first signal line SLi, where i=1, 2, ..., m. The jth row memory unit passes the second letter The signal line BLj is coupled to the second driving circuit 104 and is coupled to the sensing circuit 106 through the third signal line MLj, where j=1, 2, ..., n.

記憶單元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 error correction circuit 110 is coupled to the memory blocks 108-1~108-3. Details of the error correction circuit 110 will be described in detail below.

控制電路112耦接至第一驅動電路102、第二驅動電路104、感測電路106及錯誤更正電路110。控制電路112用以藉由信號控制第一驅動電路102、第二驅動電路104、感測電路106及錯誤更正電路110的操作。 The control circuit 112 is coupled to the first driving circuit 102, the second driving circuit 104, the sensing circuit 106 and the error correction circuit 110. The control circuit 112 is used to control the operations of the first driving circuit 102, the second driving circuit 104, the sensing circuit 106 and the error correction circuit 110 through signals.

記憶體裝置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 memory device 10 can perform include basic operations of CAM and TCAM such as program operations, read operations, erase operations, and search operations. The programming operation and the erasing operation can be realized by the control circuit 112 controlling the first driving circuit 102 and the second driving circuit 104 to respectively apply appropriate bias voltages to the first signal lines SL1 to SLm and the second signal lines BL1 to BLn. The read operation and the search operation can be controlled by the control circuit 112 to control the first driving circuit 102 and the second driving circuit 104 to respectively apply appropriate bias voltages to the first signal lines SL1 ~ SLm and the second signal lines BL1 ~ BLn, and control the sensing circuit. 106 is implemented by detecting the current flowing out of the third signal lines ML1~MLn. During the search operation, the bias voltage applied by the first driving circuit 102 to the first signal lines SL1 ~ SLm represents the data to be searched, and the sensing circuit 106 detects the current flowing out of the third signal lines ML11 ~ MLn. Determine whether any row of memory cells stores data that matches the data being searched. It should be noted that the specific execution methods of the programming operation, reading operation, erasing operation and search operation will depend on the type of the memory device 10 (such as NOR type, NAND type), the type of memory unit (such as resistive storage element, Ferroelectric transistor, floating gate transistor vary according to body type) and other factors. It should be noted that while some memory blocks are performing search operations, other memory blocks may be idle or perform operations other than search operations. The so-called idle state means that the memory block is not undergoing programming operations, reading operations, erasing operations, search operations, and error correction operations as will be described below.

記憶體裝置10可進一步執行錯誤更正操作。 The memory device 10 may further perform error correction operations.

請參照第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 control circuit 112 determines a target block from the memory blocks 108-1~108-3. The control circuit 112 may select an idle state block from the memory blocks 108-1 to 108-3 as the target block. For example, assuming that the memory block 108-2 is performing a search operation and the memory blocks 108-1 and 108-3 are not performing any operations, the control circuit 112 may select the memory block 108-1 as the target block. In one embodiment, the data set stored in the memory block 108-1 is as shown in Figure 4.

請參照第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. Data set 400 is stored in memory cells of memory block 108-1. For example, the data in the four columns from the top are respectively stored in the four columns of memory cells corresponding to the first signal lines SL1 to SL4 in the memory block 108-1, and the data in the eleven rows from the left are stored in the memory block 108 respectively. In -1, there are eleven rows of memory cells corresponding to the second signal lines BL1~BL11. For example, the data 0011 in the first row from the left is stored in the memory units U1-1~U4-1 corresponding to the first signal line BL1. The memory unit U1-1 stores 0, and the memory unit U2-1 stores 0. , memory unit U3-1 stores 1, memory unit U4-1 stores What is saved is 1. For convenience of explanation, "memory unit corresponding to a specific signal line" will be described as "memory unit on a specific signal line". For example, the memory cells U1-1~U1-n corresponding to the first signal line SL1 will be described as the memory cells U1-1~U1-n on the first signal line SL1; the memory cells U1-1~U1-n corresponding to the second signal line BL1 (or the The memory cells U1-1~Um-1 on the three signal lines ML1) will be described as the memory cells U1-1~U1-n on the second signal line BL1 (or the third signal line ML1). In this embodiment, at least one row of memory cells in the memory block 108-1 is configured as a data row, and at least one row of memory cells is configured as a check row. The data stored in the data row is user data, and the data stored in the check row is check code. User information includes, for example, image feature values and IP addresses. In the data set 400, from the left, the first row is user data 0011, the second row is user data 1110, the third row is user data 1111, the fourth row is check code 1101, and the fifth row is user data 1001, the sixth line is user data 0010, the seventh line is user data 0110, the eighth line is check code 0010, the ninth line is user data 0101, the tenth line is check code 1100, and the eleventh line is Check code 1001, where the bits of the check code are represented by dots. That is to say, in the memory block 108-1, the memory cells on the first signal lines BL1~BL3, BL5~BL7, and BL9 are data rows that store user data, and the first signal lines BL4, BL8, and BL10 are data rows. . The memory unit on BL11 is the inspection line, which stores the inspection code. The data in each column contains check codes generated based on the user data in the same column. For example, in the data in the first row from above, the fourth, eighth, tenth, and eleventh digits are check codes. These check codes are based on the first, second, third, fifth, and fifth digits that also belong to the first row. Generated from six, seven, and nine bits of user data. The algorithm used to generate the check code can be Reed-Solomon code, parity check code, check sum, cyclic redundancy Any well-known and applicable algorithm such as cyclic redundancy code.

在步驟S303中,由控制電路112判斷是否觸發錯誤檢查及更正。若否,結束本流程;若是,執行S303。控制電路112可根據目標區塊的讀取次數、搜尋次數、資料的持續時間(前一次編程後經過的時間)等參數判斷是否觸發針對目標區塊的錯誤檢查及更正。例如,當讀取次數、搜尋次數或資料的維持時間大於對應的閥值時,控制電路112判斷要觸發針對目標區塊的錯誤檢查及更正。 In step S303, the control circuit 112 determines whether error checking and correction is triggered. If not, end this process; if yes, execute S303. The control circuit 112 can determine whether to trigger error checking and correction for the target block based on parameters such as the number of reads of the target block, the number of searches, and the duration of the data (the time elapsed since the previous programming). For example, when the number of reads, the number of searches, or the data retention time is greater than a corresponding threshold, the control circuit 112 determines to trigger error checking and correction for the target block.

在步驟S304中,控制電路112命令第一驅動電路102及第二驅動電路104對目標區塊(記憶區塊108-1)施加讀取偏壓以逐列讀取目標區塊中的各列的記憶單元儲存的資料,並將各列的記憶單元儲存的資料傳送至至錯誤更正電路110。 In step S304, the control circuit 112 instructs the first driving circuit 102 and the second driving circuit 104 to apply a read bias to the target block (memory block 108-1) to read each column in the target block column by column. The data stored in the memory unit is transmitted to the error correction circuit 110.

在步驟S305中,由錯誤更正電路110判斷從各列的記憶單元讀出的資料是否存在錯誤位元。若是,執行S306;若否,結束本流程。 In step S305, the error correction circuit 110 determines whether the data read from the memory cells of each column contains erroneous bits. If yes, execute S306; if no, end this process.

在S306中,由錯誤更正電路110判斷錯誤位元是否能夠被更正。若是,執行S307;若否,結束本流程。任何錯誤校正碼皆存在錯誤更正率。當錯誤位元的數量超過使用的錯誤校正碼所能更正的錯誤位元的數量上限時,即使知道有錯誤位元的存在也無法將其更正。 In S306, the error correction circuit 110 determines whether the error bit can be corrected. If yes, execute S307; if no, end this process. Any error correction code has an error correction rate. When the number of error bits exceeds the upper limit of the number of error bits that can be corrected by the error correction code used, the error bits cannot be corrected even if the existence of the error bits is known.

在S307中,由錯誤更正電路110對從各列的記憶單元讀出的資料中的錯誤位元進行更正並產生(輸出)更正資料。 In S307, the error correction circuit 110 corrects the error bits in the data read from the memory cells of each column and generates (outputs) corrected data.

請參照第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 data set 500 shown in Figures 5A-5D is formed due to the occurrence of erroneous bits in the data set 400 shown in Figure 4. In this embodiment, there is an error in the data stored in the memory unit U2-3, that is, the data bit 502 in the data set 500 is actually an error bit. The bit in the data set 400 is 1, and in the data set 500 is 0 (error).

在第5A圖中,第一驅動電路102施加讀取電壓Vread在第一信號線SL1,施加通過電壓Vpass在其他第一信號線SL2~SLm,以讀取第一信號線SL1上記憶單元U1-1~U1-11儲存的資料510,即01111000011。讀出的資料被輸入至錯誤更正電路110進行錯誤檢查及更正。錯誤更正電路110檢查後得到01111000011沒有錯誤位元的檢查結果530。 In Figure 5A, the first driving circuit 102 applies a read voltage Vread to the first signal line SL1 and applies a pass voltage Vpass to the other first signal lines SL2~SLm to read the memory unit U1- on the first signal line SL1. The data stored in 1~U1-11 is 510, which is 01111000011. The read data is input to the error correction circuit 110 for error checking and correction. After checking, the error correction circuit 110 obtains a check result 530 of 01111000011 with no error bits.

在第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 error correction circuit 110 for error checking and correction. After checking, the error correction circuit 110 obtains the check result that the third bit from the left in 01010010110 is an error bit. Then, the error correction circuit 106 corrects the error bit from 0 to 1 and outputs correction data 550, that is, 01110010110.

在第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 error correction circuit 110 for error checking and correction. After checking, the error correction circuit 110 obtains a check result 570 of 11100111000 with no error bits.

在第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 error correction circuit 110 for error checking and correction. After checking, the error correction circuit 110 obtains a check result 590 that 10111000101 has no error bits.

在一實施例中,錯誤更正電路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 error correction circuit 110 may output a signal representing "no error" to the control circuit 112 . When the control circuit receives the signal representing "no error", it will not modify the data stored in the memory cells of the column in which no error bits occur in the memory block 108-1. For example, in the examples of Figures 5A to 5D, the control unit 1112 will not modify the data stored in the memory units on the first signal lines SL1, SL3 to SL4. On the other hand, the error correction circuit 110 can output correction data corresponding to the data stored in the memory cell of the column in which the error is detected to the control circuit 112, and the control circuit 112 can program the first signal line on which the error bit occurs according to the correction data. memory unit to change incorrect data into correct data. Taking the example of Figures 5A to 5D as an example, after the operation of Figure 5B is performed, the error correction circuit 110 outputs the correction data 550, that is, 01110010110, to the control circuit 112. The control circuit 112 instructs the first driving circuit according to the correction data 550. 102 and the second driving circuit 104 pair the first signal line SL1~SLm and the second signal lines BL1~BLn respectively apply programming bias voltages to program the memory cells U2-1~U2-n, thereby changing the data stored in the memory unit U2-3 from 0 to 1.

在另一實施例中,錯誤更正電路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 error correction circuit 110 may output the data with no errors found after the check as corrected data (the same as the read data). For example, in the examples of Figures 5A, 5C, and 5D, the error correction circuit 110 finds no errors after checking the read data 510, 560, and 580. The error correction circuit 110 will regard the data without errors after checking as Correction data 530, 570, and 590 (same as the read data 510, 560, and 580) are output. The control circuit 112 can receive the correction data output by the error correction circuit 110 (including the correction data 530, 570, 590 of data with no errors detected and the correction data 550 obtained after correction), and instruct the first drive circuit 102 and the second drive Circuit 104 applies a programming bias to another memory block to program the correction data into another memory block. For example, since the memory block 10-2 is performing a search operation and the memory block 108-1 is performing an error correction operation, the control circuit 112 can program the correction data obtained by performing the error correction operation of the memory block 108-1 into the memory block. 108-3. As shown in Figure 6, after the data set 500 originally stored in the memory block 108-1 is checked and corrected by the error correction circuit 110, data composed of corrected data corresponding to each column of data in the data set 500 is obtained. Set 620, data set 620 is programmed into memory block 108-3. As a result, the data set originally stored in the memory block 108-1 will be considered to have been "moved" to the memory block 108-3, which means that the data set 620 stored in the memory block 108-3 will be is considered to be the correct version of data set 500, and memory block 108-3 is used to perform the search operation instead of memory block 108-1.

請參照第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. Data 700 is the data read from the memory unit on the first signal line SL2 in Figure 5B, in which bit b9 is an error bit. Logic 710 is a computational block equivalent to an error correction circuit. The bits b1, b3, b5, b7, b9, and b11 are taken out and sent to the checking unit 730 for an even parity check (even parity check), that is, it is calculated whether the number of 1's in these bits is an even number (if so, the check result is 1, if not, the check result is 0), and C1=1 is obtained. The bits b2, b3, b6, b7, b10, and b11 are taken out and sent to the checking unit 740 for even and identical bit checking, and C2=0 is obtained. Bits b4, b5, b6, and b7 are taken out and sent to the checking unit 750 for even and identical bit checking, and C3=0 is obtained. Bits b8, b9, b10, and b11 are taken out and sent to the checking unit 760 for even and identical bit checking, and C4=1 is obtained. Then, the outputs of the checking units 730 to 760 are sent to the calculation unit 770 to calculate N=8*C4+4*C3+2*C2+C1. If N is 0, it means there is no error; if N is not 0, it means the Nth bit starting from the least significant bit is an error bit. In this embodiment, the least significant bit is bit b1, and N is 9, which means that the ninth bit b9 starting from bit b1 is an error bit. Therefore, the calculation unit 770 can change the ninth bit from 0 to 1 according to the operation result N to obtain the correction data 720 and output it.

請參照第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 error correction circuit 110 .

在步驟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 control circuit 112 may decide which memory cell on which first signal line to program based on the check result of the error correction circuit 110 . This method is suitable for memory types that allow individual programming and erasing operations on a single word line.

在步驟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 control circuit 112 may perform verification after programming the memory cell on the first signal line corresponding to the error bit detected in the error correction check according to the output of the error correction circuit 110 to confirm whether the data in the memory cell in the column after programming is Same as the correction data (correct data) to be programmed. The reason why the incorrect bits stored in the memory cell cannot be changed through reprogramming may be that the memory cell is damaged.

在步驟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 control circuit 112 can select the memory cell on another bit line/match line to Store the correct version of the row of user data corresponding to the memory cell that cannot be reprogrammed (ie, the row of user data after the incorrect bits have been corrected). Taking the examples of Figures 2 and 5B as an example, if the memory unit U2-3 cannot be reprogrammed to store correct data, the control circuit 112 can store the memory units U1-3~U4-3 on the second signal line BL3. The correct version of the user data (i.e. 1111, not 1011) is programmed into the memory units U1-12~U4-12 on the second signal line BL12.

在步驟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 control circuit 112 may instruct the second driving circuit not to apply a search bias to the second signal line corresponding to the check row when performing a search operation on the memory block. In another embodiment, the control circuit 112 may instruct the sensing circuit not to detect current flowing from the third signal line corresponding to the check row when performing a search operation on the memory block. A specific implementation method is, for example, a current sensing unit (eg, a sense amplifier) in a disabling sensing circuit for detecting the third signal line corresponding to the inspection row.

在一實施例中,檢查行的位置與數量是固定的。在另一實施例中,檢查行的位置與數量是可變動的,例如可由控制電路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 control circuit 112 .

另一方面,本發明可搭配針對搜尋時的輸入的錯誤更正機制來達到更佳的搜尋結果可靠性。舉例來說,在第一驅動電路中可配置針對搜尋時的輸入資料(所要搜尋的資料)的錯誤更正電路,來確保第一驅動電路施加到記憶區塊的搜尋電壓是對應於真正所要搜尋的資料。 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)

一種記憶體裝置,包括:複數個記憶區塊,各該記憶區塊包括複數個記憶單元;複數個驅動電路,耦接至該些記憶區塊;一錯誤更正電路,耦接至該些記憶區塊;以及一控制電路,耦接至該些驅動電路及該錯誤更正電路,用以選擇該些記憶區塊之一作為一目標區塊,並對該目標區塊執行一錯誤更正操作,該目標區塊的該些記憶單元具有複數行與複數列,該些行包括至少一資料行與至少一檢查行,該至少一資料行的該些記憶單元所儲存的資料係為使用者資料,該至少一檢查行的該些記憶單元所儲存的資料係為檢查碼,每一列的該些記憶單元所儲存的該至少一檢查碼係根據同一列的該些記憶單元所儲存的該些使用者資料所產生;其中該錯誤更正操作包括逐列讀取該目標區塊的該些列的該些記憶單元,將該目標區塊的該些列的該些記憶單元儲存的資料傳送至該錯誤更正電路,該錯誤更正電路根據各列的該些記憶單元所儲存的該至少一檢查碼,檢查各列的該些記憶單元所儲存的該些使用者資料是否存在錯誤位元並進行更正,以產生對應於各列的該些記憶單元儲存的資料的一更正資料,其中於該目標區塊中,儲存的該些使用者資料被檢查出有錯誤位元的該列的該些記憶單元,係根據對應於該列的該些記憶單元所儲存的資料的該更正資料而被編程。 A memory device, including: a plurality of memory blocks, each memory block including a plurality of memory units; a plurality of drive circuits coupled to the memory blocks; an error correction circuit coupled to the memory areas block; and a control circuit coupled to the drive circuits 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 units of the block 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 units of the at least one data row is user data. The at least one data row is user data. The data stored in the memory units of a check row is a check code, and the at least one check code stored in the memory units in each column is based on the user data stored in the memory units in the same column. Produced; wherein the error correction operation includes reading the memory cells of the columns of the target block column by column, and transmitting the data stored in the memory cells of the columns of the target block to the error correction circuit, The error correction circuit checks whether there are error bits in the user data stored in the memory units in each column based on the at least one check code stored in the memory units in each column and performs corrections to generate corresponding A correction data of the data stored in the memory units of each column, wherein in the target block, the memory units of the column in which the user data stored in the target block are checked to have erroneous bits are based on the corresponding The correction data of the data stored in the memory cells of the column is programmed. 如請求項1所述之記憶體裝置,其中對應於該目標區塊的各列的該些記憶單元儲存的資料的該更正資料,係被編程至該些記憶區塊中之另一個記憶區塊。 The memory device of claim 1, wherein the correction data corresponding to the data stored in the memory cells of each column of the target block is programmed into another of the memory blocks. . 如請求項1所述之記憶體裝置,其中針對存在有錯誤位元且無法藉由編程變更其儲存的資料的該行的該些記憶單元,該行的該些記憶單元所儲存的資料的一正確版本係被編程至該目標區塊中的另一行的該些記憶單元。 The memory device of claim 1, wherein for the memory cells of the row that have error bits and whose stored data cannot be changed through programming, a portion of the data stored in the memory cells of the row is The correct version is programmed into the memory cells of another row in the target block. 如請求項1所述之記憶體裝置,其中該些驅動電路包括一位元線驅動電路,於對該目標區塊執行一搜尋操作時,該位元線驅動電路不施加一搜尋偏壓於對應於該至少一檢查行的至少一位元線;或者於對該目標區塊執行一搜尋操作時,該感測電路不偵測對應於該至少一檢查行的至少一匹配線流出的電流。 The memory device of claim 1, wherein the driving circuits include a bit line driving circuit, and when performing a search operation on the target block, the bit line driving circuit does not apply a search bias to the corresponding In at least one bit line of the at least one check row; or when performing a search operation on the target block, the sensing circuit does not detect the current flowing out of the at least one match line corresponding to the at least one check row. 一種記憶體裝置的操作方法,包括:選擇複數個記憶區塊的其中之一做為一目標區塊以執行一錯誤更正操作,該目標區塊包括複數個記憶單元,該些記憶單元具有複數行與複數列,該些行包括至少一資料行與至少一檢查行,該至少一資料行的該些記憶單元所儲存的資料係為使用者資料, 該至少一檢查行的該些記憶單元所儲存的資料係為檢查碼,每一列的該些記憶單元所儲存的該至少一檢查碼係根據同一列的該些記憶單元所儲存的該些使用者資料所產生;逐列讀取該目標區塊的該些列的該些記憶單元;將該目標區塊的該些列的該些記憶單元儲存的資料傳送至一錯誤更正電路;該錯誤更正電路根據各列的該些記憶單元所儲存的該至少一檢查碼,檢查各列的該些記憶單元所儲存的該些使用者資料是否存在錯誤位元並進行更正,以產生對應於各列的該些記憶單元儲存的資料的一更正資料;以及對於該目標區塊中,儲存的該些使用者資料存在有錯誤位元的該列的該些記憶單元,根據對應於該列的該些記憶單元所儲存的資料的該更正資料進行編程。 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 includes a plurality of memory units, and 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, and the data stored in the memory units of the at least one data row is user data, The data stored in the memory units of the at least one check row is a check code, and the at least one check code stored in the memory units of each column is based on the users stored in the memory units of the same column. Data is generated; reading the memory cells of the columns of the target block column by column; transmitting the data stored in the memory cells of the columns of the target block to an error correction circuit; the error correction circuit According to the at least one check code stored in the memory units of each column, check whether there are error bits in the user data stored in the memory units of each column and perform corrections to generate the user data corresponding to each column. A correction data of the data stored in some memory units; and for the memory units of the column in which the user data stored in the target block has erroneous bits, according to the memory units corresponding to the column The correction data of the stored data is programmed. 如請求項5所述之操作方法,更包括:將對應於該目標區塊的各列的該些記憶單元儲存的資料的該更正資料編程至該些記憶區塊中之另一個記憶區塊。 The operating method of claim 5 further includes: programming the correction data corresponding to the data stored in the memory units of each column of the target block to another memory block among the memory blocks. 如請求項5所述之操作方法,其中針對存在有錯誤位元且無法藉由編程變更其儲存的資料的該行的該些記憶單元,該行的該些記憶單元所儲存的資料的一正確版本係被編程至該目標區塊中的另一行的該些記憶單元。 The operating method as described in claim 5, wherein for the memory cells of the row that have erroneous bits and whose stored data cannot be changed through programming, a correct value of the data stored in the memory cells of the row is The version is programmed into the memory cells of another row in the target block. 如請求項5所述之操作方法,更包括:於對該目標區塊執行一搜尋操作時,不施加一搜尋偏壓於對應於該至少一檢查行的至少一位元線;或者於對該目標區塊執行一搜尋操作時,不偵測對應於該至少一檢查行的至少一匹配線流出的電流。 The operating method of claim 5 further includes: when performing a search operation on the target block, not applying a search bias to at least one bit line corresponding to the at least one check row; or when performing a search operation on the target block; When the target block performs a search operation, the current flowing out of the at least one matching line corresponding to the at least one check row is not detected.
TW111107113A 2022-02-25 2022-02-25 Memory device and operation method thereof TWI812034B (en)

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)

* Cited by examiner, † Cited by third party
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

Patent Citations (4)

* Cited by examiner, † Cited by third party
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