CN101620572B - 非易失性内存及控制方法 - Google Patents

非易失性内存及控制方法 Download PDF

Info

Publication number
CN101620572B
CN101620572B CN2008100435898A CN200810043589A CN101620572B CN 101620572 B CN101620572 B CN 101620572B CN 2008100435898 A CN2008100435898 A CN 2008100435898A CN 200810043589 A CN200810043589 A CN 200810043589A CN 101620572 B CN101620572 B CN 101620572B
Authority
CN
China
Prior art keywords
data
data block
write
nonvolatile memory
speed cache
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
CN2008100435898A
Other languages
English (en)
Other versions
CN101620572A (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.)
Shanghai Huahong Grace Semiconductor Manufacturing Corp
Original Assignee
Shanghai Hua Hong NEC Electronics 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 Shanghai Hua Hong NEC Electronics Co Ltd filed Critical Shanghai Hua Hong NEC Electronics Co Ltd
Priority to CN2008100435898A priority Critical patent/CN101620572B/zh
Publication of CN101620572A publication Critical patent/CN101620572A/zh
Application granted granted Critical
Publication of CN101620572B publication Critical patent/CN101620572B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

本发明公开了一种非易失性内存及控制方法,包括内存接口电路,与内存接口电路相连接的非易失性存储器,非易失性存储器中的数据块分为至少两组,每组至少两个数据块;与内存接口电路相连接的高速缓存,所述高速缓存包括至少两组高速缓存行组,每组至少两个高速缓存行,高速缓存用于读写非易失性存储器中的数据;高速缓存中的每个高速缓存行带有一个标记,用于记录该高速缓存行在非易失性存储器中相应数据的物理地址。本发明实现了一种在断电后仍能保存数据的非易失性内存,能极大提高系统的启动速度,并有利于降低能耗。

Description

