CN102063266A - 非易失存储器控制器与用于将当前数据写入非易失存储器的方法 - Google Patents
非易失存储器控制器与用于将当前数据写入非易失存储器的方法 Download PDFInfo
- Publication number
- CN102063266A CN102063266A CN2010101312924A CN201010131292A CN102063266A CN 102063266 A CN102063266 A CN 102063266A CN 2010101312924 A CN2010101312924 A CN 2010101312924A CN 201010131292 A CN201010131292 A CN 201010131292A CN 102063266 A CN102063266 A CN 102063266A
- Authority
- CN
- China
- Prior art keywords
- nonvolatile memory
- feature
- data
- current data
- raw data
- Prior art date
- Legal status (The legal status 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 status listed.)
- Pending
Links
Images
Classifications
-
- 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
-
- 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/0608—Saving storage space on storage systems
-
- 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/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- 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/0616—Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
-
- 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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
- G06F3/0641—De-duplication techniques
-
- 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]
-
- 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
- H03M13/095—Error detection codes other than CRC and single parity bit codes
- H03M13/096—Checksums
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7209—Validity control, e.g. using flags, time stamps or sequence numbers
Abstract
一种非易失存储器控制器以及用于将当前数据写入非易失存储器的方法。其中非易失存储器控制器包括:特征计算电路,用于根据当前数据计算第一特征;特征缓冲器,用于储存多个特征并输出第二特征,第二特征相应于储存于非易失存储器中的原始数据,原始数据与当前数据具有相同的逻辑地址;特征比较电路,用于决定第一特征与第二特征是否相同;数据比较电路,用于当第一特征与第二特征相同时决定当前数据与原始数据是否相同;以及非易失存储器接口电路,用于当特征比较电路决定第一特征与第二特征不同或数据比较电路决定当前数据与原始数据不同时将当前数据写入非易失存储器。本发明的效果之一在于可以提高非易失存储器装置的性能。
Description
技术领域
本发明涉及非易失(nonvolatile)存储器控制器,尤其涉及非易失存储器控制器以及用于将当前数据写入非易失存储器的方法。
背景技术
非易失存储器是非易失性的存储器,能够电擦除或重程序化(reprogram)。非易失存储器主要应用于存储器卡与USB非易失存储器驱动器中,用于计算器与其他数字产品之间的普通储存与传输。图1为主机102与非易失存储器装置104的示意图,非易失存储器装置104为主机102储存数据。一个实施例中,主机102为计算器。非易失存储器装置104包括非易失存储器控制器112与非易失存储器114。非易失存储器控制器112用作主机102与非易失存储器114之间的接口并为主机102存取非易失存储器114中储存的数据。当主机102要将数据储存至非易失存储器104时,主机102将数据传输至非易失存储器控制器112,然后非易失存储器控制器112将从主机102接收的数据写入非易失存储器114。当主机要从非易失存储器装置104获取数据时,非易失存储器控制器112从非易失存储器114获取数据,然后将获取的数据传输至主机102。
非易失存储器装置104为主机102储存数据。因此主机102可以从非易失存储器装置104获取原始数据,将原始数据做轻微改动以获得当前数据,并将当前数据储存至非易失存储器装置104中。在这种情况下,只有当前数据的改动部分与原始数据不同,因此当前数据的未改动部分与原始数据相同。然而,传统非易失存储器控制器112不将未改动数据部分与改动数据部分加以区分,直接将所有当前数据写入非易失存储器114。由于未改动数据部分的写入操作需要额外的时间,因此延迟了整个写入过程,非易失存储器装置104的性能降低了。另外,由于将未改动数据部分写入非易失存储器114两次,未改动数据部分的非必要复制使得非易失存储器114的使用期限减少了。
为了避免上述缺陷,提供了一种将数据写入非易失存储器的方法。图2为将数据写入非易失存储器114的方法200的流程示意图。非易失存储器控制器112从主机102接收当前数据(步骤202),并根据当前数据计算第一错误校正码(步骤203)。接着,非易失存储器控制器112从非易失存储器114读取原始数据的第二错误校正码(步骤204),其中原始数据的逻辑地址与当前数据的相同。接着非易失存储器控制器112将第一错误校正码与第二错误校正码进行比较(步骤206)。步骤208中,判断第一错误校正码与第二错误校正码是否相同。若第一错误校正码与第二错误校正码相同,则决定当前数据为未改动数据部分并且不将当前数据写入非易失存储器114。若第一错误校正码与第二错误校正码不同,则决定当前数据为改动数据部分并且非易失存储器控制器112将当前数据写入非易失存储器114(步骤210)。若主机将更多的当前数据发送至非易失存储器控制器112,则非易失存储器控制器112重复步骤202~210直到主机102发送的所有数据都被处理。
方法200能够将一部分未改动数据与改动数据加以区分,从而降低了未改动数据的复制。然而,方法200仍然存在缺陷。首先,非易失存储器控制器112需要从非易失存储器114读取原始数据的错误校正码,从而延长了整个数据写入过程所需的时间并降低了非易失存储器装置104的性能。另外,尽管原始数据与当前数据不同,但是原始数据的第二错误校正码可能与当前数据的第一错误校正码相同。因此非易失存储器控制器112可能会根据第一错误校正码与第二错误校正码的比较结果错误的跳过将当前数据写入非易失存储器114。因此需要一种用于将数据写入非易失存储器的新方法。
发明内容
有鉴于此,本发明提供非易失存储器控制器以及用于将当前数据写入非易失存储器的方法。
一种非易失存储器控制器,从主机接收当前数据以写入非易失存储器,所述非易失存储器控制器包括:特征计算电路,用于根据所述当前数据计算第一特征;特征缓冲器,用于储存多个特征并输出第二特征,其中所述多个特征相应于储存于所述非易失存储器中的数据,所述第二特征相应于储存于所述非易失存储器中的原始数据,所述原始数据与所述当前数据具有相同的逻辑地址;特征比较电路,用于决定所述第一特征与所述第二特征是否相同;数据比较电路,用于当所述第一特征与所述第二特征相同时决定所述当前数据与所述原始数据是否相同;以及非易失存储器接口电路,用于当所述特征比较电路决定所述第一特征与所述第二特征不同或所述数据比较电路决定所述当前数据与所述原始数据不同时将所述当前数据写入所述非易失存储器。
一种用于将当前数据写入非易失存储器的方法,包括:从主机接收所述当前数据;根据所述当前数据计算第一特征;获得相应于储存于所述非易失存储器中的原始数据的第二特征,其中所述原始数据与所述当前数据具有相同的逻辑地址;决定所述第一特征与所述第二特征是否相同;当所述第一特征与所述第二特征相同时决定所述当前数据与所述原始数据是否相同;以及当决定所述第一特征与所述第二特征不同或决定所述当前数据与所述原始数据不同时将所述当前数据写入所述非易失存储器。
一种非易失存储器控制器,从主机接收当前数据用于写入非易失存储器,所述非易失存储器控制器包括:特征计算电路,用于根据所述当前数据计算第一特征;特征缓冲器,用于储存多个特征并输出第二特征,其中所述多个特征相应于储存于所述非易失存储器中的数据,所述第二特征相应于储存于所述非易失存储器中的原始数据,所述原始数据与所述当前数据具有相同的逻辑地址;特征比较电路,用于决定所述第一特征与所述第二特征是否相同;非易失存储器接口电路,用于当所述特征比较电路决定所述第一特征与所述第二特征不同时将所述当前数据写入所述非易失存储器。
一种用于将当前数据写入非易失存储器的方法,包括:从主机接收所述当前数据;从存储器获取原始数据,所述原始数据与所述当前数据具有相同的逻辑地址;将所述当前数据与所述原始数据进行比较;以及当所述当前数据与所述原始数据不同时,将所述当前数据写入所述存储器。
一种非易失存储器控制器,从主机接收当前数据用于写入非易失存储器,所述非易失存储器控制器包括:当前数据缓冲器,用于储存所述当前数据;原始数据缓冲器,用于储存原始数据,其中所述原始数据从所述非易失存储器获取,所述原始数据与所述当前数据具有相同的逻辑地址;数据比较电路,用于将所述原始数据与所述当前数据进行比较以决定所述原始数据与所述当前数据是否相同;以及非易失存储器接口电路,用于当所述当前数据与所述原始数据不同时将所述当前数据写入所述非易失存储器。
本发明的效果之一在于可以提高非易失存储器装置的性能。
附图说明
图1为主机与非易失存储器装置的示意图。
图2为将数据写入非易失存储器的方法的流程示意图。
图3为存储器装置的方块示意图。
图4为将当前数据写入非易失存储器的方法的流程示意图。
图5为根据本发明另一个实施例的存储器装置的方块示意图。
图6为根据本发明另一个实施例的方法的流程示意图。
图7为根据本发明另一个实施例的存储器装置的方块示意图。
图8为根据本发明另一个实施例的方法的流程示意图。
图9A为根据本发明另一个实施例的非易失存储器装置的方块示意图。
图9B为根据本发明另一个实施例的非易失存储器装置的方块示意图。
图10为根据本发明另一个实施例的非易失存储器装置的方块示意图。
具体实施方式
为了让本发明之目的、特征、及优点能更明显易懂,下文特举较佳实施例做详细之说明。实施例是为说明本发明之用,并非用以限制本发明。本发明的保护范围以所附权利要求为准。
图3为存储器装置300的方块示意图。存储器装置300为主机储存数据,并且存储器装置300包括非易失存储器控制器302与非易失存储器304。非易失存储器控制器302控制主机(图未示)与非易失存储器304之间的数据读取与写入。当主机要从存储器装置300获取数据时,非易失存储器控制器302从非易失存储器304获取数据并将获取的数据传输至主机。当主机要将数据储存至存储器装置300时,主机将数据传输至非易失存储器控制器302,并且非易失存储器控制器302决定将从主机接收的数据写入非易失存储器304的方式。
当主机要将当前数据写入非易失存储器304,当前数据可通过改动之前储存于非易失存储器304中的原始数据而产生,并且当前数据的很大未改动部分与非易失存储器304中储存的原始数据相同。因此,非易失存储器控制器302识别当前数据的未改动数据部分以避免未改动数据部分的复制。
一个实施例中,非易失存储器控制器302包括特征(signature)缓冲器312、特征计算电路314、特征比较电路316、数据比较电路318以及非易失存储器接口电路320。特征缓冲器312储存多个特征,所述多个特征相应于储存于非易失存储器304中的数据。每个特征从储存于非易失存储器304中的相应数据获得并且作为相应数据的识别。相应于不同数据的特征相同的可能性很小。因此非易失存储器控制器302能够大致决定从主机接收的当前数据是否与储存于非易失存储器304中的原始数据不同。一个实施例中,特征是储存于非易失存储器304中的相应数据的查核码(checksum)。另一个实施例中,特征是储存于非易失存储器304中的相应数据的错误校正码。
图4为将当前数据写入非易失存储器304的方法400的流程示意图。非易失存储器控制器302根据方法400运行以决定是否将当前数据写入非易失存储器304。
请一并参考图3及图4,当存储器装置300从主机接收当前数据D(步骤402),特征计算电路314根据当前数据D计算第一特征S(步骤404)。接着特征缓冲器312输出相应于原始数据D′的第二特征S′(即获得相应于原始数据D′的第二特征S′),其中原始数据D′储存于非易失存储器304中并且与当前数据D的逻辑地址相同(步骤406)。一个实施例中,特征缓存器312根据储存于非易失存储器304中的相应数据的逻辑地址储存特征。当非易失存储器控制器302接收当前数据D,特征缓冲器312可根据当前数据D的逻辑地址从储存的特征中选择相应于原始数据D′的第二特征S′并输出第二特征S′(即获得第二特征S′)。
特征比较电路316将第一特征S与第二特征S′进行比较(步骤408),以决定第一特征S与第二特征S′是否相同(步骤410)。当第一特征S与第二特征S′不同时,当前数据D一定与原始数据D′不同,特征比较电路316发送比较结果C1以指示非易失存储器接口电路320将当前数据D写入非易失存储器304(步骤418)。当第一特征S与第二特征S′相同时,尽管当前数据D与原始数据D′相同的概率很大,当前数据仍有很小的机会会与原始数据D′不同。因此非易失存储器控制器302需要将当前数据D与原始数据D′进行物理比较。
特征比较电路316发送比较结果C1以指示非易失存储器接口电路320从非易失存储器304读取原始数据D′(步骤412)。非易失存储器接口电路320发送原始数据D′至数据比较电路318,数据比较电路318将当前数据D与原始数据D′进行比较(步骤414),以决定当前数据D与原始数据D′是否相同(步骤416)。当当前数据D与原始数据D′相同时,跳过当前数据D的写入以避免数据复制,因此可减少整个数据写入过程所需的时间并延长非易失存储器304的使用期限。当当前数据D与原始数据D′不同时,数据比较电路318产生比较结果信号C2,以指示非易失存储器接口电路320将当前数据D写入非易失存储器304(步骤418)。因此,只有当特征比较电路316决定第一特征S与第二特征S′不同或当数据比较电路318决定当前数据D与原始数据D′不同时,非易失存储器接口电路320才将当前数据D写入非易失存储器304。只有当主机发送当前数据以写入非易失存储器304,非易失存储器控制器302才继续执行步骤402-418。
一个实施例中,非易失存储器接口电路320将当前数据D写入非易失存储器304后,根据当前数据D的逻辑地址将由特征计算电路314计算得到的第一特征S储存至特征缓冲器。因此,储存于非易失存储器304中的所有数据都具有储存于特征缓冲器312中的相应特征。与图2所示方法200相比,非易失存储器控制器302将相应原始数据的特征储存于特征缓冲器312中。当非易失存储器控制器302从主机接收当前数据D时,非易失存储器控制器302直接从特征缓冲器312获取原始数据D′的特征S′并将当前数据的特征S与原始数据D′的特征S′进行比较而不是从非易失存储器304读取原始数据D′。因此,减少了整个数据写入过程所需的时间,提高了存储器装置300的性能。另外,若原始数据与当前数据不同,原始数据的错误校正码会与当前数据的错误校正码相同,则传统方法200会错误的跳过当前数据的写入。然而,非易失存储器控制器302在特征S与特征S′相同时将当前数据与原始数据D′进行比较,从而避免错误的跳过数据写入。
图5为根据本发明另一个实施例的存储器装置500的方块示意图。存储器装置500包括非易失存储器控制器502与非易失存储器504。非易失存储器控制器502大致与图3中非易失存储器控制器302相同,区别在于非易失存储器控制器502不包括数据比较电路318。一个实施例中,非易失存储器控制器502包括特征缓冲器512、特征计算电路514、特征比较电路516以及非易失存储器接口电路520。图6为根据本发明另一个实施例的方法600的流程示意图,方法600用于将当前数据写入非易失存储器504,并且非易失存储器控制器502根据方法600而运行。
请一并参考图5及图6,当非易失存储器控制器502从主机接收当前数据D(步骤602),特征计算电路514计算当前数据D的第一特征S(步骤604)。特征缓冲器512储存多个特征,所述多个特征相应于储存于非易失存储器504中的数据。特征缓冲器512根据当前数据D的逻辑地址从储存的多个特征中选择第二特征S′并输出第二特征S′(即获得第二特征S′),第二特征S′相应于储存于非易失存储器504中的原始数据D′,原始数据D′与当前数据D具有相同的逻辑地址(步骤606)。
接着,特征比较电路516将第一特征S与第二特征S′进行比较(步骤608),以决定第一特征S与第二特征S′是否相同(步骤610)。若第一特征S与第二特征S′不同,则特征比较电路516产生比较结果信号C以指示非易失存储器接口电路520将当前数据D写入非易失存储器504(步骤612)。若第一特征S与第二特征S′相同,则跳过当前数据D的写入。因此,只有当特征比较电路516决定第一特征S与第二特征S′不同,非易失存储器接口电路520才将当前数据D写入非易失存储器504。只有当主机发送当前数据以写入非易失存储器504,非易失存储器控制器502才继续执行步骤602-614。
图7为根据本发明另一个实施例的存储器装置700的方块示意图。存储器装置700包括非易失存储器控制器702与非易失存储器704。非易失存储器704储存数据。非易失存储器控制器702耦接于主机与非易失存储器704之间并且根据主机的指示存取储存于非易失存储器704中的数据。一个实施例中,非易失存储器控制器702包括当前数据缓冲器712、地址转换电路714、原始数据缓冲器716、数据比较电路718以及非易失存储器接口电路720。图8为根据本发明另一个实施例的方法800的流程示意图,方法800用于将当前数据写入非易失存储器704,并且非易失存储器控制器702根据方法800而运行。
请一并参考图7及图8,非易失存储器控制器702从主机获得新指令(步骤802),接着非易失存储器控制器702从新指令获得当前数据D1的逻辑地址A1(步骤804)。非易失存储器控制器702从主机接收将被写入非易失存储器704的当前数据D1(步骤805),并将当前数据D1储存于当前数据缓冲器712中。非易失存储器控制器702经由非易失存储器接口电路720从非易失存储器704获取原始数据D2,原始数据D2的逻辑地址与当前数据D1的逻辑地址A1相同(步骤806),非易失存储器控制器702接着将原始数据D2储存于原始数据缓冲器716中。一个实施例中,地址转换电路714决定相应于逻辑地址A1的物理地址A2,接着非易失存储器接口电路720指示非易失存储器704以根据物理地址A2从非易失存储器704获取原始数据D2。
接着数据比较电路718将储存于当前数据缓冲器712中的当前数据D1与储存于原始数据缓冲器716中的原始数据D2进行比较(步骤808),以决定当前数据D1与原始数据D2是否相同(步骤810)。若数据比较电路718决定当前数据D1与原始数据D2相同,则非易失存储器控制器702不将当前数据D1写入非易失存储器704,并且当前数据缓冲器712将储存的当前数据D1擦除。若数据比较电路718决定当前数据D1与原始数据D2不同,则数据比较电路718发送控制信号C至非易失存储器接口电路720,非易失存储器接口电路720指示非易失存储器704以将当前数据D1写入非易失存储器704(步骤812)。只有当主机继续发送当前数据以写入非易失存储器704,非易失存储器控制器702才继续执行步骤802-812。
图7所示非易失存储器装置700的非易失存储器控制器702可具有其他种类的电路结构。图9A为根据本发明另一个实施例的非易失存储器装置900的方块示意图。与非易失存储器控制器702类似,非易失存储器控制器902包括当前数据缓冲器912、原始数据缓冲器916、地址转换电路914、数据比较电路918以及非易失存储器接口电路920。地址转换电路914相应于逻辑地址A1决定物理地址A2,并发送物理地址A2至非易失存储器接口电路920。非易失存储器接口电路920指示非易失存储器904以根据物理地址A2从非易失存储器904获取原始数据D2。当前数据缓冲器912、原始数据缓冲器916以及数据比较电路918分别与图7中的当前数据缓冲器712、原始数据缓冲器716以及数据比较电路718具有相同功能。
图9B为根据本发明另一个实施例的非易失存储器装置950的方块示意图。非易失存储器装置950除了包括非易失存储器控制器952与非易失存储器954,还包括微处理器980。非易失存储器控制器952包括当前数据缓冲器962、原始数据缓冲器966、数据比较电路968以及非易失存储器接口电路970,但缺少用于地址转换的地址转换电路。当非易失存储器装置950从主机接收当前数据D1时,微处理器980从主机接收逻辑地址A1。微处理器相应于逻辑地址A1决定物理地址A2,并发送物理地址A2至非易失存储器控制器952的非易失存储器接口电路970。非易失存储器接口电路970指示非易失存储器954以根据物理地址A2从非易失存储器954获取原始数据D2。当前数据缓冲器962、原始数据缓冲器966以及数据比较电路968分别与图7中的当前数据缓冲器712、原始数据缓冲器716以及数据比较电路718具有相同功能。
图10为根据本发明另一个实施例的非易失存储器装置1000的方块示意图。非易失存储器装置1000包括非易失存储器控制器1002与非易失存储器1004。非易失存储器控制器1002包括缓冲器1012、地址转换电路1014、数据比较电路1018以及非易失存储器接口电路1020。非易失存储器控制器1002从主机接收将被写入非易失存储器1004的当前数据D1,并且将当前数据D1储存于缓冲器1012中。当非易失存储器控制器1002经由非易失存储器接口电路1020从非易失存储器1004获取原始数据D2时,也将原始数据D2储存于缓冲器1012中,其中原始数据D2与当前数据D1具有相同的逻辑地址A1。地址转换电路1014、数据比较电路1018以及非易失存储器接口电路与图7中的地址转换电路714、数据比较电路718以及非易失存储器接口电路720具有相同功能。
上述的实施例仅用来例举本发明的实施态样,以及阐释本发明的技术特征,并非用来限制本发明的范畴。任何所属技术领域技术人员可依据本发明的精神轻易完成的改变或均等性的安排均属于本发明所主张的范围,本发明的权利范围应以权利要求为准。
Claims (22)
1.一种非易失存储器控制器,用于从主机接收当前数据以写入非易失存储器,其特征在于,所述非易失存储器控制器包括:
特征计算电路,用于根据所述当前数据计算第一特征;
特征缓冲器,用于储存多个特征并输出第二特征,其中所述多个特征相应于储存于所述非易失存储器中的数据,所述第二特征相应于储存于所述非易失存储器中的原始数据,所述原始数据与所述当前数据具有相同的逻辑地址;
特征比较电路,用于决定所述第一特征与所述第二特征是否相同;
数据比较电路,用于当所述第一特征与所述第二特征相同时决定所述当前数据与所述原始数据是否相同;以及
非易失存储器接口电路,用于当所述特征比较电路决定所述第一特征与所述第二特征不同或所述数据比较电路决定所述当前数据与所述原始数据不同时将所述当前数据写入所述非易失存储器。
2.根据权利要求1所述的非易失存储器控制器,其特征在于,当所述数据比较电路决定所述当前数据与所述原始数据相同时,所述非易失存储器接口电路不将所述当前数据写入所述非易失存储器。
3.根据权利要求1所述的非易失存储器控制器,其特征在于,所述特征缓冲器根据储存于所述非易失存储器中的所述数据的逻辑地址储存所述多个特征,并根据所述当前数据的逻辑地址从所述多个特征选择相应于所述原始数据的所述第二特征。
4.根据权利要求1所述的非易失存储器控制器,其特征在于,所述第一特征、所述第二特征以及所述多个特征分别为所述当前数据、所述原始数据以及储存于所述非易失存储器中的所述数据的查核码或错误校正码。
5.根据权利要求3所述的非易失存储器控制器,其特征在于,所述非易失存储器接口电路将所述当前数据写入所述非易失存储器后,根据所述当前数据的逻辑地址将由所述特征计算电路计算的所述第一特征储存至所述特征缓冲器。
6.一种用于将当前数据写入非易失存储器的方法,其特征在于,包括:
从主机接收所述当前数据;
根据所述当前数据计算第一特征;
获得相应于储存于所述非易失存储器中的原始数据的第二特征,其中所述原始数据与所述当前数据具有相同的逻辑地址;
决定所述第一特征与所述第二特征是否相同;
当所述第一特征与所述第二特征相同时决定所述当前数据与所述原始数据是否相同;以及
当决定所述第一特征与所述第二特征不同或决定所述当前数据与所述原始数据不同时将所述当前数据写入所述非易失存储器。
7.根据权利要求6所述的用于将当前数据写入非易失存储器的方法,其特征在于,将相应于储存于所述非易失存储器中的数据的多个特征储存于特征缓冲器中,并且从所述特征缓冲器获得所述第二特征。
8.根据权利要求7所述的用于将当前数据写入非易失存储器的方法,其中所述特征缓冲器根据储存于所述非易失存储器中的所述数据的逻辑地址储存所述多个特征,所述第二特征的获得包括根据所述当前数据的逻辑地址从所述多个特征选择所述第二特征。
9.根据权利要求6所述的用于将当前数据写入非易失存储器的方法,其特征在于,所述方法进一步包括,当决定所述当前数据与所述原始数据相同时跳过将所述当前数据写入所述非易失存储器。
10.根据权利要求6所述的用于将当前数据写入非易失存储器的方法,其特征在于,所述第一特征、所述第二特征以及所述多个特征分别为所述当前数据、所述原始数据以及储存于所述非易失存储器中的所述数据的查核码或错误校正码。
11.根据权利要求8所述的用于将当前数据写入非易失存储器的方法,其特征在于,所述方法进一步包括,所述非易失存储器接口电路将所述当前数据写入所述非易失存储器后,根据所述当前数据的逻辑地址将所述第一特征储存至所述特征缓冲器。
12.一种非易失存储器控制器,用于从主机接收当前数据用于写入非易失存储器,其特征在于,所述非易失存储器控制器包括:
特征计算电路,用于根据所述当前数据计算第一特征;
特征缓冲器,用于储存多个特征并输出第二特征,其中所述多个特征相应于储存于所述非易失存储器中的数据,所述第二特征相应于储存于所述非易失存储器中的原始数据,所述原始数据与所述当前数据具有相同的逻辑地址;
特征比较电路,用于决定所述第一特征与所述第二特征是否相同;
非易失存储器接口电路,用于当所述特征比较电路决定所述第一特征与所述第二特征不同时将所述当前数据写入所述非易失存储器。
13.根据权利要求12所述的非易失存储器控制器,其特征在于,当所述特征比较电路决定所述第一特征与所述第二特征相同时,所述非易失存储器接口电路不将所述当前数据写入所述非易失存储器。
14.根据权利要求12所述的非易失存储器控制器,其特征在于,所述特征缓冲器根据储存于所述非易失存储器中的所述数据的逻辑地址储存所述多个特征,并根据所述当前数据的逻辑地址从所述多个特征选择相应于所述原始数据的所述第二特征。
15.根据权利要求12所述的非易失存储器控制器,其特征在于,所述第一特征、所述第二特征以及所述多个特征分别为所述当前数据、所述原始数据以及储存于所述非易失存储器中的所述数据的查核码或错误校正码。
16.根据权利要求14所述的非易失存储器控制器,其特征在于,所述非易失存储器接口电路将所述当前数据写入所述非易失存储器后,根据所述当前数据的逻辑地址将由所述特征计算电路计算的所述第一特征储存至所述特征缓冲器。
17.一种用于将当前数据写入非易失存储器的方法,其特征在于,包括:
从主机接收所述当前数据;
从存储器获取原始数据,所述原始数据与所述当前数据具有相同的逻辑地址;
将所述当前数据与所述原始数据进行比较;以及
当所述当前数据与所述原始数据不同时,将所述当前数据写入所述存储器。
18.根据权利要求17所述的用于将当前数据写入非易失存储器的方法,其特征在于,所述原始数据的获取进一步包括:
获得所述当前数据的逻辑地址;
决定相应于所述逻辑地址的物理地址;以及
根据所述物理地址从所述存储器获取所述原始数据。
19.根据权利要求17所述的用于将当前数据写入非易失存储器的方法,其特征在于,所述方法进一步包括:
当所述当前数据与所述原始数据相同时,擦除缓冲器中的所述当前数据而不将所述当前数据写入所述存储器。
20.一种非易失存储器控制器,用于从主机接收当前数据用于写入非易失存储器,其特征在于,所述非易失存储器控制器包括:
当前数据缓冲器,用于储存所述当前数据;
原始数据缓冲器,用于储存原始数据,其中所述原始数据从所述非易失存储器获取,所述原始数据与所述当前数据具有相同的逻辑地址;
数据比较电路,用于将所述原始数据与所述当前数据进行比较以决定所述原始数据与所述当前数据是否相同;以及
非易失存储器接口电路,用于当所述当前数据与所述原始数据不同时将所述当前数据写入所述非易失存储器。
21.根据权利要求20所述的非易失存储器控制器,其特征在于,所述非易失存储器控制器进一步包括:
地址转换电路,用于相应于所述当前数据的逻辑地址决定物理地址;
其中所述非易失存储器控制器进一步指示所述非易失存储器以根据所述物理地址从所述非易失存储器获取所述原始数据。
22.根据权利要求20所述的非易失存储器控制器,其特征在于,当所述当前数据与所述原始数据相同时,所述非易失存储器接口电路不将所述当前数据写入所述非易失存储器。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/620,722 US8769188B2 (en) | 2009-11-18 | 2009-11-18 | Nonvolatile memory controller and method for writing data to nonvolatile memory |
US12/620,722 | 2009-11-18 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102063266A true CN102063266A (zh) | 2011-05-18 |
Family
ID=43998560
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2010101312924A Pending CN102063266A (zh) | 2009-11-18 | 2010-03-24 | 非易失存储器控制器与用于将当前数据写入非易失存储器的方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US8769188B2 (zh) |
CN (1) | CN102063266A (zh) |
TW (1) | TWI516917B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103761194A (zh) * | 2013-12-28 | 2014-04-30 | 华为技术有限公司 | 一种内存管理方法及装置 |
CN103824599A (zh) * | 2012-11-15 | 2014-05-28 | 三星电子株式会社 | 改变存储器装置中的部分数据的存储器控制器及其方法 |
CN103890731A (zh) * | 2011-09-21 | 2014-06-25 | 日立汽车系统株式会社 | 汽车用电子控制装置以及数据通信方法 |
CN103985411A (zh) * | 2013-02-07 | 2014-08-13 | 希捷科技有限公司 | 待调度验证的非易失性写入缓冲器数据保留 |
WO2014180124A1 (zh) * | 2013-05-09 | 2014-11-13 | 华为技术有限公司 | 一种数据读写方法、装置及系统 |
CN105144299A (zh) * | 2013-03-21 | 2015-12-09 | 日立汽车系统株式会社 | 电子控制装置以及数据改写方法 |
CN111406282A (zh) * | 2018-04-23 | 2020-07-10 | 华为技术有限公司 | 一种用于存储设备的存储器控制电路 |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102041874B1 (ko) * | 2012-11-15 | 2019-11-07 | 삼성전자주식회사 | 메모리 장치에 저장된 부분 데이터를 변경하는 메모리 컨트롤러 및 그것의 부분 데이터 변경 방법 |
US9639461B2 (en) | 2013-03-15 | 2017-05-02 | Sandisk Technologies Llc | System and method of processing of duplicate data at a data storage device |
DE102014112943B4 (de) | 2014-09-09 | 2018-03-08 | Fujitsu Ltd. | Modulares Computersystem und Servermodul |
US9594678B1 (en) | 2015-05-27 | 2017-03-14 | Pure Storage, Inc. | Preventing duplicate entries of identical data in a storage device |
US10297003B2 (en) | 2015-09-21 | 2019-05-21 | Qualcomm Incorporated | Efficient saving and restoring of context information for context switches |
EP3475864B1 (fr) * | 2016-06-27 | 2021-11-24 | E-Gloo Development | Boitier pour la gestion des informations techniques d'un site |
US20230244569A1 (en) * | 2022-01-28 | 2023-08-03 | Pure Storage, Inc. | Recover Corrupted Data Through Speculative Bitflip And Cross-Validation |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5754567A (en) * | 1996-10-15 | 1998-05-19 | Micron Quantum Devices, Inc. | Write reduction in flash memory systems through ECC usage |
CN1398404A (zh) * | 2000-02-11 | 2003-02-19 | 格姆普拉斯公司 | 用于非易失性存储器的受保护的实时写入 |
CN1945548A (zh) * | 2005-10-07 | 2007-04-11 | 日立环球储存科技荷兰有限公司 | 用于数据存储装置的功能测试方法和功能测试设备 |
US20090043944A1 (en) * | 2007-08-09 | 2009-02-12 | Timothy Chainer | Method, Apparatus And Computer Program Product Providing Energy Reduction When Storing Data In A Memory |
CN101419838A (zh) * | 2008-09-12 | 2009-04-29 | 中兴通讯股份有限公司 | 一种提高flash使用寿命的方法 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5638386A (en) | 1991-09-20 | 1997-06-10 | Hitachi, Ltd. | Recording apparatus |
US5428630A (en) | 1993-07-01 | 1995-06-27 | Quantum Corp. | System and method for verifying the integrity of data written to a memory |
US6728851B1 (en) | 1995-07-31 | 2004-04-27 | Lexar Media, Inc. | Increasing the memory performance of flash memory devices by writing sectors simultaneously to multiple flash memory devices |
JPH10198608A (ja) | 1997-01-08 | 1998-07-31 | Mitsubishi Electric Corp | メモリカード |
US5923682A (en) | 1997-01-29 | 1999-07-13 | Micron Technology, Inc. | Error correction chip for memory applications |
US5956743A (en) | 1997-08-25 | 1999-09-21 | Bit Microsystems, Inc. | Transparent management at host interface of flash-memory overhead-bytes using flash-specific DMA having programmable processor-interrupt of high-level operations |
US7012835B2 (en) * | 2003-10-03 | 2006-03-14 | Sandisk Corporation | Flash memory data correction and scrub techniques |
KR101472797B1 (ko) * | 2007-07-16 | 2014-12-15 | 삼성전자주식회사 | 데이터를 읽거나 쓰기 위한 방법 및 장치 |
US8352835B2 (en) * | 2009-06-10 | 2013-01-08 | International Business Machines Corporation | Data verification using checksum sidefile |
US20110041039A1 (en) * | 2009-08-11 | 2011-02-17 | Eliyahou Harari | Controller and Method for Interfacing Between a Host Controller in a Host and a Flash Memory Device |
-
2009
- 2009-11-18 US US12/620,722 patent/US8769188B2/en active Active
-
2010
- 2010-03-22 TW TW099108308A patent/TWI516917B/zh active
- 2010-03-24 CN CN2010101312924A patent/CN102063266A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5754567A (en) * | 1996-10-15 | 1998-05-19 | Micron Quantum Devices, Inc. | Write reduction in flash memory systems through ECC usage |
CN1398404A (zh) * | 2000-02-11 | 2003-02-19 | 格姆普拉斯公司 | 用于非易失性存储器的受保护的实时写入 |
CN1945548A (zh) * | 2005-10-07 | 2007-04-11 | 日立环球储存科技荷兰有限公司 | 用于数据存储装置的功能测试方法和功能测试设备 |
US20090043944A1 (en) * | 2007-08-09 | 2009-02-12 | Timothy Chainer | Method, Apparatus And Computer Program Product Providing Energy Reduction When Storing Data In A Memory |
CN101419838A (zh) * | 2008-09-12 | 2009-04-29 | 中兴通讯股份有限公司 | 一种提高flash使用寿命的方法 |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103890731B (zh) * | 2011-09-21 | 2016-10-12 | 日立汽车系统株式会社 | 汽车用电子控制装置以及数据通信方法 |
CN103890731A (zh) * | 2011-09-21 | 2014-06-25 | 日立汽车系统株式会社 | 汽车用电子控制装置以及数据通信方法 |
CN103824599A (zh) * | 2012-11-15 | 2014-05-28 | 三星电子株式会社 | 改变存储器装置中的部分数据的存储器控制器及其方法 |
TWI627535B (zh) * | 2012-11-15 | 2018-06-21 | 三星電子股份有限公司 | 記憶體裝置中改變部分資料的記憶體控制器以及其改變部分資料的方法 |
CN103824599B (zh) * | 2012-11-15 | 2018-06-05 | 三星电子株式会社 | 改变存储器装置中的部分数据的存储器控制器及其方法 |
CN103985411A (zh) * | 2013-02-07 | 2014-08-13 | 希捷科技有限公司 | 待调度验证的非易失性写入缓冲器数据保留 |
CN103985411B (zh) * | 2013-02-07 | 2017-04-12 | 希捷科技有限公司 | 待调度验证的非易失性写入缓冲器数据保留 |
CN105144299A (zh) * | 2013-03-21 | 2015-12-09 | 日立汽车系统株式会社 | 电子控制装置以及数据改写方法 |
CN105144299B (zh) * | 2013-03-21 | 2021-01-12 | 日立汽车系统株式会社 | 电子控制装置以及数据改写方法 |
US9632708B2 (en) | 2013-05-09 | 2017-04-25 | Huawei Technologies Co., Ltd. | Method, apparatus, and system for reading and writing data |
WO2014180124A1 (zh) * | 2013-05-09 | 2014-11-13 | 华为技术有限公司 | 一种数据读写方法、装置及系统 |
CN103761194B (zh) * | 2013-12-28 | 2017-06-06 | 华为技术有限公司 | 一种内存管理方法及装置 |
CN103761194A (zh) * | 2013-12-28 | 2014-04-30 | 华为技术有限公司 | 一种内存管理方法及装置 |
CN111406282A (zh) * | 2018-04-23 | 2020-07-10 | 华为技术有限公司 | 一种用于存储设备的存储器控制电路 |
CN111406282B (zh) * | 2018-04-23 | 2022-06-07 | 华为技术有限公司 | 一种用于存储设备的存储器控制电路 |
Also Published As
Publication number | Publication date |
---|---|
US20110119429A1 (en) | 2011-05-19 |
US8769188B2 (en) | 2014-07-01 |
TW201118567A (en) | 2011-06-01 |
TWI516917B (zh) | 2016-01-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102063266A (zh) | 非易失存储器控制器与用于将当前数据写入非易失存储器的方法 | |
CN104102585B (zh) | 映射信息记录方法、存储器控制器与存储器储存装置 | |
CN103530062B (zh) | 数据存储方法、存储器控制器与存储器存储装置 | |
CN104699413B (zh) | 数据管理方法、存储器存储装置及存储器控制电路单元 | |
CN106469122B (zh) | 有效数据合并方法、存储器控制器与存储器储存装置 | |
US8667348B2 (en) | Data writing method for non-volatile memory module and memory controller and memory storage apparatus using the same | |
CN104220991A (zh) | 用于允许数据在nand闪存上的有效存储的架构 | |
US20130019049A1 (en) | Block management method, memory controller and memory stoarge apparatus | |
TW201703052A (zh) | 平均磨損方法、記憶體儲存裝置及記憶體控制電路單元 | |
TW201707002A (zh) | 記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置 | |
CN101567220A (zh) | 闪存的损坏区块辨识方法、储存系统及其控制器 | |
CN103198020B (zh) | 一种提高闪存使用寿命的方法 | |
CN104765569A (zh) | 数据写入方法、存储器控制电路单元与存储器储存装置 | |
CN103593296B (zh) | 数据储存方法、存储器控制器与存储器储存装置 | |
CN109426441A (zh) | 数据储存装置以及其操作方法 | |
CN104658612A (zh) | 存取快闪存储器中储存单元的方法以及使用该方法的装置 | |
CN103678162B (zh) | 系统数据储存方法、存储器控制器与存储器储存装置 | |
US20130332653A1 (en) | Memory management method, and memory controller and memory storage device using the same | |
CN102902626A (zh) | 区块管理方法、存储器控制器与存储器储存装置 | |
CN101408864A (zh) | 用于断电时的数据保护方法及使用此方法的控制器 | |
CN101727397B (zh) | 区块管理与更换方法、闪存储存系统及其控制器 | |
CN102880432B (zh) | 利用数据有限寿命提高闪存芯片写入速度的方法、系统及其控制器 | |
CN102915207A (zh) | 固态储存装置及其数据储存方法 | |
US20140089566A1 (en) | Data storing method, and memory controller and memory storage apparatus using the same | |
CN103106148A (zh) | 区块管理方法、存储器控制器与存储器存储装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20110518 |