TW201432458A - 記憶體裝置中改變部分資料的記憶體控制器以及其改變部分資料的方法 - Google Patents
記憶體裝置中改變部分資料的記憶體控制器以及其改變部分資料的方法 Download PDFInfo
- Publication number
- TW201432458A TW201432458A TW102140195A TW102140195A TW201432458A TW 201432458 A TW201432458 A TW 201432458A TW 102140195 A TW102140195 A TW 102140195A TW 102140195 A TW102140195 A TW 102140195A TW 201432458 A TW201432458 A TW 201432458A
- Authority
- TW
- Taiwan
- Prior art keywords
- data
- new
- old
- parity
- partial
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1048—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
-
- G—PHYSICS
- 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/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
-
- 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/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1435—Saving, restoring, recovering or retrying at system level using file system or storage system metadata
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0804—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0868—Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/09—Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/29—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
- H03M13/2942—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes wherein a block of parity bits is computed only from combined information bits or only from parity bits, e.g. a second block of parity bits is computed from a first block of parity bits obtained by systematic encoding of a block of information bits, or a block of parity bits is obtained by an XOR combination of sub-blocks of information bits
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Library & Information Science (AREA)
- Detection And Correction Of Errors (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- For Increasing The Reliability Of Semiconductor Memories (AREA)
- Error Detection And Correction (AREA)
Abstract
一種記憶體控制器的部分資料改變方法,此方法包括從主機中接收用以更改部分資料的請求;使用錯誤偵測碼偵測舊資料的錯誤,此舊資料是從記憶體裝置中所讀取的部分資料;倘若舊資料並非是錯誤的時,則計算從主機中所提供的新資料與舊資料之間的資料差異,並且使用此資料差異與從記憶體裝置中所讀取的舊同位來計算新同位;以及在記憶體裝置中儲存新資料與新同位。
Description
在此所描述的本發明概念是有關於一種半導體記憶體系統,以及特別是,有關於一種能夠改變記憶體裝置中之部分資料的記憶體控制器及其部分資料改變方法。
半導體記憶體裝置是使用例如矽(silicon,Si)、鍺(germanium,Ge)、砷化鎵(gallium arsenide,GaAs)、磷化銦(indium phosphide,InP)等等的半導體所製造的記憶體裝置。
當資料被儲存於記憶體裝置中並且所儲存的資料從記憶體裝置中被讀取時,錯誤可能會產生。各種的錯誤校正碼會被使用來偵測與校正這樣的錯誤。錯誤校正碼包括里德-所羅門(Reed-Solomon,RS)碼、BCH碼(Bose-Chaudhuri-Hocquenghem,BCH)、低密度同位檢查(Low Density Parity Check,LDPC)碼等。
當資料被儲存在記憶體裝置時,用以錯誤校正的同位位元會與資料一起被儲存在記憶體裝置中。儲存在記憶體裝置的資料即使是部分地被改變,與同位位元儲存在一起的所有資料皆會被讀取以產生新的同位位元。亦即,資料讀取時間及能源消耗會增加。
本發明概念的一個範例實施例是有關於記憶體控制器的部分資料改變方法,此方法包括從主機中接收用以改變部分資料的請求。在一個實施例中,此方法包括使用錯誤偵測碼來偵測從記憶體裝置中所讀取的部分資料的錯誤,以及倘若從記憶體裝置中所讀取的部分資料並非為錯誤的時,則計算從主機所提供的新資料Dnew與從記憶體裝置中所讀取的部分資料Dold(以下參照為舊資料)之間的資料差異Ddif,使用此資料差異與從記憶體裝置中所讀取的舊同位Pold來計算新同位Pnew,以及在記憶體裝置中儲存此新資料與新同位。
在一個實施例中,部分資料改變方法更包括當此舊資料為錯誤的時,則從記憶體裝置中讀取全部資料,以及使用錯誤校正碼校正舊資料的錯誤。舊資料的錯誤被校正之後從主機中所提供的新資料與錯誤校正的舊資料之間的差異會被計算,並且新同位Pnew會藉由使用此資料差異Ddif與從記憶體裝置中所讀取的舊同位Pold被計算。
在一個實施例中,部分資料改變方法更包括執行劃分要被儲存於記憶體裝置的全部資料為多個部分資料,產生做為每一部分資料之錯誤偵測碼的同位以及產生部分編碼資料的部分資料編碼操作;以及在部分資料編碼操作之後,執行產生作為全部的部分編碼資料之錯誤校正碼的同位的全部資料編碼操作。
在一個實施例中,部分資料改變方法更包括執行產生要被儲存於記憶體裝置中的作為全部資料之錯誤校正碼的同位的全部資料編碼操作;並且在全部資料編碼操作被執行之後,劃分要被儲存在記憶體裝置中的全部資料為多個部分資料;以及產生作為全部資料之錯誤偵測碼的同位。在部分資料編碼操作中,編碼的同位會在全部資料編碼操作所產生的全部資料上被產生。
本發明概念的一個實施例是有關於記憶體控制器的部分資料改變方法,此方法包括從主機中接收用以改變部分資料的請求;使用錯誤校正碼來偵測從記憶體裝置中所讀取的部分資料的錯誤;以及倘若從記憶體裝置中所讀取的部分資料為錯誤的時,則校正此部分資料的錯誤,計算從主機所提供的新資料Dnew與錯誤校正的部分資料Dold(以下參照為舊資料)之間的資料差異Ddif,並且使用此資料差異Ddif與從記憶體裝置中所讀取的舊同位Pold來計算新同位Pnew。
在一個實施例中,部分資料改變方法更包括執行劃分要被儲存於記憶體裝置的全部資料為多個部分資料,產生作為每一部分資料的錯誤校正碼的同位,以及產生部分編碼資料的部分資
料編碼操作;以及在部分資料編碼操作後,執行產生作為全部部分編碼資料之錯誤校正碼的同位的全部資料編碼操作。
在一個實施例中,部分資料改變方法更包括執行產生作為要被儲存於記憶體裝置的全部資料之錯誤校正碼的同位的全部資料編碼操作;以及在全部資料編碼操作被執行後,劃分要被儲存於記憶體裝置的全部資料為多個部分資料並且產生作為全部資料之錯誤校正碼的同位。在部分資料編碼操作中,編碼的同位會在全部資料編碼操作所產生的全部資料上被產生。
在一個實施例中,部分資料改變方法更包括倘若從記憶體裝置中所讀取的部分資料並非是錯誤的時,則計算從主機中所提供的新資料Dnew與從記憶體裝置中所讀取的部分資料Dold之間的資料差異Ddif,並且使用此資料差異與從記憶體裝置中所讀取的舊同位Pold來計算新同位Pnew。
根據本發明概念的至少一個範例實施例,儲存在記憶體裝置中的一部分的資料被改變的情況下,新同位會藉由使用在沒有未改變的資料下所改變的部分資料而被產生。由於新同位是僅使用改變的資料所產生,資料讀取時間與能源消耗會被減少。並且,倘若要被改變的部分資料為錯誤的,則新同位的錯誤會藉由提前地偵測與校正錯誤而被避免。
本發明概念的一個實施例是有關於用於更新同位資訊的操作記憶體控制器的方法。在一個實施例中,此方法包括判斷第一同位,此第一同位為對應儲存於記憶體裝置中的第一資料之全
體的同位且第一資料包括第一部分與第二部分;接收用以新資料取代第一部分的請求;計算基於新資料與第一部分的資料差異值;藉由計算基於資料差異與第一同位的第一資料的新同位來更新第一同位;以及藉由在記憶體裝置中儲存新資料與新同位來以新資料取代第一資料中的第一部分。
資料差異與新同位會在沒有使用第二部分的情況下被計算,並且新同位會對應於包括新資料與第二部分的第一資料的全體。
第一部分包括第一資料的連續的位元,第二部分包括第一資料的連續的位元,以及第一與第二部分彼此並不重疊。
110、210、221‧‧‧全部資料
120‧‧‧部分編碼的全部資料
130、230‧‧‧最終編碼資料
131‧‧‧部分編碼的全部資料
132、222‧‧‧同位
211、221‧‧‧虛線
220‧‧‧整體編碼資料
231‧‧‧部分編碼資料1
232‧‧‧編碼的同位
1000、2000、5300‧‧‧記憶體系統
1100、2100、3100、4100‧‧‧記憶體裝置
1110、1110a、1110b‧‧‧記憶體單元陣列
1120‧‧‧位址解碼器
1130‧‧‧資料輸入/輸出電路
1140‧‧‧控制邏輯
1200、2200、3200、4200‧‧‧記憶體控制器
1210‧‧‧系統匯流排
1220‧‧‧控制單元
1230‧‧‧RAM
1240‧‧‧主機介面
1250‧‧‧記憶體介面
1260‧‧‧新同位產生器
1270‧‧‧ECC編碼器
1300‧‧‧主機
1261‧‧‧資料位置識別器
1262‧‧‧資料差異計算器
1263‧‧‧同位計算器
3000‧‧‧記憶卡
3300、4300‧‧‧連接器
4000‧‧‧固態硬碟
5000‧‧‧計算機系統
5100‧‧‧匯流排
5200‧‧‧處理器
5400‧‧‧數據調變機
5500‧‧‧使用者介面
S110、S120、S130、S140‧‧‧新同位產生方法的步驟
S210、S220、S230、S240、S245、S250、S260‧‧‧使用EDC的部分編碼操作的步驟
S310、S320、S330、S340、S345、S350、S360‧‧‧使用ECC的部分編碼操作的步驟
S311、S312、S313、S314‧‧‧直接記憶體存取操作的步驟
圖1是根據本發明概念的實施例所示意性地繪示之記憶體系統的方塊圖。
圖2示意性地繪示為圖1之記憶體裝置的方塊圖。
圖3與圖4是根據本發明概念的實施例所示意性地繪示之記憶體單元陣列的電路圖。
圖5為示意性地繪示圖1所示之記憶體控制器的方塊圖。
圖6為示意性地繪示圖5的新同位產生器的方塊圖。
圖7到圖11是用以描述圖6之新同位產生器之運作的表格與方塊圖。
圖12是根據本發明概念的實施例所繪示之記憶體系統之新同位產生方法的流程圖。
圖13為繪示同位檢查矩陣的一個範例的表格。
圖14為繪示在圖13的同位檢查矩陣中的第一位元組資料被改變之情況下的表格。
圖15為繪示在圖13的同位檢查矩陣上每個區段的新同位產生操作被執行之一個範例的表格。
圖16與圖17為繪示用以部分資料之錯誤偵測或校正之資料結構的表格。
圖18與圖19為繪示部分資料編碼與全部資料編碼之順序的概念示意圖。
圖20與圖21是根據本發明概念的實施例所繪示之記憶體系統的錯誤偵測或校正操作被執行的部分資料改變方法的流程圖。
圖22為示意性地繪示圖1之記憶體系統之應用的方塊圖。
圖23是根據本發明概念的實施例所示意性地繪示之藉由記憶體系統所實現之記憶卡的方塊圖。
圖24是根據本發明概念的實施例所示意性地繪示之藉由記憶體系統所實現之固態硬碟(solid state drive)的方塊圖。
圖25是根據本發明概念的實施例之記憶體系統所示意性地繪示之計算機系統被應用的方塊圖。
實施例將參照附圖詳細地被描述。然而,本發明概念可被實施以各種不同的形式並且不應被理解為限制於僅繪示的實施例。當然,這些實施例被提供作為範例以至於此揭露將會更完善與完整,並且充分地將本發明概念傳達給熟習此技藝者。基此,習知的步驟、元件及技術在關於本發明概念的一些實施例中不會被描述。除非另有說明,在所有所附圖式與所寫的說明書中,相似的參照數字代表相似的元件,並且因此描述將不會被重複。在圖式中,尺寸、圖層的相對尺寸與區域會被放大以使其清楚。
應理解的是,儘管在此使用「第一」、「第二」「第三」等用語來描述各種元件、構件、區域、階層及/或區段,這些元件、構件、區域、階層及/或區段必不因此些用語而被限定。這些用語僅用於區別一個元件、構件、區域、階層或區段與另一個區域、階層或區段。因此,在不脫離本發明概念之教示下以下所討論的第一元件、構件、區域、階層或區段可被命名為第二元件、構件、區域、階層或區段。
空間的相對用語,例如「下面(beneath)」、「下方(below)」、「下部(lower)」、「在下面(under)」、「上方(above)」、「上面(upper)」以及類似用語,在本案中使用是為了便於描述圖中所示的一元件或特徵與另一元件或特徵的關係。應該理解,除了圖中所示的方位外,空間相對用語意圖包括裝置在使用或者操作時的不同方位。例如,若為反轉圖中的裝置,則描述為位於其他元件或特徵「下方(below)」或「下面(beneath)」或「在下面(under)」的元件
將位於上述其他元件或特徵的「上方(above)」。因此,示範性用語「下方(below)」及「在下面(under)」可包含上方和下方兩個方位。裝置可以其他方式定位(旋轉90度或其他方位)並且以在此所使用之空間相對的描述符對應地解釋。此外,應該理解,當一層被參照為於另二層「之間(between)」時,它可以僅是在此另二層之間的層,或者是可存在之一個或多個中間層(intervening layers)。
在此所使用之專業用語僅是用於描述特定實施例之目的而不欲用以限制本發明概念。在此所用的單數形式「一」與「此」也意圖包括複數形式,除非上下文有其它明確地指示。必須更理解到,當用語「包括」及/或「包含」使用於此說明書中時,此用語是用以詳細說明所提及的指定特徵、整數、步驟、操作、元件、及/或構建,但並非排除一個或多個在此出現或額外的其他特徵、整數、步驟、操作、元件、構建及/或其所組成之族群。在此所使用的用語「及/或」包括任何及所有一個或多個關連的所列項目的組合。並且,用語「示範性的」被意圖參照為範例或圖示。
應理解,當一個元件或階層被參照為「在...上」、「連接至」、「連接至」或「相鄰至」另一元件或階層時,元件或階層可直接在...上、直接連接至、直接耦接至或直接相鄰至另一個元件或階層或是存在介於其間的元件或階層。相比而言,當一構成元件被稱為「直接在...上」、「直接連接至」、「直接耦接至」或「直接相鄰至」至另一元件或階層時,並沒有存在介於其間的元件或階層。
亦應注意在某些替代實施例中,所提到之功能/作用可以
不同於描述中所提到的次序而發生。舉例而言,取決於所涉及之功能性/作用,實際上可大體上同時或有時可以相反次序來執行二個被連續描述的圖式。
除非其他方面所定義,在此所使用的所有用語(包括技術及科學用語)的意思與本發明概念所屬技藝具通常技術者所一般理解的意思相同。應更理解到,諸如在常用字典中所定義的用語可解釋為具有與相關技藝及/或本申請一致的意思,並且不應以理想化或過份正式的方式進行解釋,除非本案中明確地這樣定義。
I、包括ECC編碼器的記憶體系統
圖1是根據本發明概念的實施例所示意性地繪示之記憶體系統的方塊圖。參照圖1,記憶體系統1000包括記憶體裝置1100、記憶體控制器1200以及主機1300。
記憶體裝置1100包括揮發性記憶體裝置與非揮發性記憶體裝置。揮發性記憶體裝置是在電源關閉下會遺漏儲存於其中之資料的記憶體裝置。揮發性記憶體裝置包括靜態隨機存取記憶體(Static Random Access Memory,SRAM)、動態隨機存取記憶體(Dynamic Random Access Memory,DRAM)等。非揮發性記憶體裝置是即使在電源關閉下會保留儲存於其中之資料的記憶體裝置。非揮發性記憶體裝置包括唯讀記憶體(Read Only Memory,ROM)、程式化唯讀記憶體(Programmable Read Only Memory,PROM)、電子式程式化唯讀記憶體(Electrically Programmable ROM,EEPROM)、電子式可消除程式化唯讀記憶體(Electrically Erasable
and Programmable ROM,EEPROM)、快閃記憶體裝置、相轉換隨機存取記憶體(Phase-change RAM,PRAM)、磁性隨機存取記憶體(Magnetic RAM,MRAM)、電阻式隨機存取記憶體(Resistive RAM,RRAM)、鐵電式隨機存取記憶體(Ferroelectric RAM,FRAM)等。當操作中位元錯誤被產生時,記憶體裝置1100會使用用以錯誤校正的各種方法。
記憶體控制器1200會被連接在記憶體裝置1100與主機1300之間。記憶體控制器1200會存取記憶體裝置1100以回應主機1300的請求。記憶體控制器1200會從主機1300中接收資料以產生編碼的資料DATA_C。記憶體控制器1200會提供指令CMD、位址ADDR、編碼的資料DATA_C以及控制訊號CTRL給記憶體裝置1100。
記憶體控制器1200會從記憶體裝置1100中接收編碼的資料DATA_C,以及將此編碼的資料DATA_C解碼以恢復原始資料。記憶體控制器1200會傳送此被恢復的資料至主機1300。
記憶體控制器1200包括錯誤校正碼(Error Correction Code,ECC)編碼器1270。ECC編碼器1270會在要被提供至記憶體裝置1100之資料上執行ECC編碼以產生編碼的資料DATA_C至同位(Parity)所增加處。ECC編碼器1270會使用此同位來校正錯誤。
ECC編碼器1270會使用低密度同位檢查(Low Density Parity Check,LDPC)碼、BCH碼(Bose-Chaudhuri-Hocquenghem,
BCH)、渦輪碼(turbo code)、里德-所羅門(Reed-Solomon,RS)碼、迴旋碼(convolution code)、遞歸系統碼(Recursive Systematic Code,RSC)或編碼調變,例如,格狀編碼調變(Trellis-Coded Modulation,TCM),區塊編碼調變(Block Coded Modulation,TCM)等等。
當儲存於記憶體裝置1100的資料被部分地改變時,ECC編碼器1270會使用此部分地被改變的資料來產生新同位。根據本發明概念的實施例,當產生新同位時,記憶體系統1000不會使用未被改變的資料,以致於資料讀取時間與能源消耗會被減少。
圖2示意性地繪示為圖1之記憶體裝置1100的方塊圖。參照圖2,記憶體裝置1100包括記憶體單元陣列(memory cell array)1110、位址解碼器1120、資料輸入/輸出電路1130以及控制邏輯1140。
記憶體單元陣列1110透過字元線WL與位址解碼器1120連接,以及透過位元線BL與資料輸入/輸出電路1130連接。記憶體單元陣列1110包括多個記憶體單元。配置於列方向的記憶體單元會被字元線連接。配置於欄方向的記憶體單元會被位元線連接。每一記憶體單元會儲存一個或多個資料位元。
位址解碼器1120透過字元線WL與記憶體單元陣列1110連接。位址解碼器1120會從記憶體控制器1200(參照圖1)中接收位址ADDR。位址ADDR包括列位址與欄位址。位址解碼器1120可使用列位址來選擇一個或多個字元線,以及轉送欄位址CA至資
料輸入/輸出電路1130。
資料輸入/輸出電路1130透過位元線BL與記憶體單元陣列1110連接,並且與記憶體控制器1200交換編碼的資料DATA_C。資料輸入/輸出電路1130會運作以回應控制邏輯1140。資料輸入/輸出電路1130會選擇一個或多個位元線以回應來自位址解碼器1120的欄位址CA。
資料輸入/輸出電路1130會從外部裝置(例如,記憶體控制器1200)中接收編碼的資料DATA_C以提供此編碼的資料DATA_C至記憶體單元陣列1110。資料輸入/輸出電路1130會從記憶體單元陣列1110中讀取編碼的資料DATA_C以輸出此讀取的資料DATA_C至記憶體控制器1200。
控制邏輯1140與記憶體控制器1200以及資料輸入/輸出電路1130連接。控制邏輯1140會控制記憶體裝置1100的整體運作(例如,讀取操作、寫入操作等)以回應來自記憶體控制器1200的指令CMD與控制訊號CTRL。
圖3與圖4是根據本發明概念的實施例所示意性地繪示之記憶體單元陣列的電路圖。圖3展示為反及閘快閃記憶體(NAND Flash memory)的一個範例,以及圖4展示為自旋轉移力矩磁組性隨機存取記憶體(Spin Transfer Torque Magneto-resistive Random Access Memory,STT-MRAM)的一個範例。
參照圖3,記憶體單元陣列1110a包括多個快閃記憶體單元。沿著列方向所提供的記憶體單元MC1到MCm會分別地與字
元線WL1到WLm連接。在同一列的記憶體單元會與同一字元線連接。沿著欄方向所提供的記憶體單元MC1到MCm會分別地與位元線BL1到BLn連接。在同一欄的記憶體單元會與同一位元線連接。
串選擇電晶體(string selection transistors)SST分別地與位元線BL1到BLn以及記憶體單元MCm連接。串選擇電晶體SST與串選擇線SSL連接。地選擇電晶體(ground selection transistor)GST分別地與記憶體單元MC1以及共用源極線(common source line)CSL連接。地選擇電晶體GST與地選擇線GSL連接。
參照圖4,記憶體單元陣列1110b包括多個字元線WL1到WLm、多個位元線BL1到BLn以及多個安排在字元線WL1到WLm及位元線BL1到BLn之交叉點的記憶體單元。
在記憶體單元是由STT-MRAM單元所形成的例子中,其會包括單元電晶體(cell transistor)與具有磁性材料的磁性穿隧接面(magnetic tunnel junction,MTJ)元件。MTJ元件可被電阻元件取代,例如,使用相位改變材料(phase change material)的PRAM、使用可變電阻材料的RRAM,例如,複合金屬氧化物(complex metal oxide)或類似物。
回到圖1,根據本發明概念的實施例,記憶體系統1000會被配置以使得記憶體控制器1200包括ECC編碼器1270。當儲存在記憶體裝置1100的資料被部分地改變時,根據本發明概念的範例實施例,ECC編碼器1270會使用此部分被改變的資料來產生
新同位。由於新同位是使用部分被改變的資料所產生,因此資料讀取時間與能源消耗會被減少。
II、在部分改變的資料上之新同位產生方法
圖5為示意性地繪示在圖1中所示之記憶體控制器1200的方塊圖。參照圖5,記憶體控制器1200包括系統匯流排1210、控制單元1220、RAM 1230、主機介面1240、記憶體介面1250以及ECC編碼器1270。
系統匯流排1210用以作為記憶體控制器1200的內部通道。控制單元1220控制記憶體控制器1200的整體運作。RAM 1230用以作為控制單元1220的至少一個工作記憶體、快取記憶體以及緩衝記憶體。
根據特定的通訊標準,主機介面1240可與主機1300(參照圖1)通訊。在範例實施例中,記憶體控制器1200使用各種通訊標準的至少一個來與主機1300通訊,例如,通用串列匯流排(Universal Serial Bus,USB)、周邊部件連接(peripheral component interconnection,PCI)、快捷周邊部件連接(PCI-express,PCI-E)、先進技術附件(Advanced Technology Attachment,ATA)、序列ATA、平行ATA,小型電腦系統介面(small computer system interface,SCSI)、增強型小型磁碟介面(enhanced small disk interface,ESDI)、積體驅動電子設備(Integrated Drive Electronics,IDE)以及火線(Firewire)。
記憶體介面1250與記憶體裝置1100(參照圖1)接合。例
如,記憶體介面1250包括反及閘快閃記憶體介面、MRAM介面或類似物。
ECC編碼器1270會在來自主機1300的資料上執行ECC編碼以提供編碼的資料DATA_C與同位至記憶體裝置1100。在此,編碼的資料DATA_C也被參照為ECC資料。假設要被儲存於記憶體裝置1100的資料為D1、D2、D3與D4,則同位可由以下方程式1計算。
P1=D1+D2+D3+D4 (1)
在方程式1中,加法可以是互斥或(XOR)運算或模數(mod)2運算。此外,加法可以是對應於非二進制碼到非線性碼的運算。
在此所使用的加或減之位元的運算皆可由互斥或運算而實現。
ECC編碼器1270包括新同位產生器1260。當儲存於記憶體裝置1100的一部分的資料被改變時,在ECC編碼器1270中的新同位產生器1260會使用被改變的部分資料來產生新同位。新同位產生器1260可被配置於ECC編碼器1270外部。
圖6為示意性地繪示圖5的新同位產生器的方塊圖。參照圖6,新同位產生器1260包含資料位置識別器1261、資料差異計算器1262以及同位計算器1263。
資料位置識別器1261會識別從主機1300中輸出之新資料Dnew的位置,以及提供位置訊號LOC至資料差異計算器1262
與同位計算器1263。在此,新資料的位置表示為要以新資料而被改變之來自儲存於記憶體裝置1100之資料中的資料的位置。
例如,假設同位P是使用四個資料D1、資料D2、資料D3與資料D4而產生。例如此範例,在此時資料D1到D4會分別地被設置在位置d1到d4。在此事件中D1與D2會隨著新資料而被改變,因此新資料的位置會是d1與d2。在下面的描述中,在位置d1的舊資料會被參照為D1old並且新資料會被參照為D1new。倘若在位置d1的舊資料D1old隨著新資料D1new而被改變,資料位置識別器1261會提供指示d1的位置訊號LOC。
資料差異計算器1262會從資料位置識別器1261中接收新資料上的位置訊號LOC,並且會計算來自主機1300的新資料Dnew與儲存在記憶體裝置1100的舊資料Dold之間的差異。資料差異計算器1262會提供新資料Dnew與舊資料Dold之間的資料差異Ddif給同位計算器1263。
同位計算器1263會接收新資料上的位置訊號LOC,並且會使用來自資料差異計算器1262的資料差異Ddif以及儲存於記憶體裝置1100的舊同位Pold來計算新同位Pnew。同位計算器1263的運算將參照圖10與圖11更充分地描述。
新同位產生器1260的結構及運作原理是基於以下之數學原理。假設資料D1old、D2old、D3old、D4old以及同位Pold儲存於記憶體裝置1100中。
基於方程式1,舊同位Pold會被表示為:
Pold=D1old+D2old+D3old+D4old。
在此,倘若D1old與D2old會被D1new與D2new取代,則舊同位Pold會被改變。倘若儲存在記憶體裝置1100的一部分的資料被改變,則傳統的記憶體系統會從記憶體裝置1100中讀取所有的資料D1old、D2old、D3old、D4old,改變資料以及計算新同位Pnew。
基於方程式1,新同位Pnew會被表示為:Pnew=D1new+D2new+D3old+D4old。
新同位Pnew減去舊同位Pold會相等於(D1new+D2new+D3old+D4old)-(D1old+D2old+D3old+D4old)。
接著,新同位Pnew會被表示為:Pnew=Pold+(D1new+D2new+D3old+D4old)-(D1old+D2old+D3old+D4old)。
Pnew=Pold+(D1new+D2new)-(D1old+D2old)。
Pnew=Pold+(D1new-D1old)+(D2new-D2old)。
如同從上述表達式所理解,未被改變的資料D3old與D4old會在算術運算的期間被移除。亦即當儲存在記憶體裝置1100的資料為未改變之部分改變的資料時,意圖以資料D1-D4來判斷新同位為非必要的。
傳統的記憶體系統會讀取所有包括未被改變之資料D3old與資料D4old以計算新同位。儘管ECC資料的大小為大型的並且要被改變之資料的大小為小型的,傳統的記憶體系統會讀取所有資料以產生新同位。因此,需要許多資料讀取時間以及許多能源。
倘若儲存在記憶體裝置1100的資料被部分地改變,則根
據本發明概念的實施例,記憶體系統1000會透過圖6的新同位產生器1260,在沒有讀取所有資料下使用被部分改變的資料產生新同位。因此,資料讀取時間與能源消耗會減少。
以下,將參照圖7與圖11更充分地描述圖6的新同位產生器的運作。
參照圖7,假設四個舊資料Dold以及一個舊同位P被儲存在記憶體裝置1100中。在位置d1到d4的舊資料Dold是0,0,1以及1。也就是說,D1old為0,D2old為0,D3old為1,以及D4old為1。因此,Pold(=D1old+D2old+D3old+D4old)藉由互斥或運算而為0。
假設舊資料D1old與D2old隨著新資料D1new與D2new而被改變。如圖7中所示,D1new為0並且D2new為1。圖6的新同位產生器1260會在沒有未被改變之資料D3old與D4old下產生新同位Pnew。以下,將描述在沒有未被改變之資料D3old與D4old下獲得新同位Pnew的方法。
圖8為示意性地繪示圖6之資料差異計算器的方塊圖。參照圖8,資料差異計算器1262會接收新資料上的位置訊號LOC以計算新資料Dnew與舊資料Dold之間的差異。資料差異Ddif可藉由以下方程式2被計算。
D dif =D new -D old =XOR(D old ,D new ) (2)
在方程式2中,減法可以是互斥或運算或模數(mod)2運算。此外,減法可以是對應於非二進制碼或非線性碼的運算。
資料差異計算器1262會接收位置訊號d1以計算在新資
料D1new與舊資料D1old之間的差異D1dif。接著,資料差異計算器1262會接收位置訊號d2以產生計算在新資料D2new與舊資料D2old之間的差異D2dif。在此,資料差異D1dif表示為位於位置d1之新資料D1new與舊資料D1old之間的差異。此外,資料差異計算器1262會接收位置訊號d1與d2以在同時間下計算資料差異D1dif與D2dif。資料差異D1dif與D2dif會被提供至同位計算器1263。
圖9是用以描述圖8之資料差異計算器之運算的表格。如上所述,假設舊資料D1old與D2old會隨著新資料D1new與D2new而被改變。由於資料D1new與D1old為0,方程式2的資料差異D1dif會為0。由於D2old為0且D2new為1,因此資料差異D2dif為1。
圖10為示意性地繪示6之同位計算器的方塊圖。參照圖10,同位計算器1263接收新資料上的位置訊號LOC以使用來自資料差異計算器1262的資料差異Ddif以及儲存於記憶體裝置1100的舊同位Pold來計算新同位Pnew。新同位Pnew可藉由以下方程式3而被計算。
P new =P old +D dif (3)
在上述範例中,Ddif是D1dif與D2dif的總和。D1dif是D1new與D1old之間的差異,以及D2dif是D2new與D2old之間的差異。也就是說,方程式3可被表示為:Pnew=Pold+D1dif+D2dif=Pold+(D1new-D1old)+(D2new-D2old)。
圖11是用以描述圖10之同位計算器之操作的表格。如同使用圖9之範例所計算,倘若D1dif為0且D2dif為1,則總資料
差異Ddif為1。由於Pold為0且Ddif為1,則新同位Pnew為1。
參照方程式3,新同位Pnew可藉由舊同位Pold的函數與改變的資料差異Ddif來表示。在此,用以獲得新同位Pnew的函數不會與未改變的資料結合(例如,D3old與D4old)。這可以被擴展到非二進制碼或非線性碼。
根據本發明概念的實施例,由於記憶體系統僅使用改變的資料來計算新同位,因此資料讀取時間與能源消耗會減少。特別是,根據本發明概念的實施例,記憶體系統有益於小型資料被改變的情況下。
圖12是根據本發明概念的實施例所繪示之記憶體系統之新同位產生方法的流程圖。
在操作S110中,記憶體控制器1200(參照圖1)會從記憶體裝置1100中讀取舊資料Dold與舊同位Pold。在操作S120中,記憶體控制器1200會從主機1300(參照圖1)中接收新資料Dnew。在操作S130中,記憶體控制器1200會計算舊資料Dold與新資料Dnew之間的差異Ddif。在操作S140中,記憶體控制器1200會使用舊同位Pold與此差異Ddif來計算新同位Pnew。
圖13為繪示同位檢查矩陣的一個範例的表格。參照圖13,儲存在記憶體裝置1100(參照圖1)之資料的碼長度是72並且其資料長度為64。圖13繪示分別地對應於資料D0-D55的資料位置d0-d55。在圖13中,所繪示為訊號錯誤雙重校正錯誤偵測(single error correction-double error detection,SEC-DED)的同位檢查陣列
(72,64)的一個範例。在此,訊號錯誤雙重校正錯誤偵測表示為一個錯誤被校正且兩個錯誤被偵測。
在圖13中,一列可藉由同位檢查方程式所表示。同位會藉由在一列中對應1的位置增加碼位元而產生。例如,第一列R1的同位P0可藉由以下方程式4而被計算。
P0=D0+D1+D2+...+D56+D57+D58 (4)
第二列到第八列R2到R8的同位P1到P7會如同方程式4以同樣的方式被計算。以下表1展示列R1到R8的同位。
根據本發明概念的實施例,記憶體系統1000(參照圖1)會在多個列上產生新同位。如圖13中所示,在第一列到第八列R1到R8上的新同位會被產生以具有預先決定的大小。在此情況下,如上所述,倘若資料被部分地改變,新同位會使用部分被改變的資料而被產生,而非所有的資料。
圖14為繪示在圖13的同位檢查矩陣中的第一位元組資
料被改變之情況下的表格。在圖14中,未改變的資料,亦即,不被使用來計算新同位的資料被標記為X。
倘若儲存於記憶體裝置1100的資料的第一位元組資料被改變,傳統的記憶體系統會讀取圖13中所有的資料以產生新同位。然而,根據本發明概念的實施例,記憶體系統1000會讀取第一個1-位元組(byte)資料與1-byte同位來產生新同位。也就是說,參照方程式3,本發明概念的記憶體系統1000會計算新資料Dnew的一個位元組與舊資料Dold的一個位元組之間的差異,並且使用此差異Ddif與舊同位Pold來產生新同位Pnew。由於新同位是僅使用被改變的資料而被產生,因此資料讀取時間與能源消耗會被減少。
如圖14中所示,倘若新同位是使用記憶體裝置1100之部分的資料(例如,第一個1-byte資料)時,則ECC編碼會以各種方法被執行。例如,ECC編碼會僅使用經改變的資料而被執行。亦即,新同位Pnew是使用改變的資料的差異Ddif與舊同位Pold而被計算。此外,儲存於記憶體裝置1100的資料會被劃分為具有預先決定的大小的區段,並且新同位產生操作會基於區段分別地被執行。
圖15為繪示在圖13的同位檢查矩陣上之每個區段的新同位產生操作被執行之一個範例的表格。在每一區段執行新同位產生操作,ECC編碼器1270會包括對應區段的新同位產生器。
在資料的第一區段被改變的事件中,新同位P0new可表示為:P0old+D0dif+D1dif+D2dif+D3dif+D4dif+D5dif+D6dif+D7dif。
在此,D1dif是(D1new-D1old)。每一區段的新同位產生器會根據上述方程式P0new而被設計。如圖15所示,倘若每一區段的同位產生操作藉由位元組被執行,則ECC編碼器1270會執行位元組遮蔽(byte-masking)操作。
如上所述,由於新同位是僅使用被改的資料而產生的,因此資料讀取時間與能源消耗會被減少。並且,新同位產生操作會在每一區段被執行。特別是,根據本發明概念的實施例,記憶體系統有益於資料是由小單元被改變的情況下。
III、包括錯誤偵測與校正的部分資料改變方法
回到方程式4,倘若資料的第一區段被改變時,則新同位P0new可表示為:P0old+D0dif+D1dif+D2dif+D3dif+D4dif+D5dif+D6dif+D7dif。
倘若要被改變之資料的第一區段為錯誤的時,則新同位P0new也會是錯誤的。
在要被改變之資料為錯誤的事件中,新同位的錯誤會藉由提前地偵測與校正錯誤而被避免。以下,在每一區段中的資料會被參照為部分資料。
圖16與圖17為繪示用以部分資料之錯誤偵測或校正之資料結構的表格。圖16是部分資料的錯誤偵測的資料結構。圖17是部分資料的錯誤校正的資料結構。
參照圖16,全部資料會被劃分為n個部分資料。在資料編碼操作中,作為每一部分資料之錯誤偵測的同位與作為全部資
料的錯誤校正的同位會被產生。參照圖17,作為每一部分資料的錯誤校正的同位與作為全部資料的錯誤校正的同位會被產生。
圖18與圖19為繪示部分資料編碼與全部資料編碼之順序的概念示意圖。圖18顯示部分資料編碼首先被執行且接著全部資料編碼被執行的方法。
參照圖18,全部資料110會被劃分為n個部分資料區段Partial DATA1到Partial DATAn(n為自然數)。部分資料編碼操作會基於每一部分資料而被執行。在此,錯誤偵測或校正的同位會在部分資料編碼操作中被產生。
由n個部分資料區段Partial DATA1到Partial DATAn所形成的全部資料110會透過以EDC或ECC的部分資料編碼操作成為部分編碼的全部資料120。部分編碼的全部資料120是由n個部份編碼資料Partial Encoded DATA1~DATAn所形成,每一部分編碼資料包括部分資料與同位。
例如,第一部分資料Partial DATA1透過以EDC或ECC的部分資料編碼操作會成為第一部分編碼資料Partial Encoded DATA1。第一部分編碼資料Partial Encoded DATA1是由第一部分資料Partial DATA1與第一同位P1所形成。同樣地,第n部分編碼資料Partial Encoded DATAn是由第n部分資料Partial DATAn與第n同位Pn所形成。
部分編碼的全部資料120是透過以ECC的全部資料編碼操作而成為最終編碼資料130。最終編碼資料130是由部分編碼的
全部資料131與同位132所形成。在此,同位132是部分編碼的全部資料131上的同位。
圖19顯示在全部資料編碼被執行且接著部分資料編碼被執行的方法。參照圖19,全部資料210透過以ECC的全部資料編碼操作而成為整體編碼資料220。
整體編碼資料220是由全部資料221與全部資料221的同位222所形成的。在圖19中,虛線211與221是指示劃分為部分資料區段之前的全部資料。同位222會被使用來校正全部資料的錯誤。
參照圖19,全部資料221會被劃分為第一到第n部分資料區段Partial DATA1到Partial DATAn。以EDC或ECC的部分資料編碼操作是基於每一部分資料而被執行。在此,在部分資料編碼操作中用以錯誤偵測或校正的同位會被產生。
由部分資料Partial DATA1到Partial DATAn所形成的全部資料221透過以EDC或ECC的部分資料編碼操作成為部分編碼的資料。例如,第一部分資料Partial DATA1會成為第一部分編碼資料Partial Encoded DATA1 231。第一部分編碼資料Partial Encoded DATA1 231是由第一部分資料Partial DATA1與第一同位P1所形成。
全部資料的同位222透過以EDC或ECC的部分資料編碼操作成為被編碼的同位。在此,編碼的同位232是藉由編碼全部資料的同位222而產生。
圖20與圖21是根據本發明概念的實施例所繪示之記憶體系統的錯誤偵測或校正操作被執行的部分資料改變方法的流程圖。圖20顯示以EDC的部分編碼操作。圖21顯示以ECC的部分編碼操作。
參照圖20,在操作S210中,主機1300(參照圖1)會對記憶體控制器1200(參照圖1)請求部分資料的改變。
在操作S220中,記憶體控制器120會使用EDC檢查從記憶體裝置1100(參照圖1)所讀取的部分資料的錯誤。在此,從記憶體裝置1100所讀取的部分資料是舊資料Dold。作為EDC的舊資料Dold與舊同位Pold會被儲存於記憶體裝置1100。
在操作S230中,記憶體控制器1200會判斷從記憶體裝置1100中所讀取的部分資料是否為錯誤的。倘若為是,此方法會進行讀取全部資料的操作S240。在操作S245中,使用ECC對全部資料校正資料錯誤。
在操作S240中錯誤未被偵測或在操作S245中錯誤被校正的情況下,在操作S250中,記憶體控制器1200會讀取部分資料以產生新同位Pnew。亦即,如參照圖12所述,新同位是使用新資料Dnew與舊資料Dold之間的資料差異Ddif以及舊同位Pold而被產生。
在操作S260中,新部分資料與新同位Pnew會被儲存於記憶體裝置1100中。
參照圖21,在操作S310中,部分資料的改變被請求。
在操作S320中,對從記憶體裝置1100中所讀取的部分資料使用ECC,錯誤會被檢查。作為ECC的舊資料Dold與舊同位Pold被儲存於記憶體裝置1100。
在操作S330中,記憶體控制器1200會判斷從記憶體裝置1100所讀取的部分資料是否為錯誤的。若是,則此方法會進行以記憶體控制器1200使用ECC對部分資料來校正資料錯誤的操作S340。
在操作S330中錯誤未被偵測或在操作S340中錯誤被校正的情況下,在操作S350中,記憶體控制器1200會讀取部分資料以產生新同位Pnew。在操作S360中,新部分資料與新同位Pnew會被儲存於記憶體裝置1100。
如上所述,由於新同位是僅使用改變的資料所產生,因此資料讀取時間與能源消耗會被減少。在範例實施例中,新同位產生操作會在每一區段被執行。倘若要被改變的部分資料為錯誤的,則新同位的錯誤會藉由提前地偵測與校正錯誤而被避免。
IV、應用
圖22為示意性地繪示圖1之記憶體系統之應用的方塊圖。參照圖22,根據本發明至少一個範例實施例,記憶體系統2000包括具有上述分別地關於記憶體裝置1100與記憶體控制器120之結構與運作的記憶體裝置2100與記憶體控制器2200。
記憶體裝置2100包括多個記憶體晶片。記憶體晶片被劃分為多個群組。每一群組中的記憶體晶片用以經由公用通道與記
憶體控制器2200通迅。在圖22中,繪示為多個記憶體晶片經由多個通道CH1到CHk與記憶體控制器2200通迅的一個範例。
圖23是根據本發明概念的實施例所示意性地繪示之藉由記憶體系統所實現之記憶卡的方塊圖。參照圖23,記憶卡3000包括記憶體裝置3100、記憶體控制器3200以及連接器3300。根據至少一個範例實施例,記憶體裝置3100與記憶體控制器3200分別地具有上述關於記憶體裝置1100與記憶體控制器1200的結構與運作。
連接器3300電性地連接記憶卡300與主機。記憶卡3000包括記憶卡,例如,PC卡(PCMCIA(personal computer memory card international association,PCMCIA):個人電腦記憶卡國際協會)、小型快閃(compact flash,CF)卡、智慧型媒體(SM)卡(smart media card,SMC)、記憶棒、多媒體卡(MMC,RS-MMC,MMCmicro)、安全數位(Secure Digital,SD)卡(SD,miniSD,microSD,SDHC)、通用快閃儲存器(universal flash storage,UFS)等。
圖24是根據本發明概念的實施例所示意性地繪示之藉由記憶體系統所實現之固態硬碟(solid state drive)的方塊圖。參照圖24,固態硬碟4000包括多個記憶體裝置4100、記憶體控制器4200以及連接器4300。連接器4300電性地連接固態硬碟4000與主機。根據至少一個範例實施例,每一記憶體裝置4100具有上述關於記憶體裝置1100的結構與運作,並且控制器4200具有上述關於記憶體控制器1200的結構與運作。
圖25是根據本發明概念的實施例之記憶體系統所示意性地繪示之計算機系統被應用的方塊圖。參照圖25,計算機系統5000包括匯流排5100、處理器5200、記憶體系統5300、數據調變機(modem)5400以及使用者介面5500。
匯流排5100提供計算機系統5000的構件之間的通道。處理器5200控制計算機系統5000的整體運作並且執行邏輯運算。根據本發明概念的實施例,記憶體系統5300包括記憶體系統1000或2000。
記憶體系統5300被使用作為計算機系統5000的工作記憶體或儲存器。工作記憶體可以是用於給處理器5200控制計算機系統5000的儲存空間。儲存器可以是用於給計算機系統5000長期保留資料的儲存空間。
當記憶體系統5300被使用作為工作記憶體時,計算機系統5000會更包括獨立的儲存器。當記憶體系統5300被使用作為儲存器時,計算機系統5000會更包括獨立的工作記憶體。數據調變機5400會以有線或無線的方式與外部裝置通訊。
根據至少一個範例實施例,記憶體系統5300包括具有上述有關記憶體裝置1100之結構與運作的記憶體裝置,並且記憶體系統5300包括具有上述有關記憶體控制器1200之結構與運作的記憶體控制器。
使用者介面5500包括使用者輸入介面,例如,相機、鍵盤、滑鼠、傳聲器、觸控面板(touch panel)、觸控板(touch pad)、
按鈕、感測器等。使用者介面5500更包括使用者輸出介面,例如,顯示器、揚聲器、助傾器、馬達等等。
計算機系統5000可以是行動多媒體裝置,例如,智慧型手機、智慧型平板(smart pad)或類似物,或者多媒體裝置,例如,筆記型電腦、智慧型電視、電腦、智慧型監控器或類似物。
儘管本發明概念已基於範例實施例被描述,但熟習此技藝者將體會在不脫離本發明之精神與範疇下可在其中作各種的改變與修改。因此,必須了解到,以上實施例並不用以限制,而是作為說明。
S110、S120、S130、S140‧‧‧新同位產生方法的步驟
Claims (30)
- 一種記憶體控制器的部分資料改變方法,所述方法包括:從主機中接收用以改變部分資料的請求;偵測舊資料的錯誤,所述舊資料是從記憶體裝置中所讀取的部分資料;計算從所述主機中所提供的新資料與所述舊資料之間的資料差異;使用所述資料差異與從所述記憶體裝置中所讀取的舊同位來計算新同位;以及在所述記憶體裝置中儲存所述新資料與所述新同位。
- 如申請專利範圍第1項所述之部分資料改變方法,更包括:當所述舊資料為錯誤的時,從所述記憶體裝置中讀取全部資料;以及使用錯誤校正碼校正所述舊資料的錯誤,且其中所述舊資料的錯誤是使用錯誤偵測碼被偵測,並且倘若所述舊資料並非為錯誤的時,則所述計算資料差異會被執行。
- 如申請專利範圍第2項所述之部分資料改變方法,其中所述舊資料的錯誤被校正之後,從所述主機中所提供的新資料與所述錯誤校正的舊資料之間的差異會被計算,並且新同位會藉由使用所述資料差異與從所述記憶體裝置中所讀取的舊同位而被計算。
- 如申請專利範圍第3項所述之部分資料改變方法,更包括: 執行劃分要被儲存於所述記憶體裝置的全部資料為多個部分資料,產生作為每一部分資料之錯誤偵測碼的同位以及產生部分編碼資料的部分資料編碼操作。
- 如申請專利範圍第4項所述之部分資料改變方法,更包括:在所述部分資料編碼操作之後,執行產生對應所述多個部分資料的所有所述部分編碼資料之錯誤校正碼的同位的全部資料編碼操作。
- 如申請專利範圍第2項所述之部分資料改變方法,更包括:執行包括產生要被儲存於所述記憶體裝置中的作為全部資料之錯誤校正碼的同位的全部資料編碼操作。
- 如申請專利範圍第6項所述之部分資料改變方法,更包括:所述全部資料編碼操作被執行後,劃分所述全部資料為多個部分資料,所述全部資料是要被儲存在所述記憶體裝置中的資料;以及產生作為所述全部資料之錯誤偵測碼的同位。
- 如申請專利範圍第7項所述之部分資料改變方法,更包括:執行產生每一所述多個部分資料的錯誤偵測碼的同位與產生部分編碼資料的部分資料編碼操作。
- 如申請專利範圍第8項所述之部分資料改變方法,其中在所述部分資料編碼操作中,編碼的同位會在所述全部資料編碼操作所產生的所述全部資料上被產生。
- 如申請專利範圍第1項所述之部分資料改變方法,更包 括:倘若所述舊資料為錯誤的時,校正所述舊資料的所述錯誤,且其中所述舊資料的錯誤是使用錯誤校正碼被偵測,並且所述計算資料差異是在從所述主機中所提供的新資料與所述錯誤校正的舊資料之間被執行。
- 如申請專利範圍第10項所述之部分資料改變方法,更包括:在所述記憶體裝置中儲存所述新資料與所述新同位。
- 如申請專利範圍第10項所述之部分資料改變方法,更包括:執行劃分要被儲存於所述記憶體裝置的全部資料為多個部分資料,產生作為每一所述多個部分資料的錯誤校正碼的同位,以及產生部分編碼資料的部分資料編碼操作;以及在所述部分資料編碼操作後,執行產生對應所述多個部分資料的作為所有所述部分編碼資料之錯誤校正碼的同位的全部資料編碼操作。
- 如申請專利範圍第10項所述之部分資料改變方法,更包括:執行產生要被儲存於所述記憶體裝置的作為全部資料的錯誤校正碼的同位的全部資料編碼操作,以及在所述全部資料編碼操作被執行後,劃分所述全部資料為多 個部分資料且產生作為所述全部資料之錯誤校正碼的同位的部分資料編碼操作。
- 如申請專利範圍第13項所述之部分資料改變方法,更包括:執行產生每一所述多個部分資料的錯誤校正碼的同位與產生部分編碼資料的部分資料編碼操作。
- 如申請專利範圍第14項所述之部分資料改變方法,其中在所述部分資料編碼操作中,編碼的同位會在所述全部資料編碼操作中所產生的所述全部資料上被產生。
- 如申請專利範圍第10項所述之部分資料改變方法,更包括:倘若從所述記憶體裝置中所讀取的所述部分資料並非為錯誤的時,則計算從所述主機中所提供的新資料與所述舊資料之間的資料差異,並且使用所述資料差異與從所述記憶體裝置中所讀取的舊同位來計算新同位。
- 如申請專利範圍第10項所述之部分資料改變方法,其中所述記憶體裝置是揮發性記憶體裝置。
- 如申請專利範圍第10項所述之部分資料改變方法,其中所述記憶體裝置是非揮發性記憶體裝置。
- 一種記憶體控制器,用於當記憶體裝置的部分資料被改變時產生新同位,包括:資料位置識別器,用以識別被改變的部分資料的位置; 資料差異計算器,用以從所述資料位置識別器接收所述改變的部分資料的位置資訊,並且計算從主機輸入的新資料與從所述記憶體裝置輸入的舊資料之間的資料差異;以及同位計算器,用以使用儲存在所述記憶體裝置的舊同位與所述資料差異來計算新同位。
- 如申請專利範圍第19項所述之記憶體控制器,其中所述資料位置識別器、所述資料差異計算器以及所述同位計算器被包括在新同位產生器中。
- 如申請專利範圍第19項所述之記憶體控制器,其中所述資料差異計算器用以將儲存在所述記憶體裝置之資料中的未改變的資料設為0,並且計算所述新資料與所述舊資料之間的資料差異。
- 如申請專利範圍第19項所述之記憶體控制器,其中所述資料差異計算器用以劃分所述被改變的部分資料為多個區段,並且計算基於每一區段的新資料與舊資料之間的資料差異。
- 如申請專利範圍第19項所述之記憶體控制器,其中所述資料差異計算器用以使用互斥或(XOR)運算計算所述新資料與所述舊資料之間的資料差異。
- 一種記憶體系統包括:記憶體裝置,用以儲存資料與同位;主機,用以提供用以改變儲存在所述記憶體裝置的部分資料的新資料與位置資訊;以及 記憶體控制器,用以從所述主機接收所述新資料與位置資訊,計算從所述主機所提供的所述新資料與從所述記憶體裝置中所輸入的舊資料之間的資料差異,以及使用儲存在所述記憶體裝置的舊同位與所述資料差異來產生新同位。
- 如申請專利範圍第24項所述之記憶體系統,其中所述記憶體控制器包括:資料位置識別器,用以識別所述改變的部分資料;資料差異計算器,用以從所述資料位置識別器接收所述改變的部分資料的位置資訊,並且計算所述新資料與所述舊資料之間的所述資料差異;以及同位計算器,用以使用所述舊同位與所述資料差異來計算所述新同位。
- 如申請專利範圍第24項所述之記憶體系統,其中所述資料差異計算器用以將儲存在所述記憶體裝置之資料中的之未改變的資料設為0,並且計算所述新資料與所述舊資料之間的所述資料差異。
- 如申請專利範圍第24項所述之記憶體系統,其中所述資料差異計算器用以劃分所述改變的部分資料為多個區段,並且計算基於每一區段的新資料與舊資料之間的資料差異。
- 一種操作記憶體控制器的方法,用於更新同位資訊,所述方法包括:判斷在記憶體控制器中的第一同位,所述第一同位為對應儲 存於記憶體裝置中的第一資料之全體的同位,所述第一資料包括第一部分與第二部分;接收以新資料取代所述第一部分的請求;在所述記憶體控制器中產生基於所述新資料與所述第一部分的資料差異值;藉由在所述記憶體控制器中產生基於所述資料差異與所述第一同位的所述第一資料的新同位以更新所述第一同位;以及藉由在所述記憶體裝置中儲存所述新資料與所述新同位來以所述新資料取代所述第一資料中的所述第一部分。
- 如申請專利範圍第28項所述之方法,其中所述記憶體控制器執行所述產生所述資料差異與產生所述新同位的所述操作會在沒有使用第二部分下被執行,並且所述新同位對應於所述包括所述新資料與所述第二部分的所述第一資料的全體。
- 如申請專利範圍第28項所述之方法,其中所述第一部分包括所述第一資料的連續的位元,第二部分包括所述第一資料的連續的位元,以及所述第一與第二部分彼此並不重疊。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020120129549A KR102041874B1 (ko) | 2012-11-15 | 2012-11-15 | 메모리 장치에 저장된 부분 데이터를 변경하는 메모리 컨트롤러 및 그것의 부분 데이터 변경 방법 |
KR1020120129548A KR102002044B1 (ko) | 2012-11-15 | 2012-11-15 | 새 패러티를 생성하기 위한 에러 정정 코드 인코더를 포함하는 메모리 컨트롤러와 메모리 시스템 |
??10-2012-0129549 | 2012-11-15 | ||
??10-2012-0129548 | 2012-11-15 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201432458A true TW201432458A (zh) | 2014-08-16 |
TWI627535B TWI627535B (zh) | 2018-06-21 |
Family
ID=50555968
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW102140195A TWI627535B (zh) | 2012-11-15 | 2013-11-06 | 記憶體裝置中改變部分資料的記憶體控制器以及其改變部分資料的方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US9311181B2 (zh) |
JP (1) | JP2014099174A (zh) |
CN (1) | CN103824599B (zh) |
DE (1) | DE102013112195A1 (zh) |
TW (1) | TWI627535B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI746845B (zh) * | 2017-08-10 | 2021-11-21 | 南韓商三星電子股份有限公司 | 用於儲存資料的系統以及方法 |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6414497B2 (ja) * | 2015-03-25 | 2018-10-31 | アイシン・エィ・ダブリュ株式会社 | メモリコントローラ |
JP2016184372A (ja) * | 2015-03-27 | 2016-10-20 | 富士通株式会社 | ストレージシステム,情報処理装置,パリティ生成プログラム及びパリティ生成方法 |
DE102015104841A1 (de) * | 2015-03-30 | 2016-10-06 | Infineon Technologies Ag | Chip und Verfahren zum Detektieren einer Veränderung eines gespeicherten Datenvektors |
US10176040B2 (en) * | 2016-04-05 | 2019-01-08 | Micron Technology, Inc. | Error correction code (ECC) operations in memory |
KR20170121798A (ko) * | 2016-04-26 | 2017-11-03 | 삼성전자주식회사 | 반도체 메모리 장치 및 이의 동작 방법 |
US20170324425A1 (en) * | 2016-05-06 | 2017-11-09 | Infineon Technologies Ag | Embedded parity matrix generator |
CN107068194A (zh) * | 2017-04-20 | 2017-08-18 | 聚辰半导体(上海)有限公司 | 一种应用在eeprom上的错误纠正编码及相应的eeprom |
KR20190031787A (ko) | 2017-09-18 | 2019-03-27 | 삼성전자주식회사 | 병렬 리드-모디파이-라이트 동작을 수행하는 메모리 장치 |
Family Cites Families (38)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06342405A (ja) | 1993-06-01 | 1994-12-13 | Nec Corp | ファイル・システム |
JP3270959B2 (ja) | 1993-10-05 | 2002-04-02 | 株式会社日立製作所 | ディスクアレイ装置におけるパリティ格納方法およびディスクアレイ装置 |
JPH11212877A (ja) | 1998-01-28 | 1999-08-06 | Nec Kofu Ltd | 記憶装置 |
KR100300175B1 (ko) | 1998-09-17 | 2001-10-27 | 서평원 | 인쇄회로기판에다운로드하는방법 |
JP2000259496A (ja) | 1999-03-08 | 2000-09-22 | Nec Kofu Ltd | 記憶装置 |
JP2001337759A (ja) | 2000-05-24 | 2001-12-07 | Fuji Xerox Co Ltd | ディスクアレイ装置 |
JP4877894B2 (ja) * | 2001-07-04 | 2012-02-15 | ルネサスエレクトロニクス株式会社 | 半導体装置 |
KR100423812B1 (ko) | 2001-12-20 | 2004-03-22 | 한국전자통신연구원 | 디스크 캐쉬메모리 제어기 및 패리티 연산장치를 구비한알에이아이디 제어기 및 패리티 연산방법 |
US7100097B2 (en) | 2002-07-16 | 2006-08-29 | Hewlett-Packard Development Company, L.P. | Detection of bit errors in maskable content addressable memories |
JP4336168B2 (ja) | 2003-09-08 | 2009-09-30 | 株式会社ルネサステクノロジ | Ecc機能付き半導体記憶装置 |
US7191379B2 (en) | 2003-09-10 | 2007-03-13 | Hewlett-Packard Development Company, L.P. | Magnetic memory with error correction coding |
US7188303B2 (en) * | 2003-12-29 | 2007-03-06 | Intel Corporation | Method, system, and program for generating parity data |
KR100634414B1 (ko) | 2004-09-06 | 2006-10-16 | 삼성전자주식회사 | 에러 검출용 패러티 발생기를 구비한 낸드 플래시 메모리 장치 및 그것의 에러 검출 방법 |
US7392428B2 (en) * | 2004-11-19 | 2008-06-24 | International Business Machines Corporation | Method and system for recovering from abnormal interruption of a parity update operation in a disk array system |
JP4643334B2 (ja) * | 2005-03-31 | 2011-03-02 | 富士通セミコンダクター株式会社 | 半導体記憶装置 |
US7467335B2 (en) | 2005-07-01 | 2008-12-16 | Alcatel-Lucent Usa Inc. | Method and apparatus for synchronizing data channels using an alternating parity deskew channel |
TWI309768B (en) * | 2005-09-06 | 2009-05-11 | Realtek Semiconductor Corp | Error correction apparatus capable of raising memory bandwidth utilization efficiency and related method thereof |
US7954034B1 (en) * | 2005-09-30 | 2011-05-31 | Emc Corporation | Method of and system for protecting data during conversion from an ECC protection scheme to a parity protection scheme |
JP4469783B2 (ja) * | 2005-11-28 | 2010-05-26 | 株式会社東芝 | メモリ保護装置、メモリ保護システムおよびメモリ保護方法 |
JP4643479B2 (ja) * | 2006-03-22 | 2011-03-02 | 株式会社東芝 | アクセス制御装置、アクセス制御システム、プロセッサ、アクセス制御方法およびメモリアクセス制御方法 |
US7945840B2 (en) | 2007-02-12 | 2011-05-17 | Micron Technology, Inc. | Memory array error correction apparatus, systems, and methods |
KR100855979B1 (ko) | 2007-02-13 | 2008-09-02 | 삼성전자주식회사 | 바이트 마스킹 동작을 위한 반도체 메모리 장치 및 패리티데이터 생성 방법 |
KR101472797B1 (ko) * | 2007-07-16 | 2014-12-15 | 삼성전자주식회사 | 데이터를 읽거나 쓰기 위한 방법 및 장치 |
US8799743B2 (en) * | 2008-10-28 | 2014-08-05 | Micron Technology, Inc. | Error correction in multiple semiconductor memory units |
JP2010123156A (ja) | 2008-11-17 | 2010-06-03 | Elpida Memory Inc | 半導体記憶装置及びその制御方法 |
US8769188B2 (en) * | 2009-11-18 | 2014-07-01 | Mediatek Inc. | Nonvolatile memory controller and method for writing data to nonvolatile memory |
KR101079367B1 (ko) | 2010-01-13 | 2011-11-02 | 성균관대학교산학협력단 | 플래시 메모리를 사용하는 raid 저장 장치에서 패리티 데이터 관리 방법 및 그 장치 |
KR101623119B1 (ko) | 2010-02-01 | 2016-05-20 | 삼성전자주식회사 | 솔리드 스테이트 드라이브의 에러 제어 방법 |
JP4940322B2 (ja) | 2010-03-16 | 2012-05-30 | 株式会社東芝 | 半導体メモリ映像蓄積再生装置及びデータ書込み/読出し方法 |
JP2011198272A (ja) * | 2010-03-23 | 2011-10-06 | Toshiba Corp | 半導体記憶装置および半導体記憶装置の制御方法 |
JP2012022422A (ja) | 2010-07-13 | 2012-02-02 | Panasonic Corp | 半導体記録再生装置 |
US9058288B2 (en) * | 2011-04-03 | 2015-06-16 | Apple Inc. | Redundant storage in non-volatile memory by storing redundancy information in volatile memory |
KR101249956B1 (ko) | 2011-05-20 | 2013-04-03 | 한밭대학교 산학협력단 | 세탁물 건조장치 및 건조방법 |
KR20120129549A (ko) | 2011-05-20 | 2012-11-28 | 송권호 | 향기가 배출되는 의자 |
US9444496B2 (en) * | 2012-04-04 | 2016-09-13 | University Of Southern California | Correctable parity protected memory |
JP5933755B2 (ja) * | 2012-04-27 | 2016-06-15 | 株式会社日立製作所 | ストレージシステム及びストレージ制御装置 |
US9619318B2 (en) * | 2013-02-22 | 2017-04-11 | Intel Deutschland Gmbh | Memory circuits, method for accessing a memory and method for repairing a memory |
WO2014205590A1 (en) * | 2013-06-24 | 2014-12-31 | Micron Technology, Inc. | Circuits, apparatuses, and methods for correcting data errors |
-
2013
- 2013-11-05 US US14/071,771 patent/US9311181B2/en active Active
- 2013-11-06 TW TW102140195A patent/TWI627535B/zh active
- 2013-11-06 DE DE102013112195.0A patent/DE102013112195A1/de active Pending
- 2013-11-13 JP JP2013235041A patent/JP2014099174A/ja active Pending
- 2013-11-15 CN CN201310575217.0A patent/CN103824599B/zh active Active
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI746845B (zh) * | 2017-08-10 | 2021-11-21 | 南韓商三星電子股份有限公司 | 用於儲存資料的系統以及方法 |
Also Published As
Publication number | Publication date |
---|---|
DE102013112195A1 (de) | 2014-05-15 |
CN103824599A (zh) | 2014-05-28 |
CN103824599B (zh) | 2018-06-05 |
US20140136920A1 (en) | 2014-05-15 |
TWI627535B (zh) | 2018-06-21 |
US9311181B2 (en) | 2016-04-12 |
JP2014099174A (ja) | 2014-05-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI627535B (zh) | 記憶體裝置中改變部分資料的記憶體控制器以及其改變部分資料的方法 | |
US10657049B2 (en) | Memory system and operating method thereof | |
US9197247B2 (en) | Memory system and error correction method | |
US20180102172A1 (en) | Memory device and operating method of the memory device | |
US10503414B2 (en) | Memory system and method for operating the memory system | |
CN110399311A (zh) | 存储器系统及该存储器系统的操作方法 | |
US20180101454A1 (en) | Memory system and operation method for the same | |
US10514863B2 (en) | Memory system and operation method for the same | |
US20180068736A1 (en) | Memory system and method for operating the memory system | |
US10001937B2 (en) | Memory system and operating method thereof | |
US10943634B2 (en) | Read latency improvement method and memory system thereof | |
KR20180058328A (ko) | 메모리 시스템 및 그의 동작 방법 | |
US9946586B2 (en) | Memory system and operating method thereof | |
US10348335B2 (en) | Miscorrection avoidance for turbo product codes | |
US10942805B2 (en) | Error correcting circuit performing error correction on user data and error correcting method using the error correcting circuit | |
KR102041874B1 (ko) | 메모리 장치에 저장된 부분 데이터를 변경하는 메모리 컨트롤러 및 그것의 부분 데이터 변경 방법 | |
US11281381B2 (en) | Storage node of distributed storage system and method of operating the same | |
KR20180058327A (ko) | 컨트롤러, 메모리 시스템 및 그의 동작 방법 | |
KR102002044B1 (ko) | 새 패러티를 생성하기 위한 에러 정정 코드 인코더를 포함하는 메모리 컨트롤러와 메모리 시스템 | |
US10141072B2 (en) | Efficient encoder based on modified RU algorithm | |
CN108664408A (zh) | 存储系统及其操作方法 | |
CN108073469B (zh) | 用于通用产品代码的数据映射方案 | |
KR102248207B1 (ko) | 저장 장치 및 그것의 동작 방법 | |
CN109933454A (zh) | 存储器系统及其操作方法 |