非易失性内存及控制方法
技术领域
本发明涉及一种内存及控制该内存的方法,具体涉及一种非易失性的内存及其控制方法。
背景技术
目前计算机系统中使用的内存一般均为DRAM(动态随机存储器),这类存储器在系统断电后不能保存数据,使得系统在断电重启时,必须从硬盘等存储器中读取数据,影响了系统效能。本发明利用新一代非易失存储器(如相变存储器,即PRAM),结合相应的高速缓存及控制方法,实现了一种在断电后仍能保存数据的非易失性内存,能极大提高系统的启动速度,并有利于降低能耗。
发明内容
本发明所要解决的技术问题是提供一种能保存数据的非易失性内存。
为了解决以上技术问题,本发明提供了一种非易失性内存,包括内存接口电路,与内存接口电路相连接的非易失性存储器,非易失性存储器中的数据块分为至少两组,每组至少两个数据块;与内存接口电路相连接的高速缓存,所述高速缓存包括至少两组高速缓存行组,每组至少两个高速缓存行,高速缓存用于读写非易失性存储器中的数据;高速缓存中的每个高速缓存行带有一个标记,用于记录该高速缓存行在非易失性存储器中相应数据的物理地址。
因为本发明用非易失存储器,结合相应的高速缓存及控制方法,实现了一种在断电后仍能保存数据的非易失性内存,能极大提高系统的启动速度,并有利于降低能耗。
控制前述非易失性内存可以采用以下方式:前述高速缓存包括N路M组数据块,其中N或M可以是任何正整数;高速缓存和非易失性存储器的存储空间划分为至少两个高速缓存行。高速缓存中的每个高速缓存行带有一个TAG标记,用于记录该高速缓存行在非易失性存储器中的物理地址的连续K位地址,数值K的大小为X-L,X为非易失性存储器地址的比特数,数值L的大小根据高速缓存行的大小来定,2的L次方为高速缓存行的大小。将高速缓存的高速缓存行分成M组高速缓存行组,每组N个高速缓存行;将非易失性存储器中的高速缓存行分成若干组,每组M个高速缓存行;非易失性存储器中每个高速缓存行组的第J个高速缓存行的数据可以临时存放在高速缓存中第J个高速缓存行组中的任意一个高速缓存行中。
控制前述非易失性内存还可以采用以下方式:高速缓存控制将高速缓存与非易失性存储器中的存储页建立映射关系,存储页是指计算机内存中用于存储数据的一段连续的存储空间;高速缓存中的每个数据页带有一个物理地址标记,用于记录非易失性存储器中相应存储页的物理地址,从而建立映射关系。
前述两种非易失性内存的控制方法还包括:向内存写入数据时,数据先存入高速缓存中标记为“clean”的数据块,并将相应数据块标记为“dirty”,同时更新相应的写入次数;当有至少两个“clean”数据块可用时,优先使用读取次数比较少的“clean”数据块。当高速缓存中的“dirty”数据块较多时,控制系统将近期写入次数较少的“dirty”数据块的数据写入非易失性存储器,并将高速缓存中的相应数据块标记为“clean”,同时将写入次数清零;重复以上操作,直到“clean”数据块达到一定的数量;系统可以发指令将高速缓存中的所有“dirty”区域的数据写入非易失性存储器。系统将高速缓存中标记为“dirty”的数据块按写入次数的多少分成若干个先入先出队列;每一个“dirty”队列中的数据块的写入次数在相同的范围内;当下一级“dirty”队列中的数据块写入次数增加时,相应数据块将被放入上一级“dirty”队列,直至数据块进入最高一级的队列;对于数据块的写入次数在一定范围里的“dirty”队列,当数据块的写入次数增加时,该数据块的位置将被调至当前队列的入口处;当其写入次数达到当前队列写入次数的上限,再将该数据块放入高一级队列。“dirty”队列数量为至少两个,各队列的写入次数为一确定值或是某一范围值;系统每次从低级的“dirty”队列的出口取数据块,用完后再从高一级队列取。当系统须断电时,将高速缓存中标记为“dirty”的所有数据写入非易失性存储器。从内存读取数据时,先从高速缓存中读取数据;若高速缓存中无所需数据,再从非易失性存储器中读取,同时将数据存入高速缓存。当系统须断电时,将高速缓存中标记为“dirty”的所有数据写入非易失性存储器。
优选的,前述的非易失性内存,高速缓存的每一数据块有一相关的属性区域用于记录其读写次数及数据状态;非易失性存储器的每一数据块有一相关的属性区域用于记录其读写次数,该属性区域位于非易失性存储器中。
前述非易失性内存的控制方法,包括计算机系统对非易失性存储器的读写次数进行统计,若某数据块的读取或写入次数超过一设定值,可将相应数据移至读写次数较少的数据块。当某数据块的读写次数达到最大允许读写次数时,系统将该数据块中的数据移至其他读写次数较少的未使用数据块,同时屏蔽原数据块,不再使用。系统对数据块的读写次数进行统计,并向用户提供相关信息;当系统平均读写次数达到某一预先指定的值时,系统将报警,提示用户更换内存。
附图说明
下面结合附图和具体实施方式对本发明作进一步详细说明。
图1是非易失性内存结构示意图。
具体实施方式
如图1所示,非易失内存包括内存接口电路、非易失性存储器和与内存接口电路相连接的高速缓存,高速缓存可以读写非易失性存储器中的数据。内存接口可采用DDR,DDR2,RAMBUS等形式,但不局限于于此;非易失性存储器可采用相变存储器(PRAM),但不局限于于此。
高速缓存可采用N路M组的控制方式,其中N,M可以是任何整数。高速缓存及非易失性存储器的存储空间划分为若干个数据块(以下称为高速缓存行),每个高速缓存行的大小可自由设定,通常可设为64字节或126字节,但不局限于此。高速缓存中的每个高速缓存行带有一个TAG标记,用于记录该高速缓存行在非易失性存储器中的物理地址的连续K位地址(可以是高位或低位地址比特)。数值K的大小为X-L,X为非易失性存储器地址的比特(BIT)数,数值L的大小根据高速缓存行的大小来定,64字节对应的L为6,126字节对应的L为7。即2的L次方为高速缓存行的大小。
可以将高速缓存的高速缓存行分成M组(以下称高速缓存行组),每组N个高速缓存行。同样可以将非易失性存储器中的高速缓存行分成若干组,每组M个高速缓存行。非易失性存储器中每个高速缓存行组的第一个高速缓存行的数据可以临时存放在高速缓存中第一个高速缓存行组中的任意一个高速缓存行中,非易失性存储器中每个高速缓存行组的第二个高速缓存行的数据可以临时存放在高速缓存中第二个高速缓存行组中的任意一个高速缓存行中,依此类推,非易失性存储器中每个高速缓存行组的第J个高速缓存行的数据可以临时存放在高速缓存中第J个高速缓存行组中的任意一个高速缓存行中。
同样,高速缓存控制也可采用存储页映射的方式。即将高速缓存与非易失性存储器中的存储页建立映射关系。存储页是指计算机内存中用于存储数据的一段连续的存储空间。其大小可由计算机系统调节,通常为4K字节(BYTE)或6K字节,但不局限于此。高速缓存中的每个数据页带有一个物理地址标记,用于记录非易失性存储器中相应存储页的物理地址,从而建立映射关系。(以下将高速缓存行和存储页统称为数据块)
高速缓存的每一数据块有一相关的属性区域用于记录其读写次数及数据状态(如数据是否已存入非易失性存储器等)。该属性区域可位于高速缓存中。
当需向内存写入数据时,数据先存入高速缓存中标记为“clean”的数据块(即该处的数据已存入非易失性存储器,高速缓存中为空),并将相应数据块标记为“dirty”(即高速缓存中有数据),同时更新相应的写入次数。这里将数据已经存入非易失性存储器的数据块称为“clean”数据块。当有多个“clean”数据块可用时,优先使用读取次数少的。当高速缓存中的“dirty”数据块较多时,控制系统将近期写入次数较少的“dirty”数据块的数据写入非易失性存储器,并将高速缓存中的相应数据块标记为“clean”,同时将写入次数清零。重复以上操作,直到“clean”数据块达到一定的数量。系统在必要时(如系统关机)可发指令将高速缓存中的所有“dirty”区域的数据写入非易失性存储器。
系统将高速缓存中标记为“dirty”的数据块按写入次数的多少分成若干个先入先出队列(以下称为“dirty”队列)。每一个“dirty”队列中的数据块的写入次数在相同的范围内。例如,“dirty”队列1中的数据块的写入次数为1次,“dirty”队列2中的数据块的写入次数为2次,“dirty”队列3中的数据块的写入次数为3次以上。当“dirty”队列1中的数据块写入次数增加时,相应数据块将被放入“dirty”队列2。依此类推,直至数据块进入最高一级的队列(例如这里为“dirty”队列3)。对于数据块的写入次数在一定范围里的“dirty”队列,如本例中的“dirty”队列3,当数据块的写入次数增加时,该数据块的位置将被调至当前队列的入口处。当其写入次数达到当前队列写入次数的上限,再将该数据块放入高一级队列(即写入次数更多的队列)。队列数量可为任意个,各队列的写入次数可为一确定值,也可以是某一范围(如2至5次或大于3次等)。系统每次从低级(即写入次数较低)的“dirty”队列的出口取数据块,用完后再从高一级队列取。
当需从内存读取数据时,先从高速缓存中读取数据。若高速缓存中无所需数据,再从非易失性存储器中读取,同时将数据存入高速缓存。非易失性存储器的每一数据块有一相关的属性区域用于记录其读写次数。该属性区域位于非易失性存储器中。计算机系统对非易失性存储器的读写次数进行统计,若某数据块的读取或写入次数较多,可将相应数据移至读写次数较少的数据块,以延长内存的使用寿命。当某数据块的读写次数达到最大允许读写次数时,系统将该数据块中的数据移至其他读写次数较少的未使用数据块,同时屏蔽原数据块,不再使用。系统对数据块的读写次数进行统计,并向用户提供相关信息。当系统平均读写次数达到某一预先指定的值时(可以是非易失性存储器的读写寿命),系统将报警,提示用户更换内存。当系统需要断电时,将高速缓存中标记为“dirty”的所有数据写入非易失性存储器。上述控制方法可以在计算机操作系统中实现,也可以在非易失内存的控制器中用硬件实现。

