CN101777024B - 数据移动方法及系统 - Google Patents

数据移动方法及系统 Download PDF

Info

Publication number
CN101777024B
CN101777024B CN2009101190445A CN200910119044A CN101777024B CN 101777024 B CN101777024 B CN 101777024B CN 2009101190445 A CN2009101190445 A CN 2009101190445A CN 200910119044 A CN200910119044 A CN 200910119044A CN 101777024 B CN101777024 B CN 101777024B
Authority
CN
China
Prior art keywords
data
source
target
pattern
square
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.)
Expired - Fee Related
Application number
CN2009101190445A
Other languages
English (en)
Other versions
CN101777024A (zh
Inventor
朱清和
林奕祥
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
MediaTek Inc
Original Assignee
MediaTek Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by MediaTek Inc filed Critical MediaTek Inc
Publication of CN101777024A publication Critical patent/CN101777024A/zh
Application granted granted Critical
Publication of CN101777024B publication Critical patent/CN101777024B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4234Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

一种数据移动方法及系统。其中数据移动系统,包含:样式侦测器,用于侦测欲从存储单元的源数据单元写入的数据是否包含特定的样式;以及处理器,若欲写入目标数据单元的该数据包括该特定的样式,在写入该数据时简化写入操作,不将该数据写入该目标数据单元。本发明提供的数据移动方法及系统可以避免不必要的写入操作,提高了存取速度,减少了系统资源的消耗。

Description

数据移动方法及系统
技术领域
本发明涉及一种数据移动方法及系统,更具体地,是关于一种可节省不必要的写入步骤的数据移动方法及系统。
背景技术
图1是现有技术中与非门闪存(NAND flash)的复制操作的示意图。如图1所示,数据是从NAND闪存的源方块(source block)101复制而来,且源方块101包括多个源页面,例如源页面103、105和107,同时,目标方块包含多个目标页面,例如,目标页面111、113和115。应注意,图中只表示出了部分源页面以及目标页面。目标方块109先整体擦除,然后从源方块101复制的数据写入目标方块109。但是,源方块101的一些页面(例如源页面105和107)只包括空数据(blank data)(在本例中为0xff的样式),因此,在复制操作后,目标页面(例如目标页面113和115)也将只包括空数据。
本领域普通技术人员了解,空数据意味着该页面为空(empty)。因此,对空数据的复制和写入操作没有意义且不必要,也浪费时间及大量系统资源。类似地,在复制和写入操作之前,若目标方块109原本就包括一些与源方块101中相应页面具有相同数据样式的页面,则对于这些样式的复制和写入操作也是不必要且浪费系统资源的。
发明内容
为解决现有技术对空数据、相同数据样式的数据等等的复制和写入操作浪费时间及系统资源的问题,本发明的目的之一是提供数据移动方法及系统。
本发明提供一种数据移动方法,包含:侦测欲从存储单元的源数据单元写入的数据是否包含特定的样式;以及若欲写入目标数据单元的该数据包括该特定的样式,在写入该数据时简化写入操作,不将该数据写入该目标数据单元。
本发明另提供一种数据移动方法,包含:侦测欲从存储单元的至少源数据单元写入的数据是否包含特定的样式;以及从源数据方块向目标数据方块写入该数据时,若该数据包括该特定的样式,就简化写入操作,不将该数据写入该目标数据单元,其中,该源数据方块包括至少一个源数据单元,该目标数据方块包括至少一个目标数据单元。
本发明还提供一种数据移动系统,包含:样式侦测器,用于侦测欲从存储单元的源数据单元写入的数据是否包含特定的样式;以及处理器,若欲写入目标数据单元的该数据包括该特定的样式,在写入该数据时简化写入操作,不将该数据写入该目标数据单元。
本发明所提供数据移动方法及系统可以避免不必要的写入操作,提高存取速度,减少系统资源的消耗。
附图说明
图1是现有技术中NAND闪存的复制操作的方块示意图。
图2是根据本发明一个实施例的数据移动方法的流程图。
图3a是根据本发明一个实施例,数据移动方法的省略操作的示意图。
图3b是根据本发明一个实施例的数据移动方法操作的示意图。
图4是根据本发明一个实施例的数据移动方法的流程图。
图5是图4所示实施例的细节步骤的一个例子的流程图。
图6是图4所示实施例的细节步骤的另一例子的流程图。
图7是根据本发明实施例应用数据移动方法的示意图。
图8是利用前述数据移动方法的闪存控制器的方块示意图。
具体实施方式
在说明书及后续的申请专利范围当中使用了某些词汇来指称特定组件。所属领域中具有通常知识者应可理解,制造商可能会用不同的名词来称呼同一个组件。本说明书及后续的权利要求并不以名称的差异来作为区分组件的方式,而是以组件在功能上的差异来作为区分的准则。在通篇说明书及后续的权利要求当中所提及的“包括”和“包含”为一开放式的用语,故应解释成“包含但不限定于”。以外,“耦接”一词在此为包含任何直接及间接的电气连接手段。间接的电气连接手段包括通过其它装置进行连接。
图2是根据本发明一个实施例的数据移动方法的流程图。如图2所示,数据移动方法包括步骤201和步骤203。步骤201侦测欲从存储单元的源数据单元(例如图1中的源方块101或其中的源页面)写入的数据是否包括特定的样式。步骤203中,若欲写入的数据包括特定的样式,则向目标数据单元(例如图1中的目标页面113)写入数据时,就简化写入的操作。
所述特定的样式可以是任何样式,而简化写入操作的意义也随之相应地变化。以图1为例,特定的样式是指0xff,简化写入操作就意味着“不将数据从源数据单元写入目标数据单元”,因为空数据是无需复制操作的。
图3a是根据本发明一个实施例,数据移动方法的省略操作的示意图。如图3a所示,源方块302中的源页面304包括非空数据(real data),图中未具体示出的源页面也包括非空数据。但源页面306和源页面308包含空数据(例如0x00..00)。因此,当源方块302中的数据复制到目标方块310时,源页面304中的数据就复制到对应的目标页面312。未具体示出的源页面中的数据也复制到对应的目标页面。但是,从源页面306和源页面308到对应的目标页面314和目标页面317的复制和写入操作就被省略。以这种方式,可以加速源方块302与目标方块310之间的复制和写入操作,也可以节省系统资源。
图3b是根据本发明一个实施例的数据移动方法操作的示意图。其中,源方块301中的数据复制到目标方块309。源页面305、源页面307中特定的样式也可以是其它指示空数据的样式,例如0x00。对应的目标页面313和目标页面315应该为空,并利用0xff来指示空数据。在此,简化写入操作是意味着“标记目标页面,例如添加一个空标记(null flag)”。
请注意,虽然利用了NAND闪存来解释如图2所示的实施例,但根据本发明实施例的数据移动方法也可以利用例如或非门(NOR)闪存的其它存储器。NOR闪存可经由不同类型的数据单元随机存取数据。因此,源数据单元和目标数据单元也可以是除页面以外的其它数据单元。
请注意,不同类型闪存的页面(page)大小(size)是不同的,可能是4KB、2KB或者512B。当页面大小为2KB时,一个页面可以容纳4个扇区(sector),每一扇区大小为512B。在另一实施例中,数据单元也可以是扇区,其中,扇区是比页面小的单元。
图4是根据本发明一个实施例的数据移动方法的流程图。如图4所示,数据移动方法包括步骤401和步骤403。步骤401中,侦测欲从存储单元(例如NAND闪存)的至少一个源数据单元写入的数据是否包括特定的样式。步骤403中,若数据包括特定的样式,从源数据方块至目标数据方块写入数据时,就简化写入操作。源数据方块包括至少一个源数据单元,目标数据方块包括至少一个目标数据单元。
简化写入操作的步骤可以包括:从第一源数据单元到第二目标数据单元不写入数据。简化写入操作的步骤可进一步包括:标记第二目标数据单元。
以图1所示的NAND闪存为例。根据本发明一个实施例的数据移动方法,从源方块101(第二源数据单元)至目标方块109(第一目标数据单元)复制数据时,侦测源页面105、源页面107(第一源数据单元)是否包括特定的样式。图2与图4所示的实施例相比,图2所示的实施例是在复制小数据单元中的数据至另一小数据单元时,检查小数据单元(例如页面或扇区)是否具有特定的样式;图4所示的实施例则是复制大数据单元(例如方块或页面)中的数据到另一大数据单元时,检查小数据单元(例如页面或扇区)是否具有特定的样式。
简化写入操作的步骤可以包括:从源页面105、源页面107到目标页面113、目标页面115(第二目标数据单元)不写入数据。简化写入操作的步骤也可进一步包括:标记目标页面113、目标页面115。例如,如图3b所示添加空标记。
图5是图4所示实施例的细节步骤的一个例子的流程图。请注意,此细节步骤仅为举例,并不意味着对本发明范围的限缩。图5所示的步骤包括步骤501~519。步骤501将页面地址设置为方块的起始。步骤503从源方块(例如源方块101)读取页面数据(例如源页面105和源页面107中的数据)。步骤505利用样式侦测机制来检查源页面数据,也就是说,侦测源页面数据是否包括特定的样式。
步骤507确定源页面数据是否包括特定的样式,若源页面数据包括特定的样式,就转到步骤511;若源页面数据不包括特定的样式,则转到步骤509。步骤509实施错误校正码(Error Correction Code,ECC)校正。由于某些类型的存储器需要ECC校正,而另一些类型则无需校正,因此步骤509也可以省略。步骤511跳过(skip)写入操作,也就是说,不将具有特定的样式的数据复制到对应的目标页面。在步骤513,将源页面中的数据复制到目标页面。在步骤515,需要确定页面地址是否到达方块末端,若是,就转到步骤519并结束;若否,则转到步骤517。在步骤517,将页面地址移动到下一页面,并转回到步骤503。
图6是图4所示实施例的细节步骤的另一例子的流程图。与图5所示的步骤相比,在图6中步骤511被步骤611代替。步骤511是跳过写入操作,而步骤611是标记目标页面(例如,如图3b所示添加空标记)。
图7是根据本发明实施例应用数据移动方法的示意图,这里仅为举例,并非用以限缩本发明的范围。图7(a)是均衡磨损(wear-leveling)操作的示意图,指示将源方块701中的冷数据(cold data)移动到频繁被存取的目标方块703,以使得各个方块可以平均地被存取。而冷数据是指被存取次数比其它数据少的数据。由于均衡磨损这种机制限制了方块被存取的次数,因此可以避免某些方块过度磨损而导致损坏(broken)。这样一来,在均衡磨损操作中,方块复制操作就是必要的,从而可在复制操作中应用根据本发明实施例的数据移动方法。由于均衡磨损操作为本领域普通技术人员周知,为简洁起见,此处不再赘述。
图7(b)是被称为方块合并(block merge)的操作的示意图,该操作指示一个逻辑方块地址(Logical Block Address,LBA)对应了多于一个物理方块,例如物理方块705和物理方块707。由此,若物理方块的页面存储了不必要的数据,例如页面709和页面711,就浪费了存储空间。因此,可以移除不必要的数据,而其余数据可以从物理方块705和物理方块707复制到目标方块713,这种方式可以节省物理方块705和物理方块707的存储空间。由此,在方块合并操作中,方块复制操作也是必要的,从而可在复制操作中应用根据本发明实施例的数据移动方法。由于方块合并操作为本领域普通技术人员周知,为简洁起见,此处不再赘述。
图8是利用前述数据移动方法的闪存控制器的方块示意图。但是请注意,前述数据移动方法并不仅限于应用在如图8所示的闪存控制器中,图8所示的装置个数及位置并非用以限缩本发明的范围。如图8所示,利用闪存控制器803控制闪存801。闪存控制器803包括CPU 805,解译器(interpreter)807,ECC 809,寄存器811,样式侦测器813。CPU 805用于控制闪存控制器803中各装置的操作。解译器807可作为用于在闪存控制器803和闪存801之间通信的一个接口(interface)。ECC 809用于对欲写入的数据实施ECC操作,接着,经过ECC 809校正后的数据保存到存储器815。寄存器811用于暂存需要ECC校正的数据。利用样式侦测器813侦测欲写入的数据是否具有特定的样式。
根据以上描述,若样式侦测器813侦测到数据包括特定的样式,就简化写入操作。并且如果必要,由ECC 809对数据实施ECC校正操作。之后,经过ECC校正后的数据存储到存储器815。
根据上述的实施例,本发明可以避免不必要的写入操作,提高了存取速度,减少了系统资源的消耗。
任何本领域的普通技术人员,在不脱离本发明的精神和范围内,当可做些许的更动与润饰,因此本发明的保护范围当视所附的权利要求所界定者为准。

Claims (15)

1.一种数据移动方法,其特征在于包含:
侦测欲从存储单元的源数据单元写入的数据是否包含特定的样式;以及
若欲写入目标数据单元的该数据包括该特定的样式,在写入该数据时简化写入操作,不将该数据写入该目标数据单元。
2.如权利要求1所述的数据移动方法,其特征在于,该存储单元是与非门闪存,该源数据单元和该目标数据单元是页面或扇区。
3.如权利要求1所述的数据移动方法,其特征在于,该存储单元是或非门闪存。
4.如权利要求1所述的数据移动方法,其特征在于,该特定的样式是指示空数据的样式。
5.如权利要求1所述的数据移动方法,其特征在于,简化该写入操作的步骤进一步包括:
标记该目标数据单元。
6.一种数据移动方法,包含:
侦测欲从存储单元的至少一个源数据单元写入的数据是否包含特定的样式;以及
从源数据方块向目标数据方块写入该数据时,若该数据包括该特定的样式,则简化写入操作,不将该数据写入该目标数据单元,其中,该源数据方块包括至少一个源数据单元,该目标数据方块包括至少一个目标数据单元。
7.如权利要求6所述的数据移动方法,其特征在于,该存储单元是与非门闪存,该源数据单元和该目标数据单元是页面或扇区。
8.如权利要求6所述的数据移动方法,其特征在于,该存储单元是或非门闪存。
9.如权利要求6所述的数据移动方法,其特征在于,该特定的样式是指示空数据的样式。
10.如权利要求6所述的数据移动方法,其特征在于,简化该写入操作的步骤进一步包括:
标记该目标数据单元。
11.一种数据移动系统,其特征在于包含:
样式侦测器,用于侦测欲从存储单元的源数据单元写入的数据是否包含特定的样式;以及
处理器,若欲写入目标数据单元的该数据包括该特定的样式,在写入该数据时简化写入操作,不将该数据写入该目标数据单元。
12.如权利要求11所述的数据移动系统,其特征在于,该存储单元是与非门闪存,该源数据单元和该目标数据单元是页面或扇区。
13.如权利要求11所述的数据移动系统,其特征在于,该存储单元是或非门闪存。
14.如权利要求11所述的数据移动系统,其特征在于,该特定的样式是指示空数据的样式。
15.如权利要求11所述的数据移动系统,其特征在于,该处理器简化该写入操作是:标记该目标数据单元。
CN2009101190445A 2009-01-08 2009-03-19 数据移动方法及系统 Expired - Fee Related CN101777024B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/350,229 2009-01-08
US12/350,229 US20100174850A1 (en) 2009-01-08 2009-01-08 Data moving method and system utilizing the same

Publications (2)

Publication Number Publication Date
CN101777024A CN101777024A (zh) 2010-07-14
CN101777024B true CN101777024B (zh) 2012-09-05

Family

ID=42312439

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2009101190445A Expired - Fee Related CN101777024B (zh) 2009-01-08 2009-03-19 数据移动方法及系统

Country Status (3)

Country Link
US (1) US20100174850A1 (zh)
CN (1) CN101777024B (zh)
TW (1) TW201027554A (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI425513B (zh) * 2009-08-13 2014-02-01 Silicon Motion Inc 識別快閃記憶體中區塊之資料頁的方法以及相關之記憶裝置
JP5595530B2 (ja) * 2010-10-14 2014-09-24 株式会社日立製作所 データ移行システム及びデータ移行方法
JP5405513B2 (ja) 2011-03-22 2014-02-05 株式会社東芝 メモリシステム、不揮発性記憶装置、不揮発性記憶装置の制御方法、及びプログラム
KR102188062B1 (ko) 2014-02-28 2020-12-07 삼성전자 주식회사 데이터 저장 장치의 동작 방법과 상기 데이터 저장 장치를 포함하는 시스템의 동작 방법
CN105321566B (zh) * 2014-06-30 2019-07-12 华邦电子股份有限公司 半导体存储装置及其编程方法
US10395753B2 (en) 2014-08-28 2019-08-27 Winbond Electronics Corp. Semiconductor memory device and programming method thereof
JP2015053075A (ja) * 2014-11-10 2015-03-19 株式会社東芝 メモリシステム、情報処理装置および記憶装置
JP6679971B2 (ja) * 2016-02-16 2020-04-15 セイコーエプソン株式会社 記憶装置、液体容器及びホスト装置
JP2016177822A (ja) * 2016-04-28 2016-10-06 株式会社東芝 メモリシステム

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1295621C (zh) * 2002-09-30 2007-01-17 国际商业机器公司 在操作系统内核环境中高速缓存应用数据的系统和方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
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
US7024526B2 (en) * 2002-10-31 2006-04-04 Hitachi, Ltd. Apparatus and method of null data skip remote copy
US8990528B2 (en) * 2009-01-06 2015-03-24 International Business Machines Corporation Method for fast format of a fully allocated volume when copied from a space efficient volume

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1295621C (zh) * 2002-09-30 2007-01-17 国际商业机器公司 在操作系统内核环境中高速缓存应用数据的系统和方法

Also Published As

Publication number Publication date
CN101777024A (zh) 2010-07-14
TW201027554A (en) 2010-07-16
US20100174850A1 (en) 2010-07-08

Similar Documents

Publication Publication Date Title
CN101777024B (zh) 数据移动方法及系统
EP2003569B1 (en) Flash memory controller
JP5021220B2 (ja) 不揮発性メモリ装置及びそのマルチページコピーバック方法
US7921339B2 (en) Flash storage device with data correction function
US8595427B1 (en) Non-volatile block storage module using magnetic random access memory (MRAM)
US9710378B2 (en) Writing an address conversion table for nonvolatile memory wear leveling
US11579791B2 (en) Partial save of memory
US10866861B1 (en) Deferred error-correction parity calculations
US11144448B2 (en) Memory sub-system for managing flash translation layers table updates in response to unmap commands
US9378130B2 (en) Data writing method, and memory controller and memory storage apparatus using the same
CN108228091B (zh) 配置数据分区保存方法及系统、配置数据校验方法及系统
CN112543908A (zh) 写入缓冲器管理
US10990292B2 (en) Flash memory controller, control method of flash memory controller and associated electronic device
JP4177360B2 (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
US20170285953A1 (en) Data Storage Device and Data Maintenance Method thereof
TWI516934B (zh) 資料儲存方法、記憶體控制電路單元與記憶體儲存裝置
JP4661369B2 (ja) メモリコントローラ
CN108255633B (zh) 存储控制方法、存储装置
CN102591738B (zh) 数据管理方法、存储器控制器与嵌入式存储器储存装置
CN112988069B (zh) 存储器管理方法、存储器存储装置及存储器控制器
US6898680B2 (en) Minimization of overhead of non-volatile memory operation
WO2022091240A1 (ja) フラッシュメモリ管理装置、及びフラッシュメモリ管理方法
TWI476589B (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
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20120905

Termination date: 20190319