TWI671750B - 記憶體的控制方法及非暫態電腦可讀媒體 - Google Patents
記憶體的控制方法及非暫態電腦可讀媒體 Download PDFInfo
- Publication number
- TWI671750B TWI671750B TW107142449A TW107142449A TWI671750B TW I671750 B TWI671750 B TW I671750B TW 107142449 A TW107142449 A TW 107142449A TW 107142449 A TW107142449 A TW 107142449A TW I671750 B TWI671750 B TW I671750B
- Authority
- TW
- Taiwan
- Prior art keywords
- data
- value
- equal
- memory
- inverted
- Prior art date
Links
- 230000015654 memory Effects 0.000 title claims abstract description 121
- 238000000034 method Methods 0.000 title claims abstract description 16
- 238000004364 calculation method Methods 0.000 claims abstract description 27
- 238000012937 correction Methods 0.000 claims abstract description 11
- 238000012790 confirmation Methods 0.000 claims description 36
- 238000012545 processing Methods 0.000 claims description 10
- 238000012360 testing method Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
- G11C11/4063—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
- G11C11/407—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
- G11C11/409—Read-write [R-W] circuits
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- 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
-
- 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/1012—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 codes or arrangements adapted for a specific type of error
-
- 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/1012—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 codes or arrangements adapted for a specific type of error
- G06F11/1016—Error in accessing a memory location, i.e. addressing error
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30018—Bit or string instructions
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
- G11C11/4063—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
- G11C11/407—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
- G11C11/4076—Timing circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
- G11C11/4063—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
- G11C11/407—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
- G11C11/4078—Safety or protection circuits, e.g. for preventing inadvertent or unauthorised reading or writing; Status cells; Test cells
-
- 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/006—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation at wafer scale level, i.e. wafer scale integration [WSI]
-
- 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Quality & Reliability (AREA)
- Computer Security & Cryptography (AREA)
- Human Computer Interaction (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Detection And Correction Of Errors (AREA)
Abstract
一種記憶體的控制方法,包括接收一外部資料;對該外部資料進行一錯誤校正操作,用以產生一同位資料;計算該外部資料及同位資料的數值為一特定邏輯值的數量,用以產生一計算結果;根據計算結果及一傾向資料產生一反轉資料;當計算結果及傾向資料符合一預設條件時,反轉外部資料及同位資料,用以產生一寫入資料,再將寫入資料連同反轉資料寫入一記憶陣列;以及當計算結果及傾向資料不符合預設條件時,將外部資料、同位資料及反轉資料寫入該記憶陣列。
Description
本發明係有關於一種控制方法,特別是有關於一種記憶體的控制方法。
為了提高資料的準確性,一般而言,在寫入資料至記憶體前,可先對資料進行一錯誤校正(error correction code)操作,用以產生多個同位位元(parity bit),再將資料連同同位位元的數值一起寫入記憶體。然而,同位位元佔據記憶體很大的空間。
以64位元的資料為例,若想校正1位元的錯誤,則需產生7個同位位元。若想校正2位元的錯誤,則同位位元的數量可能為14位元。若想校正3位元的錯誤,則同位位元高達21位元。在此例中,同位位元可能佔據記憶體33%的空間。
為解決上述問題,本發明提供一種記憶體的控制方法,包括接收一外部資料;對該外部資料進行一錯誤校正操作,用以產生一第一同位資料;計算該外部資料及第一同位資料的數值為一特定邏輯值的數量,用以產生一計算結果;根據該計算結果及一傾向資料產生一第一反轉資料;當該計算結果及該傾向資料符合一預設條件時,反轉該外部資料及該第一同
位資料,用以產生一寫入資料,再將該寫入資料連同該第一反轉資料寫入一記憶陣列;以及當該計算結果及該傾向資料不符合該預設條件時,將該外部資料、該第一同位資料及該第一反轉資料寫入該記憶陣列。
本發明之方法可經由一記憶系統來實作,其為可執行特定功能之硬體或韌體,亦可以透過程式碼方式收錄於一紀錄媒體中,並結合特定硬體來實作。當程式碼被電子裝置、處理器、電腦或機器載入且執行時,電子裝置、處理器、電腦或機器變成用以實行本發明之裝置或系統。
110‧‧‧錯誤校正操作
120‧‧‧反轉確認操作
130‧‧‧寫入操作
140‧‧‧傾向確認操作
150‧‧‧讀取操作
160‧‧‧反轉確認操作
170‧‧‧錯誤校正操作
REV_B1、REV_B2‧‧‧反轉資料
CR‧‧‧計算結果
DW‧‧‧寫入資料
AR‧‧‧記憶陣列
DR‧‧‧讀取資料
S211~S216、S221~S225、S311~S317、S410~S414‧‧‧步驟
DT‧‧‧外部資料
PT‧‧‧同位資料
TEND_B‧‧‧傾向資料
DT”、DT'''‧‧‧資料
PT”、PT'''‧‧‧同位資料
DP1、DP2‧‧‧處理資料
DE‧‧‧編碼資料
第1圖為本發明之記憶體的控制方法的示意圖。
第2A圖為本發明之傾向確認操作的一可能流程示意圖。
第2B圖為本發明之傾向確認操作的另一流程示意圖。
第3圖為本發明之反轉確認操作的一可能流程示意圖。
第4圖為本發明之寫入操作的一可能流程示意圖。
為讓本發明之目的、特徵和優點能更明顯易懂,下文特舉出實施例,並配合所附圖式,做詳細之說明。本發明說明書提供不同的實施例來說明本發明不同實施方式的技術特徵。
請參閱第1圖,首先,對一外部資料DT進行一錯誤校正(ECC)操作110,用以編碼外部資料DT,並產生一同位資料PT。假設,外部資料DT具有m個位元,並且同位資料PT具有
n個位元,其中m及n為正整數。在本實施例中,外部資料DT連同同位資料PT稱為一編碼資料DE。
反轉確認操作120接收編碼資料DE,用以判斷編碼資料DE的傾向,也就是判斷外部資料DT和同位資料PT的數值中,邏輯1或邏輯0佔較多的數量。反轉確認操作120更接收一傾向資料TEND_B。傾向資料TEND_B用以表示記憶陣列AR的傾向,也就是說,記憶陣列AR被讀取時,傾向被讀出邏輯1或邏輯0。反轉確認操作120根據編碼資料DE及記憶陣列AR的傾向,產生一反轉資料REV_B1。
舉例而言,當編碼資料DE的傾向不同於記憶陣列AR的傾向時,反轉確認操作120設定反轉資料REV_B1為一第一邏輯值。當編碼資料DE的傾向相同於記憶陣列AR的傾向時,反轉確認操作120設定反轉資料REV_B1為一第二邏輯值。第一邏輯值相反於第二邏輯值。舉例而言,當第一邏輯值為邏輯值1時,第二邏輯值為邏輯值0。
在一可能實施例中,反轉確認操作120計算外部資料DT和同位資料PT的數值為邏輯值1的數量,用以產生一計算結果CR。在一可能實施例中,當外部資料DT和同位資料PT的數值為邏輯值1的數量大於(m+n)/2時,計算結果CR為一第一數值(如1)。當外部資料DT和同位資料PT的數值為邏輯值1的數量未大於(m+n)/2時,計算結果CR為一第二數值(如0)。
在本實施例中,反轉確認操作120係根據傾向資料TEND_B,得知記憶陣列AR傾向被讀出邏輯值1或邏輯值0。記憶陣列AR的傾向與許多因素有關。例如,當記憶體(如DRAM)
發生電荷流失(charge loss)、或是記憶體內部的讀取信號容易被干擾而被拉升至高位準、或記憶體發生擾動現象(disturbance phenomena)、或是記憶體的溫度偏高或偏低,都很容易讓記憶體傾向被讀出邏輯值1。另外,當記憶體的電荷增加(charge gain)、或是記憶體內部的讀取信號容易被干擾而被拉降至低位準、或是受到可靠度(reliability)影響,某些記憶體傾向被讀出邏輯值0。
在本實施例中,傾向資料TEND_B係由一傾向確認操作140所產生。傾向確認操作140係指一記憶體晶片的測試操作。在測試操作下,可能在不同的操作環境(如高溫、低溫),多次存取記憶體晶片,用以決定記憶體晶片的性能參數,或是長時間存取記憶體晶片,用以得知記憶體晶片的可靠度。在測試操作下,除了可得知記憶體晶片的性能參數、可靠度,更可根據記憶體晶片的讀取結果,定義傾向資料TEND_B。舉例而言,如果記憶體傾向被讀出邏輯值1,則設定傾向資料TEND_B為一第一數值(如邏輯1)。如果記憶體傾向被讀出邏輯值0,則設定傾向資料TEND_B為一第二數值(如邏輯0)。在另一可能實施例中,測試階段係指測試晶圓(wafer)的階段。此時的測試係為記憶體晶片所遭遇到的第一次測試,早於記憶體晶片的測試操作。
在其它實施例中,傾向確認操作140係執行一內部演算法(internal algorithm),用以產生傾向資料TEND_B。本發明並不限定內部演算法的執行時間點。在一可能實施例中,內部演算法只執行一次。在此例中,傾向資料TEND_B係儲存於
一非揮發性記憶體中。當具有該非揮發性記憶體的記憶晶片重新上電時,不需再次執行傾向確認操作140。在其它實施例中,若傾向資料TEND_B儲存於一揮發性記憶體中,則當具有該揮發性記憶體的記憶晶片重新上電時,需先進行傾向確認操作140後,才能正常執行存取動作。
在本實施例中,反轉確認操作120判斷計算結果CR及傾向資料TEND_B是否符合一預設條件。當計算結果CR及傾向資料TEND_B符合預設條件時,表示記憶陣列AR的傾向不同於編碼資料DE的傾向。因此,反轉確認操作120設定反轉資料REV_B1為第一邏輯值(如邏輯值1)。當計算結果CR及傾向資料TEND_B不符合預設條件時,表示記憶陣列AR的傾向相同於編碼資料DE的傾向。因此,反轉確認操作120設定反轉資料REV_B1為一第二邏輯值(如邏輯值0)。
寫入操作130根據反轉資料REV_B1產生一寫入資料DW,並將寫入資料DW儲存於記憶陣列AR。舉例而言,當反轉資料REV_B1為第一邏輯值時,表示記憶陣列AR的傾向不同於編碼資料DE的傾向,故寫入操作130反轉外部資料DT及同位資料PT,並將反轉後的結果連同反轉資料REV_B1作為寫入資料DW。然而,當反轉資料REV_B1為第二邏輯值,表示記憶陣列AR的傾向相同於編碼資料DE的傾向,故寫入操作130直接將外部資料DT及同位資料PT,連同反轉資料REV_B1作為寫入資料DW。
讀取操作150讀取記憶陣列AR所儲存的資料,用以產生一讀取資料DR。在本實施例中,讀取資料DR包括一資料
DT”、一同位資料PT”以及一反轉資料REV_B2。在一可能實施例中,資料DT”具有m個位元,並且同位資料PT”具有n個位元。
反轉確認操作160接收讀取資料DR,並根據反轉資料REV_B2,產生一處理資料DP1。在一可能實施例中,當反轉資料REV_B2等於一預設值(如第一邏輯值)時,反轉確認操作160反轉資料DT”及同位資料PT”,並將反轉後的結果作為處理資料DP1。在此例中,符號DT'''表示反轉後的資料DT”,符號PT'''表示反轉後的同位資料PT’。而當反轉資料REV_B2不等於預設值時,反轉確認操作160直接將資料DT”及同位資料PT”作為處理資料DP1。此時,符號DT'''表示資料DT”,並且符號PT'''表示同位資料PT”。
錯誤校正操作170根據同位資料PT'''解碼資料DT''',用以產生一處理資料DP2。在一可能實施例中,假設寫入操作130將寫入資料DW寫入記憶陣列AR的一特定位址。當讀取操作150讀取該特定位址時,則處理資料DP2等於外部資料DT。
在一可能實施例中,操作110~170係以多個邏輯指令的型態存在。該等邏輯指令係儲存在一非暫態電腦可讀媒體中,並由一記憶體控制器所執行。記憶體控制器根據該等邏輯指令,存取一記憶陣列(如AR)。在其它實施例中,錯誤校正操作110、反轉確認操作120以及寫入操作130係在一寫入模式下進行,而讀取操作150、反轉確認操作160及錯誤校正操作170係在一讀取模式下進行。此外,傾向確認操作140可能係在一
測試模式下進行。
請參閱第2A圖。在一可能實施例中,傾向確認操作140係由一記憶體控制器執行。首先,將一特定資料寫入記憶陣列AR(步驟S211)。接著,讀取記憶陣列AR所儲存的特定資料,用以產生一讀取資料(步驟S212)。
接著,比較特定資料及讀取資料,用以判斷記憶陣列AR是否傾向被讀出邏輯值0(步驟S213)。在一可能實施例中,步驟S213對特定資料及讀取資料進行一按位運算(bitwise operation),用以產生一第一計數值及一第二計數值。第一計數值代表讀取資料為邏輯值1並且特定資料為邏輯值0的錯誤位元的數量,也就是說,記憶陣列AR發生錯誤1的次數(erroneous 1’s)。第二計數值代表讀取資料為邏輯值0並且特定資料為邏輯值1的錯誤位元的數量,也就是說,記憶陣列AR發生錯誤0的次數(erroneous 0’s)。
當記憶陣列AR發生錯誤1的次數大於一預設值時,表示記憶陣列AR傾向被讀出邏輯值1,故設定傾向資料TEND_B為一第三數值(步驟S215),並儲存傾向資料TEND_B(步驟S216)。當記憶陣列AR發生錯誤1的次數小於該預設值時,表示記憶陣列AR傾向被讀出邏輯值0,故設定傾向資料TEND_B為第四數值(步驟S214),並儲存傾向資料TEND_B(步驟S216)。在一可能實施例中,該預設值係為該特定資料的一半位元數量。
在其它實施例中,請參閱第2B圖,首先,重置傾向資料TEND_B(步驟S221)。傾向資料TEND_B可被重置為邏輯
值0或邏輯值1。在本實施例中,傾向資料TEND_B先被重置為邏輯值0。
進行一傾向學習(tendency learning),用以得知記憶陣列AR發生錯誤1的次數(步驟S222)。在一可能實施例中,步驟S222係包括第2A圖的步驟S211及S212。由於步驟S211及S212已敍述如上,故不再贅述。
判斷記憶陣列AR是否傾向被讀出邏輯值0(步驟S223)。由於步驟S223相似於步驟S213,故不再贅述。當記憶陣列AR傾向被讀出邏輯值0,故結束傾向確認操作140(步驟S225)。然而,當記憶陣列AR並非傾向被讀出邏輯值0時,改變傾向資料TEND_B(步驟S224)。舉例而言,如果在步驟S221中,傾向資料TEND_B被重置為邏輯值0時,則在步驟S224中,傾向資料TEND_B被設定成邏輯值1。另一方面,如果在步驟S221中,傾向資料TEND_B被重置為邏輯值1時,當記憶陣列AR傾向被讀出邏輯值0時,則傾向資料TEND_B被設定成邏輯值0,然而,當記憶陣列AR未傾向被讀出邏輯值0,則將傾向資料TEND_B維持在邏輯1,並結束傾向確認操作140。
請參閱第3圖。在一可能實施例中,反轉確認操作120係由一記憶體控制器所執行。首先,接收外部資料DT及同位資料PT(步驟S311)。在一可能實施例中,外部資料DT具有m個位元,同位資料PT具有n個位元。
判斷是否進行一反轉操作(步驟S312)。在本實施例中,步驟S312包括步驟S313~S315。步驟S313係判斷外部資料DT和同位資料PT的數值為邏輯值1的數量是否大於一第一預
設值。在一可能實施例中,第一預設值係為(m+n)/2。當外部資料DT和同位資料PT的數值為邏輯值1的數量大於第一預設值時,判斷傾向資料TEND_B是否等於一第二預設值(步驟S314)。在本實施例中,第二預設值係為邏輯值1。當傾向資料TEND_B不等於第二預設值時,表示記憶陣列AR傾向被讀出邏輯值0。因此,設定反轉資料REV_B1為一第一邏輯值(步驟S316)。
然而,當傾向資料TEND_B等於第二預設值時,表示記憶陣列AR傾向被讀出邏輯值1。因此,設定反轉資料REV_B1為第二邏輯值(步驟S317)。
當外部資料DT和同位資料PT的數值為邏輯值1的數量不大於第一預設值時,判斷傾向資料TEND_B是否等於一第三預設值(步驟S315)。在本實施例中,第三預設值係為邏輯值0。當傾向資料TEND_B不等於第三預設值時,表示記憶陣列AR傾向被讀出邏輯值1。因此,設定反轉資料REV_B1為第一邏輯值(步驟S316)。然而,當傾向資料TEND_B等於第三預設值時,表示記憶陣列傾向被讀出邏輯值0。因此,設定反轉資料REV_B1為第二邏輯值(步驟S317)。
在其它實施例中,步驟S315相同於步驟S314,都是判斷傾向資料TEND_B是否等於第二預設值。在此例中,當步驟S315判斷出傾向資料TEND_B等於第二預設值時,執行步驟S316。當步驟S315判斷出傾向資料TEND_B不等於第二預設值時,執行步驟S317。
請參閱第4圖。首先,接收外部資料DT、同位資料
PT以及反轉資料REV_B1(步驟S410)。接著,判斷反轉資料REV_B1是否為第一邏輯值(步驟S411)。當反轉資料REV_B1為邏輯值1時,反轉外部資料DT及同位資料PT,用以產生一反轉結果,再將反轉結果及反轉資料REV_B1作為一第一寫入資料(步驟S412)。當反轉資料REV_B1不為第一邏輯值時,直接將外部資料DT及同位資料PT連同反轉資料REV_B1作為一第二寫入資料(步驟S414)。在一可能實施例中,反轉資料REV_B1具有一位元,但並非用以限制本發明。在其它實施例中,反轉資料REV_B1具有更多位元。
接著,程式化記憶陣列AR,將第一或第二寫入資料寫入記憶陣列AR(步驟S413)。在一可能實施例中,寫入操作130將反轉資料REV_B1寫入一第一記憶單元以及一第二記憶單元。反轉資料REV_B1可能是1位元(bit)的數位值,如邏輯0或邏輯1。在此例中,讀取操作150讀取第一及第二記憶單元,分別得到第一讀出資料以及第二讀出資料,再根據第一及第二讀出資料,產生一反轉資料REV_B2。
舉例而言,當第一及第二讀出資料均等於一預設值(如邏輯值1)時,表示儲存在第一及第二記憶單元的反轉資料REV_B1為第一邏輯值,故讀取操作150設定反轉資料REV_B2為第一邏輯值(如1)。當第一及第二讀出資料都不等於預設值時,表示儲存在第一及第二記憶單元的反轉資料REV_B1為第二邏輯值,故讀取操作150設定反轉資料REV_B2為第二邏輯值(如0)。
另外,當第一讀出資料不同於第二讀出資料時,
讀取操作150根據傾向資料TEND_B,設定反轉資料REV_B2。舉例而言,假設,第一讀出資料為邏輯0,第二讀出資料為邏輯1。此時,如果傾向資料TEND_B為一第一數值(如邏輯值1)時,表示原本儲存在第一及第二記憶單元的資料為邏輯0的機率較高。因此,即使第二讀出資料為邏輯1,讀取操作150仍設定反轉資料REV_B2為第二邏輯值(如邏輯值0)。然而,如果傾向資料TEND_B為一第二數值(如邏輯值0)時,表示原本儲存在第一及第二記憶單元的資料為邏輯1的機率較高。因此,即使第一讀出資料為邏輯0,讀取操作150仍設定反轉資料REV_B2為第一邏輯值(如邏輯值1)。
由於本發明根據外部資料DT及記憶陣列AR的傾向,程式化記憶陣列AR,故在讀取記憶陣列AR時,不易發生讀取錯誤,因此,可減少同位資料PT的位元數量,進而減少記憶陣列AR的面積。
雖然本發明已以較佳實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明之精神和範圍內,當可作些許之更動與潤飾。舉例來,本發明實施例所系統、裝置或是方法可以硬體、軟體或硬體以及軟體的組合的實體實施例加以實現。因此本發明之保護範圍當視後附之申請專利範圍所界定者為準。
Claims (14)
- 一種記憶體的控制方法,包括:接收一外部資料;對該外部資料進行一錯誤校正操作,用以產生一第一同位資料;計算該外部資料及該第一同位資料的數值為一特定邏輯值的數量,用以產生一計算結果;根據該計算結果及一傾向資料產生一第一反轉資料;當該計算結果及該傾向資料符合一預設條件時,反轉該外部資料及該第一同位資料並連同該第一反轉資料寫入一記憶陣列;以及當該計算結果及該傾向資料不符合該預設條件時,將該外部資料、該第一同位資料及該第一反轉資料寫入該記憶陣列。
- 如申請專利範圍第1項所述之記憶體的控制方法,其中當該計算結果不同於該傾向資料時,表示符合該預設條件,當該計算結果相同於該傾向資料時,表示不符合該預設條件。
- 如申請專利範圍第1項所述之記憶體的控制方法,更包括:執行一傾向確認操作,用以定義該傾向資料,其中,該傾向確認操作包括:將一特定資料寫入該記憶陣列;讀取該記憶陣列所儲存的該特定資料,用以產生一讀取資料;對該特定資料及該讀取資料進行一按位運算(bitwise operation),用以產生一第一計數值及一第二計數值,其中該第一計數值代表該讀取資料為1並且該特定資料0的錯誤位元的數量,該第二計數值代表該讀取資料為0並且該特定資料1的錯誤位元的數量;以及根據該第一及第二計數值定義該傾向資料。
- 如申請專利範圍第3項所述之記憶體的控制方法,更包括:儲存該傾向資料於一揮發性記憶體中,其中當該揮發性記憶體重新上電時,重新執行該傾向確認操作。
- 如申請專利範圍第3項所述之記憶體的控制方法,更包括:儲存該傾向資料於一揮發性記憶體中或一非揮發性記憶體中。
- 如申請專利範圍第1項所述之記憶體的控制方法,更包括:讀取該記憶陣列,用以產生一讀取資料,該讀取資料具有一第一資料,一第二同位資料以及一第二反轉資料;判斷該第二反轉資料是否等於一預設值;當該第二反轉資料等於該預設值時:反轉該第一資料及該第二同位資料,用以產生一反轉第一資料以及一反轉第二同位資料;根據該反轉第二同位資料,解碼該反轉第一資料,用以產生一第一處理資料;以及輸出該第一處理資料予一外部裝置;以及當該第二反轉資料不等於該預設值時:根據該第二同位資料,解碼該第一資料,用以產生一第二處理資料;以及輸出該第二處理資料予該外部裝置。
- 如申請專利範圍第6項所述之記憶體的控制方法,其中判斷該第二反轉資料是否等於該預設值的步驟包括:讀取該記憶陣列的一第一記憶單元所儲存的一第一邏輯值;讀取該記憶陣列的一第二記憶單元所儲存的一第二邏輯值;當該第一及第二邏輯值都等於該預設值時,表示該第二反轉資料等於該預設值;當該第一及第二邏輯值都不等於該預設值時,表示該第二反轉資料不等於該預設值;當該第一邏輯值不等於該第二邏輯值時,則判斷該傾向資料是否等於該預設值;當該傾向資料等於該預設值,表示該第二反轉資料不等於該預設值;以及當該傾向資料不等於該預設值,表示該第二反轉資料等於該預設值。
- 一種非暫態電腦可讀媒體,其儲存複數邏輯指令,該等邏輯指令由耦合至一記憶陣列之一記憶體控制器執行時,可組配該記憶體控制器來執行下列步驟:接收一外部資料;對該外部資料進行一錯誤校正操作,用以產生一第一同位資料;計算該外部資料及該第一同位資料的數值為一特定邏輯值的數量,用以產生一計算結果;根據該計算結果及一傾向資料產生一第一反轉資料;當該計算結果及該傾向資料符合一預設條件時,反轉該外部資料及該第一同位資料,用以產生一寫入資料,再將該寫入資料連同該第一反轉資料寫入該記憶陣列;以及當該計算結果及該傾向資料不符合該預設條件時,將該外部資料、該第一同位資料及該第一反轉資料寫入該記憶陣列。
- 如申請專利範圍第8項所述之非暫態電腦可讀媒體,其中當該計算結果相同於該傾向資料時,表示符合該預設條件,當該計算結果不同於該傾向資料時,表示不符合該預設條件。
- 如申請專利範圍第8項所述之非暫態電腦可讀媒體,其中該等邏輯指令進一步組配該記憶體控制器來執行一傾向確認操作,用以定義該傾向資料,該傾向確認操作包括:將一特定資料寫入該記憶陣列;讀取該記憶陣列所儲存的該特定資料,用以產生一讀取資料;對該特定資料及該讀取資料進行一按位運算(bitwise operation),用以產生一第一計數值及一第二計數值,其中該第一計數值代表該讀取資料為1並且該特定資料0的錯誤位元的數量,該第二計數值代表該讀取資料為0並且該特定資料1的錯誤位元的數量;以及根據該第一及第二計數值定義該傾向資料。
- 如申請專利範圍第10項所述之非暫態電腦可讀媒體,其中該等邏輯指令進一步組配該記憶體控制器儲存該傾向資料於一揮發性記憶體中,其中當該揮發性記憶體重新上電時,重新執行該傾向確認操作。
- 如申請專利範圍第10項所述之非暫態電腦可讀媒體,其中該等邏輯指令進一步組配該記憶體控制器來執行下列步驟:儲存該傾向資料於一揮發性記憶體或一非揮發性記憶體中。
- 如申請專利範圍第8項所述之非暫態電腦可讀媒體,其中該等邏輯指令進一步組配該記憶體控制器來執行下列步驟:讀取該記憶陣列,用以產生一讀取資料,該讀取資料具有一第一資料,一第二同位資料以及一第二反轉資料;判斷該第二反轉資料是否等於一預設值;當該第二反轉資料等於該預設值時:反轉該第一資料及該第二同位資料,用以產生一反轉第一資料以及一反轉第二同位資料;根據該反轉第二同位資料,解碼該反轉第一資料,用以產生一第一處理資料;以及輸出該第一處理資料予一外部裝置;當該第二反轉資料不等於該預設值時:根據該第二同位資料,解碼該第一資料,用以產生一第二處理資料;以及輸出該第二處理資料予該外部裝置。
- 如申請專利範圍第13項所述之非暫態電腦可讀媒體,其中判斷該第二反轉資料是否等於該預設值的步驟包括:讀取該記憶陣列的一第一記憶單元所儲存的一第一邏輯值;讀取該記憶陣列的一第二記憶單元所儲存的一第二邏輯值;當該第一及第二邏輯值都等於該預設值時,表示該第二反轉資料等於該預設值;當該第一及第二邏輯值都不等於該預設值時,表示該第二反轉資料不等於該預設值;當該第一邏輯值不等於該第二邏輯值時,判斷該傾向資料是否等於該預設值;當該傾向資料等於該預設值並且該第一邏輯值不等於該第二邏輯值,表示該第二反轉資料等於該預設值;以及當該傾向資料不等於該預設值並且該第一邏輯值不等於該第二邏輯值,表示該第二反轉資料不等於該預設值。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW107142449A TWI671750B (zh) | 2018-11-28 | 2018-11-28 | 記憶體的控制方法及非暫態電腦可讀媒體 |
CN201910670768.2A CN111240584B (zh) | 2018-11-28 | 2019-07-24 | 存储器的控制方法及非暂态电脑可读媒体 |
US16/526,153 US10867663B2 (en) | 2018-11-28 | 2019-07-30 | Control method for memory and non-transitory computer-readable media |
US17/094,385 US11176988B2 (en) | 2018-11-28 | 2020-11-10 | Control method for memory and non-transitory computer-readable media |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW107142449A TWI671750B (zh) | 2018-11-28 | 2018-11-28 | 記憶體的控制方法及非暫態電腦可讀媒體 |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI671750B true TWI671750B (zh) | 2019-09-11 |
TW202020884A TW202020884A (zh) | 2020-06-01 |
Family
ID=68619032
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW107142449A TWI671750B (zh) | 2018-11-28 | 2018-11-28 | 記憶體的控制方法及非暫態電腦可讀媒體 |
Country Status (3)
Country | Link |
---|---|
US (2) | US10867663B2 (zh) |
CN (1) | CN111240584B (zh) |
TW (1) | TWI671750B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11636008B2 (en) * | 2021-09-01 | 2023-04-25 | Micron Technology, Inc. | Tracking host-provided metadata in a memory sub-system |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100008121A1 (en) * | 2008-07-10 | 2010-01-14 | Seiko Epson Corporation | Method for driving ferroelectric memory device, ferroelectric memory device, and electronic equipment |
US8001337B2 (en) * | 2003-09-29 | 2011-08-16 | Kabushiki Kaisha Toshiba | Memory system with controller for managing management data and reverse flag for reversing write data |
TWI524355B (zh) * | 2009-12-22 | 2016-03-01 | 英特爾公司 | 用於8位元記憶體裝置之錯誤校正機制 |
US20170293513A1 (en) * | 2014-10-24 | 2017-10-12 | Sony Corporation | Memory controller, memory system, and memory controller control method |
Family Cites Families (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7587658B1 (en) * | 2005-01-03 | 2009-09-08 | Sun Microsystems, Inc. | ECC encoding for uncorrectable errors |
KR101007259B1 (ko) * | 2006-01-19 | 2011-01-13 | 후지쯔 가부시끼가이샤 | 패리티 생성 회로, 계수 회로 및 계수 방법 |
US20090091968A1 (en) * | 2007-10-08 | 2009-04-09 | Stefan Dietrich | Integrated circuit including a memory having a data inversion circuit |
US8085584B1 (en) * | 2009-11-30 | 2011-12-27 | Micron Technology, Inc. | Memory to store user-configurable data polarity |
JP2012073678A (ja) * | 2010-09-27 | 2012-04-12 | Fujitsu Ltd | 擬似エラー発生装置 |
EP2671229B1 (en) * | 2011-01-31 | 2019-10-09 | Everspin Technologies, Inc. | Method of writing to a spin torque magnetic random access memory |
US8707133B2 (en) * | 2011-12-05 | 2014-04-22 | Lsi Corporation | Method and apparatus to reduce a quantity of error detection/correction bits in memory coupled to a data-protected processor port |
CN102567134B (zh) * | 2012-01-06 | 2015-01-07 | 威盛电子股份有限公司 | 存储器模块的错误检查与校正系统以及方法 |
US20140047296A1 (en) * | 2012-08-09 | 2014-02-13 | Broadcom Corporation | Error Correcting Code Design For A Parity Enabled Memory |
US9230655B2 (en) * | 2013-12-20 | 2016-01-05 | Apple Inc. | Data storage management in analog memory cells using a non-integer number of bits per cell |
US9501352B2 (en) * | 2014-03-05 | 2016-11-22 | Kabushiki Kaisha Toshiba | Memory device |
JP6600146B2 (ja) * | 2015-03-27 | 2019-10-30 | ルネサスエレクトロニクス株式会社 | データ処理回路及びエラー訂正方法 |
US9450609B1 (en) * | 2015-03-31 | 2016-09-20 | Altera Corporation | Methods and apparatus for embedding an error correction code in memory cells |
US9563505B2 (en) * | 2015-05-26 | 2017-02-07 | Winbond Electronics Corp. | Methods and systems for nonvolatile memory data management |
US9836349B2 (en) * | 2015-05-29 | 2017-12-05 | Winbond Electronics Corp. | Methods and systems for detecting and correcting errors in nonvolatile memory |
WO2017138235A1 (ja) * | 2016-02-08 | 2017-08-17 | ソニー株式会社 | メモリコントローラ、不揮発性メモリおよびメモリコントローラの制御方法 |
US10536172B2 (en) * | 2016-03-04 | 2020-01-14 | Western Digital Technologies, Inc. | ECC and raid-type decoding |
JP6606039B2 (ja) | 2016-09-09 | 2019-11-13 | 東芝メモリ株式会社 | メモリシステムおよび制御方法 |
US10475524B2 (en) * | 2016-09-15 | 2019-11-12 | Apple Inc. | Recovery of data read from memory with unknown polarity |
KR20180072026A (ko) * | 2016-12-20 | 2018-06-29 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러, 이를 포함하는 메모리 시스템, 및 그의 동작 방법 |
TW201839596A (zh) * | 2017-04-28 | 2018-11-01 | 慧榮科技股份有限公司 | 記憶裝置及記憶裝置的控制方法 |
US10916324B2 (en) * | 2018-09-11 | 2021-02-09 | Micron Technology, Inc. | Data state synchronization involving memory cells having an inverted data state written thereto |
-
2018
- 2018-11-28 TW TW107142449A patent/TWI671750B/zh active
-
2019
- 2019-07-24 CN CN201910670768.2A patent/CN111240584B/zh active Active
- 2019-07-30 US US16/526,153 patent/US10867663B2/en active Active
-
2020
- 2020-11-10 US US17/094,385 patent/US11176988B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8001337B2 (en) * | 2003-09-29 | 2011-08-16 | Kabushiki Kaisha Toshiba | Memory system with controller for managing management data and reverse flag for reversing write data |
US20100008121A1 (en) * | 2008-07-10 | 2010-01-14 | Seiko Epson Corporation | Method for driving ferroelectric memory device, ferroelectric memory device, and electronic equipment |
TWI524355B (zh) * | 2009-12-22 | 2016-03-01 | 英特爾公司 | 用於8位元記憶體裝置之錯誤校正機制 |
US20170293513A1 (en) * | 2014-10-24 | 2017-10-12 | Sony Corporation | Memory controller, memory system, and memory controller control method |
Also Published As
Publication number | Publication date |
---|---|
CN111240584A (zh) | 2020-06-05 |
US20200168265A1 (en) | 2020-05-28 |
US10867663B2 (en) | 2020-12-15 |
TW202020884A (zh) | 2020-06-01 |
US11176988B2 (en) | 2021-11-16 |
CN111240584B (zh) | 2023-03-28 |
US20210057014A1 (en) | 2021-02-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101753714B1 (ko) | 비휘발성 메모리 어레이로부터 검색된 상태 신뢰 데이터의 처리를 위한 방법 및 장치 | |
TWI750517B (zh) | 帶有糾錯及數據刷洗電路的記憶體系統 | |
TWI567748B (zh) | 記憶體裝置中錯誤管理之方法及系統 | |
JP5732147B2 (ja) | データセンシングのための方法、装置、およびシステム | |
TWI455136B (zh) | 用來進行資料整形之方法以及相關之記憶裝置及其控制器 | |
KR20140055737A (ko) | 메모리 모듈, 그것을 포함하는 메모리 시스템, 그것의 구동 방법 | |
TWI442222B (zh) | 快閃記憶裝置與快閃記憶裝置管理方法 | |
TWI509624B (zh) | 快閃記憶體裝置、記憶體控制器及快閃記憶體的控制方法 | |
US7689895B2 (en) | On-the fly error checking and correction CODEC system and method for supporting non-volatile memory | |
TW201928957A (zh) | 具有讀取臨界值機制的儲存系統及其操作方法 | |
US9105359B2 (en) | Nonvolatile memory device and error correction methods thereof | |
KR20140102703A (ko) | 통합된 데이터 마스킹, 데이터 포이즈닝, 및 데이터 버스 반전 시그널링 | |
TWI671750B (zh) | 記憶體的控制方法及非暫態電腦可讀媒體 | |
US20130219246A1 (en) | Method and Apparatus for Detecting Free Page and a Method and Apparatus for Decoding Error Correction Code Using the Method and Apparatus for Detecting Free Page | |
TW201735049A (zh) | 非依電性記憶體裝置及其空頁偵測方法 | |
CN112349342B (zh) | 维护ddr5内存子系统的维护装置、方法、设备和存储介质 | |
CN114913900A (zh) | 静态ecc纠错的nand错误处理方法、装置、计算机设备及存储介质 | |
CN113764029A (zh) | 用于并行生成校正子和部分系数信息的设备和方法 | |
TWI446346B (zh) | 資料讀取方法、記憶體儲存裝置及其記憶體控制器 | |
US10332017B2 (en) | Information processing method and electronic device | |
JP3130796B2 (ja) | 制御記憶装置 | |
TWI829252B (zh) | 低密度奇偶校檢碼的解碼方法及電腦程式產品及裝置 | |
US20230280930A1 (en) | Memory controller and memory system for executing error correction operation | |
TWI703572B (zh) | 記憶體儲存裝置及其記憶體測試方法 | |
KR20170096079A (ko) | 반도체장치 및 반도체시스템 |