Claims (9)

1.一种非易失性内存,其特征在于,包括:内存接口电路,
与内存接口电路相连接的非易失性存储器,非易失性存储器中的数据块分为至少两组,每组至少两个数据块;
与内存接口电路相连接的高速缓存,所述高速缓存包括至少两组高速缓存行组,每个行组包括至少两个高速缓存行,由高速缓存行构成数据块,高速缓存用于读写非易失性存储器中的数据;
高速缓存中的每个高速缓存行带有一个标记,用于记录该高速缓存行在非易失性存储器中相应数据的物理地址的连续K位地址,数值K的大小为X-L,X为非易失性存储器地址的比特数,数值L的大小根据高速缓存行的大小来定,2的L次方为高速缓存行的大小;高速缓存的每一数据块有一属性区域用于记录其读写次数及数据状态,该属性区域位于高速缓存中;非易失性存储器的每一数据块有一相关的属性区域用于记录其读写次数,该属性区域位于非易失性存储器中。
2.一种使用权利要求1所述的非易失性内存的内存控制方法,其特征在于,向内存写入数据时,数据先存入高速缓存中标记为“clean”的数据块,并将相应数据块标记为“dirty”,同时更新相应的写入次数;当有至少两个“clean”数据块可用时,优先使用读取次数比较少的“clean”数据块,其中“clean”表示数据已经存入非易失性存储器,数据块中无数据,“dirty”表示数据块中有数据。
3.如权利要求2所述的内存控制方法,其特征在于,当高速缓存中的“dirty”数据块较多时,非易失性内存中的控制系统将近期写入次数较 少的“dirty”数据块的数据写入非易失性存储器,并将高速缓存中的相应数据块标记为“clean”,同时将写入次数清零;重复以上操作,直到“clean”数据块达到一定的数量;系统可以发指令将高速缓存中的所有“dirty”区域的数据写入非易失性存储器。
4.如权利要求3所述的内存控制方法,其特征在于,系统将高速缓存中标记为“dirty”的数据块按写入次数的多少分成若干个先入先出队列;每一个“dirty”队列中的数据块的写入次数在相同的范围内;当下一级“dirty”队列中的数据块写入次数增加时,相应数据块将被放入上一级“dirty”队列,直至数据块进入最高一级的队列;对于数据块的写入次数在一定范围里的“dirty”队列,当数据块的写入次数增加时,该数据块的位置将被调至当前队列的入口处;当其写入次数达到当前队列写入次数的上限,再将该数据块放入高一级队列;各队列的写入次数为一确定值或是某一范围值;当有多个队列时,系统每次从低级的“dirty”队列的出口取数据块,用完后再从高一级队列取。
5.如权利要求4所述的内存控制方法,其特征在于,当系统需断电时,将高速缓存中标记为“dirty”的所有数据写入非易失性存储器。
6.如权利要求5所述的内存控制方法,其特征在于,从内存读取数据时,先从高速缓存中读取数据;若高速缓存中无所需数据,再从非易失性存储器中读取,同时将数据存入高速缓存。
7.一种使用权利要求1所述的非易失性内存的内存控制方法,其特征在于,计算机系统对非易失性存储器的读写次数进行统计,若某数据块的读取或写入次数超过一设定值,可将相应数据移至读写次数较少的数据 块。
8.如权利要求7所述的内存控制方法,其特征在于,当某数据块的读写次数达到最大允许读写次数时,系统将该数据块中的数据移至其他读写次数较少的数据块,同时屏蔽原数据块不再使用。
9.如权利要求8所述的内存控制方法,其特征在于,系统对数据块的读写次数进行统计,并向用户提供相关信息;当系统平均读写次数达到某一预先指定的值时,系统将报警提示用户更换非易失性内存。 
CN2008100435898A 2008-07-02 2008-07-02 非易失性内存及控制方法 Active CN101620572B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2008100435898A CN101620572B (zh) 2008-07-02 2008-07-02 非易失性内存及控制方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2008100435898A CN101620572B (zh) 2008-07-02 2008-07-02 非易失性内存及控制方法

