CN104750426B - 向存储介质写数据的方法和装置 - Google Patents

向存储介质写数据的方法和装置 Download PDF

Info

Publication number
CN104750426B
CN104750426B CN201310753266.9A CN201310753266A CN104750426B CN 104750426 B CN104750426 B CN 104750426B CN 201310753266 A CN201310753266 A CN 201310753266A CN 104750426 B CN104750426 B CN 104750426B
Authority
CN
China
Prior art keywords
write
data
storage unit
cycle time
storage medium
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.)
Active
Application number
CN201310753266.9A
Other languages
English (en)
Other versions
CN104750426A (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.)
Huawei Technologies Co Ltd
Original Assignee
Hangzhou Huawei Digital Technologies Co Ltd
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 Hangzhou Huawei Digital Technologies Co Ltd filed Critical Hangzhou Huawei Digital Technologies Co Ltd
Priority to CN201310753266.9A priority Critical patent/CN104750426B/zh
Priority to PCT/CN2014/094486 priority patent/WO2015101188A1/zh
Priority to EP14876033.3A priority patent/EP3076282A4/en
Priority to KR1020167020677A priority patent/KR101747123B1/ko
Publication of CN104750426A publication Critical patent/CN104750426A/zh
Priority to US15/197,200 priority patent/US20160313917A1/en
Application granted granted Critical
Publication of CN104750426B publication Critical patent/CN104750426B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3485Performance evaluation by tracing or monitoring for I/O devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3034Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a storage system, e.g. DASD based or network based
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3452Performance evaluation by statistical analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3495Performance evaluation by tracing or monitoring for systems
    • 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/0653Monitoring storage devices or systems
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/88Monitoring involving counting

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Human Computer Interaction (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Probability & Statistics with Applications (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Read Only Memory (AREA)

Abstract

本发明涉及一种向存储介质写数据的方法和装置,其中,该向存储介质写数据的方法,包括:按存储介质的写周期将数据写入存储介质的存储单元,所述存储单元为所述存储介质的读写单位;在第一写周期内并发执行对n个存储单元的写操作后,统计所述n个存储单元中在所述第一写周期内写成功的存储单元的个数为k;在第二写周期内,除对n‑k个未写成功的存储单元进行写操作外,启动对后续数据量为m个存储单元的数据的写操作。通过统计各存储单元在第一写周期内写成功的情况,并第一写周期内完成了k个存储单元的写操作时,在第二写周期内启动对后续m个存储单元的写操作,能够提高向存储介质写入数据的效率。

Description

向存储介质写数据的方法和装置
技术领域
本发明涉及数据存储领域,尤其涉及一种向存储介质写数据的方法和装置。
背景技术
在向存储介质写数据的过程中,由于存储介质中各存储单元的个体差异,并非所有的存储单元进行一次写操作便可写成功,有的存储单元需要重复进行多次写操作才可写成功。
目前,往往采用分批次写入的方式向存储介质写数据,通常对某一批次中所有的存储单元进行写使能控制,对该批次的存储单元的所有比特(bit)进行写成功判断,如果有未写成功的比特,需要保持对该批次的写使能控制。只有当该批次中所有的存储单元均写成功之后,才能对下一批次的存储单元启动写使能控制,进行下一批次的写操作。
由于不同的存储单元写成功所需要的次数不同,受到存储单元个体差异的限制,上述分批次写入方式的数据写入效率较低。
发明内容
技术问题
有鉴于此,本发明提供一种向存储介质写数据的方法和装置,以解决在向存储介质写数据的过程中,由于个体差异较大而导致的数据写入效率较低的问题。
解决方案
为了解决上述技术问题,第一方面,本发明提供了一种向存储介质写数据的方法,包括:
按存储介质的写周期将数据写入存储介质的存储单元,所述存储单元为所述存储介质的读写单位;
在第一写周期内并发执行对n个存储单元的写操作后,统计所述n个存储单元中在所述第一写周期内写成功的存储单元的个数为k,其中n为大于或等于2的整数,其中n大于k,k为大于或等于1的整数;
在第二写周期内,除对n-k个未写成功的存储单元进行写操作外,启动对后续数据量为m个存储单元的数据的写操作,其中,m为大于或等于1的整数,所述第二写周期是在第一写周期之后并和所述第一写周期相邻的写周期。
结合第一方面,在第一种可能的实现方式中,所述m小于或等于k。
结合第一方面,在第二种可能的实现方式中,所述m小于或等于N-(n-k);所述N为最大并发执行数,表示所述存储介质在每一写周期内最多允许并发执行写操作的存储单元的个数,所述n-k为所述第一写周期内未写成功的存储单元的个数,其中,n小于或等于N,k小于或等于N-(n-k)。
结合第一方面以及第一方面的第一种可能的实施方式至第二种可能的实施方式中的任意一个,在第三种可能的实施方式中,所述数据量为m个存储单元的数据写操作的写功耗的总和小于或等于在所述第一写周期内写成功的对k个存储单元写操作的写功耗的总和。
为了解决上述技术问题,第二方面,本发明提供了一种向存储介质写数据的装置,包括:
数据写入单元,用于按存储介质的写周期将数据写入存储介质的存储单元,所述存储单元为所述存储介质的读写单位;
统计单元,用于统计所述n个存储单元中在所述第一写周期内写成功的存储单元的个数为k,其中n为大于或等于2的整数,其中n大于k,k为大于或等于1的整数;
启动单元,与所述统计单元连接,用于在第二写周期内,启动所述数据写入单元除对n-k个未写成功的存储单元进行写操作外,并对后续数据量为m个存储单元的数据的写操作,其中,m为大于或等于1的整数,所述第二写周期是在第一写周期之后并和所述第一写周期相邻的写周期。
结合第二方面,在第一种可能的实现方式中,所述m小于或等于k。
结合第二方面,在第二种可能的实现方式中,所述m小于或等于N-(n-k);所述N为最大并发执行数,表示所述存储介质在每一写周期内最多允许并发执行写操作的存储单元的个数,所述n-k为所述第一写周期内未写成功的存储单元的个数,其中,n小于或等于N,k小于或等于N-(n-k)。
结合第二方面以及第二方面的第一种可能的实施方式至第二种可能的实施方式中的任意一个,在第三种可能的实施方式中,所述数据量为m个存储单元的数据写操作的写功耗的总和小于或等于在所述第一写周期内写成功的对k个存储单元写操作的写功耗的总和。
有益效果
通过统计n个(n大于等于2,n为整数)存储单元在第一写周期内写成功的情况,并在统计结果表示在第一写周期内完成了k个(k大于等于1,k为整数)存储单元的写操作时,在第二写周期内除对第一周期内未写成功的n-k个存储单元继续进行写操作之外,还启动对后续m(m大于等于1,m为整数)个存储单元的写操作,能够利用第二写周期的写数据的能力,有效地提高向存储介质写入数据的效率。
根据下面参考附图对示例性实施例的详细说明,本发明的其它特征及方面将变得清楚。
附图说明
包含在说明书中并且构成说明书的一部分的附图与说明书一起示出了本发明的示例性实施例、特征和方面,并且用于解释本发明的原理。
图1示出本发明实施例1提供的向存储介质写数据的方法的流程图;
图2示出按分批次方式向存储介质写数据的过程示意图;
图3示出按本发明实施例1提供的方法向存储介质写数据的过程示意图;
图4示出本发明的实施例2提供的向存储介质写数据的方法的流程图;
图5示出本发明实施例3提供的向存储介质写数据的方法的流程图;
图6示出本发明实施例4提供的向存储介质写数据的方法的流程图;
图7示出本发明实施例5提供的向存储介质写数据的方法的流程图;
图8示出本发明实施例6提供的向存储介质写数据的方法的流程图;
图9示出按分批次方式分两阶段向存储介质写数据的时序图;
图10示出按本发明实施例6提供的方法分两阶段向存储介质写数据的时序图;
图11示出本发明实施例7提供的向存储介质写数据的装置的结构框图;
图12示出本发明实施例8提供的向存储介质写数据的装置的结构框图;
图13示出本发明实施例9提供的向存储介质写数据的装置的结构框图;以及
图14示出本发明实施例10提供的向存储介质写数据的装置的结构框图。
具体实施方式
以下将参考附图详细说明本发明的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。
在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。
另外,为了更好的说明本发明,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本发明同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本发明的主旨。
图1示出本发明的实施例1提供的向存储介质写数据的方法的流程图。如图1所示,该向存储介质写数据的方法主要包括:
S100、按存储介质的写周期将数据写入存储介质的存储单元,所述存储单元为所述存储介质的读写单位。
S110、在第一写周期内并发执行对n个存储单元的写操作后,统计所述n个存储单元中在所述第一写周期内写成功的存储单元的个数为k,其中n为大于或等于2的整数,其中n大于k,k为大于或等于1的整数。
S120、在第二写周期内,除对n-k个未写成功的存储单元进行写操作外,启动对后续数据量为m个存储单元的数据的写操作,其中,m为大于或等于1的整数,所述第二写周期是在第一写周期之后并和所述第一写周期相邻的写周期。
贯穿本说明书中,术语“存储单元”指的是数据被写入的存储介质的读写单位。具体的,存储单元可以指被写入数据的bit(位、比特),byte(字节),bank(块)等单位,随着技术的发展,其他的对数据的读写单位也可以理解为本发明所描述的“存储单元”的解释范围中。
通过统计第一写周期内各存储单元写成功的情况,并在第一写周期内k个存储单元写成功时,在第二写周期内,启动m个后续存储单元的写操作,能够提高向存储介质写入数据的效率。
需要注意的是,上述存储介质包括但不限于相变存储器(Phase Change Memory,PCM)、多值相变存储器和阻变式存储器(Resistive Random Access Memory,RRAM)。此外,第一写周期内写入存储单元的数据内容可以与第二写周期内写入存储单元的数据内容不同。例如,若在第一写周期内写入存储单元的数据为1,则在第二写周期内写入存储单元的数据可以为0,反之亦然。
以向存储介质的四个存储单元分别写入1比特(bit)的数据为例,假设在每一写周期内,该存储介质最多允许并发执行两个存储单元的写操作。
当按现有技术的分批次的方式写数据时,如图2所示,在写周期0-T1内,向第一存储单元写入第一比特数据(即:比特0),并向第二存储单元写入第二比特数据(即:比特1),由于第一存储单元只要进行一次写操作便可写成功,第二存储单元需要进行两次写操作才能写成功,因此,在该写周期0-T1结束时,第一存储单元写成功,在写周期T1-T2,将继续针对该第二存储单元的写操作。在写周期T1-T2结束时,第二存储单元写成功。
在写周期T2-T3内,向第三存储单元写入第三比特数据(即:比特2),并向第四存储单元写入第四比特数据(即:比特3),由于第四存储单元只要进行一次写操作便可写成功,第三存储单元需要进行两次写操作才能写成功,因此在写周期T2-T3结束时,第四存储单元写成功,在写周期T3-T4结束时,第三存储单元写成功。由此可见,按分批次的方式写入上述数据花费了四个写周期。
当按本实施例中方法写数据时,如图3所示,同样地,在写周期0-T1内,向第一存储单元写入第一比特数据(即:比特0),并向第二存储单元写入第二比特数据(即:比特1),在写周期0-T1结束时,第一存储单元写成功,在写周期T1-T2内,将继续针对第二存储单元的写操作,并启动针对第三存储单元的写操作,向第三存储单元写入第三比特数据(即:比特2)。在写周期T1-T2结束时,第二存储单元写成功。
在写周期T2-T3内,继续针对第三存储单元的写操作,并启动针对第四存储单元的写操作,向第四存储单元写入第四比特数据(即:比特3)。至此,第三存储单元进行了两次写操作,第四存储单元进行了一次写操作,因此,在写周期T2-T3结束时,第三存储单元和第四存储单元均写成功。由此可见,按本实施例中方法写入上述数据花费了三个写周期。
综上所述,相比于按分批次写数据的方式,本专利提高了向存储介质写入数据的效率,并保证了所有存储单元均能写成功。
图4示出本发明实施例2提供的一种向存储介质写数据的方法的流程图。如图4所示,该向存储介质写数据的方法包括:
S410、根据数据的内容,在存储介质的写周期内分阶段将数据写入存储介质的存储单元。
具体地,以写0操作和写1操作为例,在写0操作时间较短,写1操作写电流较小的情况下,分两阶段向存储介质写入数据。第一阶段执行写0操作,由于写0操作的时间较短,因此第一阶段所消耗的时间较短,第二阶段执行写1操作,由于写1操作的写电流较小,因此第二阶段可并行执行较多的写1操作。
这样,通过根据所述数据的内容,分阶段将所述数据写入存储介质的存储单元,能够提高向存储介质写入数据的效率。
S420、在第一写周期内并发执行对n个存储单元的写操作后,统计所述n个存储单元中在所述第一写周期内写成功的存储单元的个数为k,其中n为大于或等于2的整数,其中n大于k。
S430、在第二写周期内,对n-k个未写成功的存储单元进行写操作。
S440、在第二写周期内,如果统计的到k大于或等于1,可以启动对后续数据量为m个存储单元的数据的写操作,其中,m为大于或等于1的整数,所述第二写周期是在第一写周期之后并和所述第一写周期相邻的写周期。
其中,对n-k个未写成功的存储单元进行写操作,能够保证存储介质中所有的存储单元均写成功。
图5示出本发明的实施例3提供的向存储介质写数据的方法的流程图。如图5所示,该向存储介质写数据的方法包括:
S510、将待写入的数据与所述存储介质中的已有数据进行比较,以确定待写入的数据与所述已有数据不同的变化数据部分。
S520、按写周期将变化数据部分写入所述存储介质的相应存储单元。
S530、在第一写周期内并发执行对n个存储单元的写操作后,统计所述n个存储单元中在所述第一写周期内写成功的存储单元的个数为k,其中n为大于或等于2的整数,其中n大于k,k为大于或等于1的整数。
S540、在第二写周期内,除对n-k个未写成功的存储单元进行写操作外,启动对后续数据量为m个存储单元的数据的写操作,其中,m为大于或等于1的整数,所述第二写周期是在第一写周期之后并和所述第一写周期相邻的写周期。
这样,通过将所述数据与所述存储介质中的已有数据进行比较,以确定所述数据与所述已有数据不同的变化数据部分,并仅将所述变化数据部分写入所述存储介质的相应存储单元,能够提高向存储介质写入数据的效率。
图6示出本发明的实施例4提供的向存储介质写数据的方法的流程图。如图6所示,该向存储介质写数据的方法包括:
S600、将写入所述数据所花费的时间与写入所述数据的取反数据所花费的时间进行比较。
S610、在写入所述数据所花费的时间比写入所述数据的取反数据所花费的时间长的情况下,对所述数据取反,并将所述数据的取反标志位设置为有效。
S620、按写周期将所述取反数据写入存储介质的存储单元。
S630、在第一写周期内并发执行对n个存储单元的写操作后,统计所述n个存储单元中在所述第一写周期内写成功的存储单元的个数为k,其中n为大于或等于2的整数,其中n大于k,k为大于或等于1的整数。
S640、在第二写周期内,除对n-k个未写成功的存储单元进行写操作外,启动对后续数据量为m个存储单元的数据的写操作,其中,m为大于或等于1的整数,所述第二写周期是在第一写周期之后并和所述第一写周期相邻的写周期。这样,通过将写入所述数据所花费的时间与写入所述数据的取反数据所花费的时间进行比较,在写入所述数据所花费的时间比写入所述数据的取反数据所花费的时间长的情况下,对所述数据取反,并将所述数据的取反标志位设置为有效,并按写周期将所述取反数据写入存储介质的存储单元,能够提高向存储介质写入数据的效率。
图7示出本发明的实施例5提供的向存储介质写数据的方法的流程图。如图7所示,该向存储介质写数据的方法可以包括:
S710、统计各存储单元写成功的情况。
S720、若所述统计的结果表示k个存储单元在所述第一写周期内写成功,则在第二写周期内,启动对后续m个存储单元的写操作,其中,所述m可以小于或等于k。图7中以m=k为例进行示意,在每个写周期内可以保持并发执行写操作的存储单元的个数为n。
具体地,在第一写周期内,向存储单元0至存储单元n对应地写入数据0至数据n,统计存储单元0至存储单元n的写成功情况,针对未写成功的存储单元,在第二写周期内继续写操作;针对写成功的存储单元,统计其个数k,并在第二写周期内启动对后续m个存储单元(即存储单元n+1至存储单元n+m)的写操作。
需要注意的是:上述存储单元后附加的编号用于表示不同的存储单元,诸如存储单元n表示存储介质中的第n个存储单元。
假设存储介质的最大并发执行数为N,最大并发执行数N表示存储介质在每一写周期内最多允许并发执行写操作的存储单元的个数,N为正整数。若在向存储介质写数据之初,便并发执行N个存储单元的写操作,则通过在第二写周期内启动第一写周期内写成功的存储单元的写操作,能够保证在向存储介质写数据的整个过程中均以最大效率写入数据。
在一种可能的实现方式中,m可以小于或等于N-(n-k),其中,N为最大并发执行数表示在每一写周期内,n-k为所述第一写周期内未写成功的存储单元的个数,其中,n小于或等于N,k小于或等于N-(n-k)。
其中,在m等于N-(n-k)的情况下,能够保证在向存储介质写数据的整个过程中均以最大效率写入数据。
图8示出本发明的实施例6提供的向存储介质写数据的方法的流程图。如图8所示,该向存储介质写数据的方法可以包括:
S810、统计各存储单元写成功的情况。
S820、若所述统计的结果表示k个存储单元在所述第一写周期内写成功,则在第二写周期内,启动对后续m个存储单元的写操作,其中,所述数据量为m个存储单元的数据写操作的写功耗的总和小于或等于在所述第一写周期内写成功的对k个存储单元写操作的写功耗的总和。
具体地,在第一写周期内,向存储单元0至存储单元n对应地写入数据0至数据n,统计存储单元0至存储单元n的写成功情况,针对未写成功的存储单元,在第二写周期内继续写操作;针对写成功的存储单元,计算出各存储单元的写功耗总和,在第二周期内启动对后续m个存储单元(即存储单元n+1至存储单元n+m)的写操作,并使所述m个后续存储单元的数据写操作的写功耗的总和小于或等于在所述第一写周期内写成功的对k个存储单元写操作的写功耗的总和。
若在向存储介质写数据之初,便保证该写周期内各存储单元的写功耗的总和为最大写功耗,则通过使所述m个后续存储单元的数据写操作的写功耗的总和小于或等于在所述第一写周期内写成功的对k个存储单元写操作的写功耗的总和,能够保证在每一写周期内,针对每一存储单元的写操作均顺利完成。
其中,使所述m个后续存储单元的数据写操作的写功耗的总和等于在所述第一写周期内写成功的对k个存储单元写操作的写功耗的总和,能够保证在向存储介质写数据的过程中以最大效率写入数据。
需要注意的是:上述写功耗包括但不限于电流和电压。以写功耗为电流为例,假设存储介质在每一写周期内允许的最大写电流为I,若写0操作的电流为i,写1操作的电流为i’,则该存储介质在每一写周期内可并发写入I/i个0或I/i’个1。
以写0操作和写1操作为例,在写1操作的写电流小于写0操作的写电流的情况下,若在第一写周期内完成了一个写0操作,则在第二写周期内可启动一个写0操作或至少一个写1操作,若在第一写周期内完成了一个写1操作,则在第二写周期内可启动一个写1操作;若在第一写周期内完成了多个写0操作,则在第二写周期内可启动至少一个写0或写1操作,若在第一写周期内完成了多个写1操作,则在第二写周期内可启动至少一个写1操作,并在满足写功耗条件的前提下,可启动至少一个写0操作。当然,所述m个后续存储单元的写操作包括但不限于写0操作和写1操作,且本发明也不排除写0操作的写电流小于写1操作的写电流的情况。
以分两阶段向存储介质写数据为例,假设存储介质在每一写周期内最多可并发写入2个0或4个1。若待写入的数据为01011011,对应的存储单元写成功所需进行的写操作的次数如下表所示:
存储单元 1 2 3 4 5 6 7 8
比特值 0 1 0 1 1 0 1 1
次数 1 4 4 2 4 4 3 6
按现有技术分批次的方式分两阶段向存储介质写数据时,其时序图如图9所示,纵轴表示不同的存储单元的编号,横轴表示周期编号,在一个周期内可以将写0操作和写1操作分成两个阶段来执行,针对写0操作的时间较短,写1操作所需电流较少的情况,第一阶段执行所有的写0操作,待所有的写0操作均完成后,开始第二阶段的写1操作。当然,本发明不排除写1操作的时间较短,写0操作所需电流较小的情况,此时,第一阶段执行所有的写1操作,待所有的写1操作均完成后,开始第二阶段的写0操作。
按实施例6提供的方法分两阶段向存储介质写数据时,其时序图如图10所示,纵轴表示不同的存储单元的编号,横轴表示周期编号。在第1个写周期内,针对第一存储单元和第三存储单元进行写0操作,由于第一存储单元只需进行一次写操作便可完成数据的写入,因此,在第2个写周期结束时,第一存储单元便写成功。在第3个写周期内,继续针对第二存储单元的写0操作,并启动针对第六存储单元的写0操作。由于第二存储单元和第六存储单元均需要进行四次写操作才可完成数据的写入,因此,在第4个写周期结束时,第二存储单元完成写0操作,在第5个写周期结束时,第六存储单元完成写0操作。由于存储介质在每一写周期内可并发写入2个0或4个1,为了保证以最大写功耗写入数据,在第5个写周期内,在继续针对第六存储单元的写0操作的基础上,启动针对第二存储单元和第四存储单元的写1操作。在第6个写周期内,在继续针对第二存储单元和第四存储单元的写1操作的基础上,启动针对第五存储单元和第七存储单元的写1操作。
由此可见,相比于按分批次写数据的方式,本发明提高了向存储介质写入数据的效率,并可以保证在向存储介质写数据的整个过程中以最大效率写入数据。
图11示出本发明实施例7提供的向存储介质写数据的装置的结构框图,该向存储介质写数据的装置包括数据写入单元1110、统计单元1120、判断单元1130和启动单元1140。
数据写入单元1110,用于按存储介质的写周期将数据写入存储介质的存储单元,所述存储单元为所述存储介质的读写单位。
统计单元1120,用于统计所述n个存储单元中在所述第一写周期内写成功的存储单元的个数为k,其中n为大于或等于2的整数,其中n大于k,k为大于或等于1的整数。
启动单元1140,与所述统计单元1120连接,用于在第二写周期内,启动所述数据写入单元除对n-k个未写成功的存储单元进行写操作外,并对后续数据量为m个存储单元的数据的写操作,其中,m为大于或等于1的整数,所述第二写周期是在第一写周期之后并和所述第一写周期相邻的写周期。
在一种可能的实现方式中,所述数据写入单元1110还被配置为:根据所述数据的内容,分阶段将所述数据写入所述存储介质的存储单元。
在一种可能的实现方式中,所述m小于或等于k。
在一种可能的实现方式中,所述m小于或等于N-(n-k);所述N为最大并发执行数,表示所述存储介质在每一写周期内最多允许并发执行写操作的存储单元的个数,所述n-k为所述第一写周期内未写成功的存储单元的个数,其中,n小于或等于N,k小于或等于N-(n-k)。
在一种可能的实现方式中,所述数据量为m个存储单元的数据写操作的写功耗的总和小于或等于在所述第一写周期内写成功的对k个存储单元写操作的写功耗的总和。
图12示出本发明实施例8提供的向存储介质写数据的装置的结构框图,图7中标号与图11中相同的结构具有相同的功能,为简明起见,省略对这些结构的详细说明。
如图12所示,图12所示向存储介质写数据的装置与图11所示向存储介质写数据的装置的主要区别在于,还包括:变化数据确定单元1210,用于将所述数据与所述存储介质中的已有数据进行比较,以确定所述数据与所述已有数据不同的变化数据部分。
所述数据写入单元1110与所述变化数据确定单元1210连接,并且被配置为按写周期将所述变化数据部分写入所述存储介质的相应存储单元。
图13示出本发明实施例9提供的向存储介质写数据的装置的结构框图,图13中标号与图11中相同的结构具有相同的功能,为简明起见,省略对这些结构的详细说明。
如图13所示,图13所示向存储介质写数据的装置与图11所示向存储介质写数据的装置的主要区别在于,还包括:时间比较单元1320,用于将写所述数据所花费的时间与写所述数据的取反数据所花费的时间进行比较。
取反置位单元1310,与所述时间比较单元1320连接,用于在写所述数据所花费的时间比写所述取反数据所花费的时间长的情况下,对所述数据取反,并置所述数据的取反标志位为有效。
所述数据写入单元1110与所述取反置位单元1310连接,并且被配置为按写周期将所述取反数据写入所述存储介质的相应存储单元。
图14示出本发明实施例10提供的向存储介质写数据的装置的结构框图。所述向存储介质写数据的装置1400可以是具备计算能力的主机服务器、个人计算机PC、或者可携带的便携式计算机或终端等。本发明具体实施例并不对计算节点的具体实现做限定。
所述向存储介质写数据的装置1400包括处理器(processor)1410、通信接口(Communications Interface)1420、存储器(memory)1430和总线1440。其中,处理器1410、通信接口1420、以及存储器1430通过总线1440完成相互间的通信。
通信接口1420用于与网络设备通信,其中网络设备包括例如虚拟机管理中心、共享存储等。
处理器1410用于执行程序。处理器1410可能是一个中央处理器CPU,或者是专用集成电路ASIC(Application Specific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。
存储器1430用于存放文件。存储器1430可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。存储器1430也可以是存储器阵列。存储器1430还可能被分块,并且所述块可按一定的规则组合成虚拟卷。
在一种可能的实施方式中,存储器1430中存放的上述程序可为包括计算机操作指令的程序代码。处理器1410通过执行该程序,具体可用于:
按存储介质的写周期将数据写入存储介质的存储单元,所述存储单元为所述存储介质的读写单位;
在第一写周期内并发执行对n个存储单元的写操作后,统计所述n个存储单元中在所述第一写周期内写成功的存储单元的个数为k,其中n为大于或等于2的整数,其中n大于k,k为大于或等于1的整数;
在第二写周期内,除对n-k个未写成功的存储单元进行写操作外,启动对后续数据量为m个存储单元的数据的写操作,其中,m为大于或等于1的整数,所述第二写周期是在第一写周期之后并和所述第一写周期相邻的写周期。
在一种可能的实施方式中,所述m小于或等于k。
在一种可能的实施方式中,所述m小于或等于N-(n-k);所述N为最大并发执行数,表示所述存储介质在每一写周期内最多允许并发执行写操作的存储单元的个数,所述n-k为所述第一写周期内未写成功的存储单元的个数,其中,n小于或等于N,k小于或等于N-(n-k)。
在一种可能的实施方式中,所述数据量为m个存储单元的数据写操作的写功耗的总和小于或等于在所述第一写周期内写成功的对k个存储单元写操作的写功耗的总和。
本领域普通技术人员可以意识到,本文所描述的实施例中的各示例性单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件形式来实现,取决于技术方案的特定应用和设计约束条件。专业技术人员可以针对特定的应用选择不同的方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
如果以计算机软件的形式来实现所述功能并作为独立的产品销售或使用时,则在一定程度上可认为本发明的技术方案的全部或部分(例如对现有技术做出贡献的部分)是以计算机软件产品的形式体现的。该计算机软件产品通常存储在计算机可读取的非易失性存储介质中,包括若干指令用以使得计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本发明各实施例方法的全部或部分步骤。而前述的存储介质包括U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

Claims (6)

1.一种向存储介质写数据的方法,其特征在于,包括:
按存储介质的写周期将数据写入存储介质的存储单元,所述存储单元为数据被写入的存储介质的读写单位;其中,根据数据的内容,分两阶段将数据写入存储介质的存储单元,第一阶段执行写0操作,第二阶段执行写1操作;
在第一写周期内并发执行对n个存储单元的写操作后,统计所述n个存储单元中在所述第一写周期内写成功的存储单元的个数为k,其中n为大于或等于2的整数,其中n大于k,k为大于或等于1的整数;
在第二写周期内,除对n-k个未写成功的存储单元进行写操作外,启动对后续数据量为m个存储单元的数据的写操作,其中,所述第二写周期是在第一写周期之后并和所述第一写周期相邻的写周期;m为大于或等于1的整数,所述m小于或等于N-(n-k);所述N为最大并发执行数,表示所述存储介质在每一写周期内最多允许并发执行写操作的存储单元的个数,所述n-k为所述第一写周期内未写成功的存储单元的个数,其中,n小于或等于N,k小于或等于N-(n-k)。
2.根据权利要求1所述的方法,其特征在于,所述m小于或等于k。
3.根据权利要求1或2所述的方法,其特征在于,所述数据量为m个存储单元的数据写操作的写功耗的总和小于或等于在所述第一写周期内写成功的对k个存储单元写操作的写功耗的总和。
4.一种向存储介质写数据的装置,其特征在于,包括:
数据写入单元,用于按存储介质的写周期将数据写入存储介质的存储单元,所述存储单元为数据被写入的存储介质的读写单位;
统计单元,用于统计n个存储单元中在第一写周期内写成功的存储单元的个数为k,其中n为大于或等于2的整数,其中n大于k,k为大于或等于1的整数;
启动单元,与所述统计单元连接,用于在第二写周期内,启动所述数据写入单元除对n-k个未写成功的存储单元进行写操作外,并对后续数据量为m个存储单元的数据的写操作,其中,所述第二写周期是在第一写周期之后并和所述第一写周期相邻的写周期;m为大于或等于1的整数,所述m小于或等于N-(n-k);所述N为最大并发执行数,表示所述存储介质在每一写周期内最多允许并发执行写操作的存储单元的个数,所述n-k为所述第一写周期内未写成功的存储单元的个数,其中,n小于或等于N,k小于或等于N-(n-k);
所述数据写入单元还用于根据数据的内容,分两阶段将数据写入存储介质的存储单元,第一阶段执行写0操作,第二阶段执行写1操作。
5.根据权利要求4所述的装置,其特征在于,所述m小于或等于k。
6.根据权利要求4或5所述的装置,其特征在于,所述数据量为m个存储单元的数据写操作的写功耗的总和小于或等于在所述第一写周期内写成功的对k个存储单元写操作的写功耗的总和。
CN201310753266.9A 2013-12-30 2013-12-30 向存储介质写数据的方法和装置 Active CN104750426B (zh)

Priority Applications (5)

Application Number Priority Date Filing Date Title
CN201310753266.9A CN104750426B (zh) 2013-12-30 2013-12-30 向存储介质写数据的方法和装置
PCT/CN2014/094486 WO2015101188A1 (zh) 2013-12-30 2014-12-22 向存储介质写数据的方法和装置
EP14876033.3A EP3076282A4 (en) 2013-12-30 2014-12-22 Method and device for writing data in storage medium
KR1020167020677A KR101747123B1 (ko) 2013-12-30 2014-12-22 데이터를 저장 매체에 기입하는 방법 및 장치
US15/197,200 US20160313917A1 (en) 2013-12-30 2016-06-29 Method and apparatus for writing data to storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310753266.9A CN104750426B (zh) 2013-12-30 2013-12-30 向存储介质写数据的方法和装置

Publications (2)

Publication Number Publication Date
CN104750426A CN104750426A (zh) 2015-07-01
CN104750426B true CN104750426B (zh) 2018-08-14

Family

ID=53493190

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310753266.9A Active CN104750426B (zh) 2013-12-30 2013-12-30 向存储介质写数据的方法和装置

Country Status (5)

Country Link
US (1) US20160313917A1 (zh)
EP (1) EP3076282A4 (zh)
KR (1) KR101747123B1 (zh)
CN (1) CN104750426B (zh)
WO (1) WO2015101188A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6862951B2 (ja) * 2017-03-15 2021-04-21 富士通株式会社 メモリ制御装置、情報処理装置およびメモリ制御方法
CN110908599B (zh) * 2019-09-27 2021-02-02 珠海博雅科技有限公司 数据的写入方法与写入系统
US11581030B2 (en) * 2020-07-20 2023-02-14 Nxp Usa, Inc. Resistive memory with adjustable write parameter
US11989109B2 (en) * 2022-10-12 2024-05-21 Dell Products L.P. Managing power consumption for a computing cluster

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102331911A (zh) * 2011-06-17 2012-01-25 杭州华三通信技术有限公司 用于文件系统向Nand Flash写数据的驱动装置及方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6523087B2 (en) * 2001-03-06 2003-02-18 Chaparral Network Storage, Inc. Utilizing parity caching and parity logging while closing the RAID5 write hole
US7506236B2 (en) * 2004-05-28 2009-03-17 International Business Machines Corporation Techniques for operating semiconductor devices
JP2010182373A (ja) * 2009-02-05 2010-08-19 Sony Corp 不揮発性半導体メモリデバイスと、そのベリファイ書き込み方法
US8386834B1 (en) * 2010-04-30 2013-02-26 Network Appliance, Inc. Raid storage configuration for cached data storage
CN102592665A (zh) 2011-10-24 2012-07-18 北京时代全芯科技有限公司 一种相变存储器的高速数据写入结构及写入方法
US9274720B1 (en) * 2014-09-15 2016-03-01 E8 Storage Systems Ltd. Distributed RAID over shared multi-queued storage devices
US10402261B2 (en) * 2015-03-31 2019-09-03 Hewlett Packard Enterprise Development Lp Preventing data corruption and single point of failure in fault-tolerant memory fabrics

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102331911A (zh) * 2011-06-17 2012-01-25 杭州华三通信技术有限公司 用于文件系统向Nand Flash写数据的驱动装置及方法

Also Published As

Publication number Publication date
US20160313917A1 (en) 2016-10-27
KR20160102565A (ko) 2016-08-30
KR101747123B1 (ko) 2017-06-15
EP3076282A4 (en) 2017-01-11
WO2015101188A1 (zh) 2015-07-09
CN104750426A (zh) 2015-07-01
EP3076282A1 (en) 2016-10-05

Similar Documents

Publication Publication Date Title
CN104750426B (zh) 向存储介质写数据的方法和装置
CN103810020B (zh) 虚拟机弹性伸缩方法及装置
CN101999199B (zh) 用于延长便携设备的使用寿命的方法
CN105511806B (zh) 处理写请求的方法和移动终端
CN106527653A (zh) 调整cpu频率的方法及装置
CN103810112A (zh) 一种非易失性内存系统及其管理方法
CN104965676B (zh) 一种随机存取存储器的访问方法、装置及控制芯片
TW201037508A (en) Serial bus hub with low power devices
CN107122316A (zh) 一种soc备电方法以及soc
CN106326145A (zh) 一种存储器的控制方法和装置
CN101308701A (zh) 管理非易失性存储器的映射表的设备和方法
CN110515542A (zh) 数据存储方法、装置、计算设备、存储系统及存储介质
CN103700397B (zh) Sram存储单元、sram存储单元写操作方法及sram存储器
CN103811065B (zh) 非易失性存储器系统
CN105446848B (zh) 电子设备的数据处理性能的测试方法及装置
CN108021471A (zh) 数据存储装置、数据处理系统及制造数据存储装置的方法
CN109901664A (zh) 提供时钟信号的方法、装置、系统、设备及可读存储介质
CN104424142B (zh) 一种多核处理器系统中访问共享资源的方法与装置
CN103246584B (zh) 片上系统芯片结构及保存调试信息的方法
CN103853638A (zh) 一种刷新固件的方法及电子设备
CN105072290B (zh) 一种终端的屏幕亮度调整方法及装置
CN107678977A (zh) 一种计数器的读写方法及装置
CN106708445A (zh) 链路选择方法及装置
CN110489354A (zh) 支持两种位宽的磨损均衡垃圾回收加速装置
CN109933291A (zh) 一种sram数据的处理方法、装置、设备及存储介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20200424

Address after: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen

Patentee after: HUAWEI TECHNOLOGIES Co.,Ltd.

Address before: 301, A building, room 3, building 301, foreshore Road, No. 310052, Binjiang District, Zhejiang, Hangzhou

Patentee before: Huawei Technologies Co.,Ltd.

TR01 Transfer of patent right