Publications (2)

Publication Number Publication Date
CN101620572A CN101620572A (zh) 2010-01-06
CN101620572B true CN101620572B (zh) 2011-06-01

Family

ID=41513819

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2008100435898A Active CN101620572B (zh) 2008-07-02 2008-07-02 非易失性内存及控制方法

Country Status (1)

Country Link
CN (1) CN101620572B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9495299B2 (en) 2011-12-26 2016-11-15 Renesas Electronics Corporation Data processing device utilizing way selection of set associative cache memory based on select data such as parity data

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102866926A (zh) * 2011-07-06 2013-01-09 华晶科技股份有限公司 储存数据的方法及使用其的电子装置
CN104137084B (zh) * 2011-12-28 2017-08-11 英特尔公司 提高耐久性和抗攻击性的用于pcm缓存的有效动态随机化地址重映射
CN103092728A (zh) * 2013-01-22 2013-05-08 清华大学 一种非易失性内存的磨损错误恢复方法和装置
US9146678B2 (en) * 2013-04-29 2015-09-29 International Business Machines Corporation High throughput hardware acceleration using pre-staging buffers
WO2015051503A1 (en) 2013-10-09 2015-04-16 Advanced Micro Devices, Inc. Enhancing lifetime of non-volatile cache by injecting random replacement policy
US10909012B2 (en) * 2018-11-12 2021-02-02 H3 Platform, Inc. System having persistent memory
CN110008059B (zh) * 2019-02-20 2021-05-11 深圳市汇顶科技股份有限公司 非易失性存储介质的数据更新方法、装置及存储介质
CN112114738B (zh) * 2019-06-20 2024-02-20 杭州海康威视数字技术股份有限公司 一种存储数据的方法及存储设备
CN111309645B (zh) * 2020-03-12 2023-06-27 上海交通大学 基于非易失性内存的新型混合内存垃圾回收方法及系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1540670A (zh) * 2002-04-24 2004-10-27 �����ɷ� 更新非易失性内存的方法与系统
CN1691207A (zh) * 2004-04-30 2005-11-02 晶豪科技股份有限公司 非易失性内存防止过度擦除的电路及方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1540670A (zh) * 2002-04-24 2004-10-27 �����ɷ� 更新非易失性内存的方法与系统
CN1691207A (zh) * 2004-04-30 2005-11-02 晶豪科技股份有限公司 非易失性内存防止过度擦除的电路及方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9495299B2 (en) 2011-12-26 2016-11-15 Renesas Electronics Corporation Data processing device utilizing way selection of set associative cache memory based on select data such as parity data

Also Published As

Publication number Publication date
CN101620572A (zh) 2010-01-06

Similar Documents

Publication Publication Date Title
CN101620572B (zh) 非易失性内存及控制方法
CN101957796B (zh) 存储系统及信息处理设备
CN106527969B (zh) 一种寿命均衡的NandFlash存储器读写方法
CN101604548B (zh) 一种固态硬盘及数据存储方法
CN101494086B (zh) 快闪存储器储存装置、快闪存储器控制器及其切换方法
CN101556555B (zh) 用于闪存的区块管理方法、其控制器与储存系统
CN101499315B (zh) 快闪存储器平均磨损方法及其控制器
TW200608201A (en) Nonvolatile storage device and data write method
CN104899154B (zh) 基于嵌入式系统混合主存的页面管理方法
CN104866428A (zh) 数据存取方法和数据存取装置
CN103838676B (zh) 数据存储系统、数据存储方法及pcm桥
CN101625897A (zh) 用于快闪存储器的数据写入方法、储存系统与控制器
CN102999441A (zh) 一种细粒度内存访问的方法
CN101661431B (zh) 用于快闪存储器的区块管理方法、快闪储存系统及控制器
CN102520885B (zh) 一种混合硬盘的数据管理系统
CN102097125B (zh) 相变存储器的写操作方法
CN103019624B (zh) 一种相变内存装置
CN102789422B (zh) 固态硬盘的数据写入方法
CN101520688B (zh) 一种数据存储方法、装置及系统
CN103246615A (zh) 一种闪存存储设备中数据管理的方法及装置
CN101526922B (zh) 一种闪存的数据存取方法及装置
CN102411543A (zh) 缓存地址的处理方法和装置
CN102043591B (zh) Pram的写操作方法
US20100153624A1 (en) Data managing method for non-volatile memory and non-volatile memory device using the same
CN105205015A (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
ASS Succession or assignment of patent right

Owner name: SHANGHAI HUAHONG GRACE SEMICONDUCTOR MANUFACTURING

Free format text: FORMER OWNER: HUAHONG NEC ELECTRONICS CO LTD, SHANGHAI

Effective date: 20140110

C41 Transfer of patent application or patent right or utility model
COR Change of bibliographic data

Free format text: CORRECT: ADDRESS; FROM: 201206 PUDONG NEW AREA, SHANGHAI TO: 201203 PUDONG NEW AREA, SHANGHAI

TR01 Transfer of patent right

Effective date of registration: 20140110

Address after: 201203 Shanghai city Zuchongzhi road Pudong New Area Zhangjiang hi tech Park No. 1399

Patentee after: Shanghai Huahong Grace Semiconductor Manufacturing Corporation

Address before: 201206, Shanghai, Pudong New Area, Sichuan Road, No. 1188 Bridge

Patentee before: Shanghai Huahong NEC Electronics Co., Ltd.