CN111258925B - 非易失内存的访问方法、装置、内存控制器、设备及介质 - Google Patents
非易失内存的访问方法、装置、内存控制器、设备及介质 Download PDFInfo
- Publication number
- CN111258925B CN111258925B CN202010063832.3A CN202010063832A CN111258925B CN 111258925 B CN111258925 B CN 111258925B CN 202010063832 A CN202010063832 A CN 202010063832A CN 111258925 B CN111258925 B CN 111258925B
- Authority
- CN
- China
- Prior art keywords
- address
- row address
- target
- row
- original
- 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
Links
- 230000015654 memory Effects 0.000 title claims abstract description 235
- 238000000034 method Methods 0.000 title claims abstract description 56
- 238000004590 computer program Methods 0.000 claims description 5
- 238000010586 diagram Methods 0.000 description 10
- 230000002035 prolonged effect Effects 0.000 description 10
- 230000008901 benefit Effects 0.000 description 9
- 230000006870 function Effects 0.000 description 5
- 239000003990 capacitor Substances 0.000 description 4
- 230000009286 beneficial effect Effects 0.000 description 3
- 230000006872 improvement Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 238000005299 abrasion Methods 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Images
Classifications
-
- 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
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
技术领域
本发明实施例涉及存储器技术领域,尤其涉及一种非易失内存的访问方法、装置、内存控制器、设备及存储介质。
背景技术
近年来,非易失存储器(Non-Volatile Memory,NVM)技术得到了快速发展,其中,非易失存储器包括相变存储器(Phase Change Memory,PCM)、磁随机存储器(MagneticRandom Access Memory,MRAM)、阻变随机存储器(Resistive Random Access Memory,RRAM)和3D-Xpoint等。
与动态随机存储器(Dynamic Random Access Memory,DRAM)内存相比,非易失存储器件具有更高的存储密度、更大的存储容量以及无需刷新等优点,但存在着使用寿命较短的缺陷。通常认为动态随机存储器可以无限次(即1016次)写入,即写次数阈值为无穷大,但非易失存储器的写操作受限,以相变存储器为例,其写次数阈值属于108-109次。由于器件磨损不均衡,因此,会导致某些内存单元会发生更加密集的读写,很容易达到写次数阈值。当这部分内存单元的写操作次数达到写次数阈值时,便会使得非易失存储器失效,即降低了非易失存储器的使用寿命,进而影响了整个内存系统的可靠性。上述器件磨损不均衡是指内存单元的写操作次数的不均衡性。
非易失存储器存在的上述问题亟待解决。
发明内容
本发明实施例提供了一种非易失内存的访问方法、装置、内存控制器、设备及存储介质,以延长非易失存储器的使用寿命,进而提高内存系统的可靠性。
第一方面,本发明实施例提供了一种非易失内存的访问方法,该方法包括:
获取对非易失内存的访问请求,所述访问请求包括物理地址和操作属性标识,所述操作属性标识为读操作标识或写操作标识,如果所述操作属性标识为所述写操作标识,则所述访问请求还包括待写数据;
对所述物理地址进行解析,确定与所述物理地址对应的目标地址;
根据行重映射表和与所述目标地址对应的原始行地址,确定访问行地址,所述行重映射表包括至少一个行重映射关系,每个所述行重映射关系为每个目标行地址和与所述目标行地址对应的交换行地址之间的对应关系,所述目标行地址为所述非易失内存中写操作次数等于写次数阈值的原始行地址,所述交换行地址为所述非易失内存中写操作次数小于所述写次数阈值的原始行地址,所述访问行地址为与所述目标地址对应的原始行地址或所述交换行地址;
根据所述访问请求,对由所述访问行地址和所述目标地址确定的内存单元进行访问。
进一步的,所述根据行重映射表和与所述目标地址对应的原始行地址,确定访问行地址,包括:
如果行重映射表存在与所述目标地址对应的原始行地址所一致的目标行地址,则根据所述目标行地址,确定与所述目标行地址对应的交换行地址,并将所述交换行地址作为访问行地址;
如果所述行重映射表不存在与所述目标地址对应的原始行地址所一致的目标行地址,则将与所述目标地址对应的原始行地址作为访问行地址。
进一步的,所述操作属性标识为写操作标识;
所述根据所述访问请求,对由所述访问行地址和所述目标地址确定的内存单元进行访问之后,还包括:
在磨损记录表中,对所述交换行地址的写操作次数进行更新或对与所述目标地址对应的原始行地址的写操作次数进行更新。
进一步的,所述获取对内存的访问请求之前,还包括:
获取各原始行地址的写操作次数;
针对每个所述原始行地址,如果所述原始行地址的写操作次数小于写次数阈值,则将所述原始行地址和所述原始行地址的写操作次数关联存储至磨损记录表;
如果所述原始行地址的写操作次数等于写次数阈值,则将所述原始行作地址为目标行地址;
基于磨损均衡算法,确定与所述目标行地址对应的交换行地址,并将所述目标行地址和所述交换行地址作为一个行重映射关系存储至行重映射表。
进一步的,所述如果所述原始行地址的写操作次数等于写次数阈值,则将所述原始行地址作为目标行地址之后,还包括:
获取所述目标行地址的行缓冲命中率;
所述基于磨损均衡算法,确定与所述目标行地址对应的交换行地址,包括:
如果所述目标行地址的行缓冲命中率小于等于行缓冲命中率阈值,则基于磨损均衡算法,确定与所述目标行地址对应的交换行地址。
进一步的,所述获取所述目标行地址的行缓冲命中率之后,还包括:
如果所述目标行地址的行缓冲命中率大于所述行缓冲命中率阈值,则执行延迟操作,以延迟将所述目标行地址存储至所述行重映射表。
进一步的,所述如果所述目标行地址的行缓冲命中率大于所述行缓冲命中率阈值,则执行延迟操作,包括:
如果所述目标行地址的行缓冲命中率大于所述行缓冲命中率阈值,则增加所述目标行地址的写次数阈值。
进一步的,所述基于磨损均衡算法,确定与所述目标行地址对应的交换行地址,包括:
比较各所述原始行地址的写操作次数;
将写操作次数最小的原始行地址确定为与所述目标行地址对应的交换行地址。
进一步的,所述比较各所述原始行地址的写操作次数,包括:
比较具有同一Bank标识的各所述原始行地址的写操作次数。
第二方面,本发明实施例还提供了一种非易失内存的访问装置,该装置包括:
访问请求获取模块,用于获取对非易内存的访问请求,所述访问请求包括物理地址和操作标识,所述操作标识为读操作标识或写操作标识,如果所述操作标识为写操作标识,则所述访问请求还包括待写数据;
目标地址确定模块,用于对所述物理地址进行解析,确定与所述物理地址对应的目标地址;
访问行地址确定模块,用于根据行重映射表和与所述目标地址对应的原始行地址,确定访问行地址,所述行重映射表包括至少一个行重映射关系,每个所述行重映射关系为每个目标行地址和与所述目标行地址对应的交换行地址之间的对应关系,所述目标行地址为所述非易失内存中写操作次数等于写次数阈值的原始行地址,所述交换行地址为所述非易失内存中写操作次数小于所述写次数阈值的原始行地址,所述访问行地址为与所述目标地址对应的原始行地址或所述交换行地址;
访问操作执行模块,用于根据所述访问请求,对与所述访问行地址对应的访问行进行访问。
第三方面,本发明实施例还提供了一种内存控制器,该内存控制器包括本发明实施例第二方面所述的非易失内存的访问装置。
第四方面,本发明实施例还提供了一种设备,该设备包括:
一个或多个内存控制器;
非易失存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个内存控制器执行,使得所述内存控制器实现如本发明实施例第一方面所述的方法。
第五方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被内存控制器执行时实现如本发明第一方面所述的方法。
本发明实施例,通过内存控制器根据行重映射表和与目标地址对应的原始行地址,确定访问行地址,由于访问行地址为与目标地址对应的原始行地址或交换行地址,其中,将交换行地址作为访问行地址是在当与目标地址对应的原始行地址为目标行地址的情况下,目标行地址为写操作次数等于写次数阈值的原始行地址,而上述无论是与目标地址对应的原始行地址,还是交换行地址,这两者的写操作次数均小于写次数阈值,因此,解决了非易失存储器所存在的器件磨损不均衡问题,进而延长了非易失存储器的使用寿命,从而提高了内存系统的可靠性。
附图说明
图1是本发明实施例中的一种行缓冲结构的结构示意图;
图2是本发明实施例中的一种非易失内存的访问方法的流程图;
图3是本发明实施例中的另一种非易失内存的访问方法的流程图;
图4是本发明实施例中的一种非易失内存的访问方法的示意图;
图5是本发明实施例中的一种非易失内存的访问装置的结构示意图;
图6是本发明实施例中的一种内存控制器的结构示意图;
图7是本发明实施例中的一种设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定,实施例中记载的各个特征可进行组合,形成多个可选方案。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
由于非易失存储器存在的器件磨损不均衡问题是导致非易失存储器的使用寿命受限,进而降低内存系统的可靠性的主要原因,因此,为了延长非易失存储器的使用寿命,进而提高内存系统的可靠性,需要解决器件磨损不均衡问题。根据上文所述可知,器件磨损不均衡是指内存单元的写操作次数的不均衡性,即某些内存单元容易发生写操作,某些内存单元不容易发生写操作,因此,为了解除器件磨损不均衡,需要对内存单元的写操作进行均衡。
处理器用来接收目标程序执行过程中所生成的对内存的访问请求,并将访问请求发送给内存控制器。内存控制器是设备内部控制内存与处理器之间交换数据的重要组成部分。在传统的动态随机存储器中,内存单元依靠电容来存储数据,由于电容的容量较小,因此,每次通过电容获取数据时,都需要经过放大器来放大电容中的信号,再进行判断,得到内存单元中存储的0或者1。由于放大器会缓冲一整行的数据,因此,放大器便形成了行缓冲结构。为了保证非易失存储的通用性,非易失存储器也设置了行缓冲结构。行缓冲结构可以作为缓冲区暂存内存中的某一行数据。当内存控制器接收到对内存的访问请求后,便会被划分为一个独立的行访问和列访问。如图1所示,给出了一种行缓冲结构的结构示意图。
由于本发明实施例是基于行缓冲结构实现对内存的访问,因此,对内存单元的写操作进行均衡可进一步为对各原始行进行均衡,具体可为:如果某原始行的写操作次数等于写次数阈值,则可将该原始行作为目标行,并可基于磨损均衡算法,从其它原始行中确定一个原始行作为交换行,交换行可为写操作次数小于写次数阈值的原始行,设置该目标行的目标行地址和该交换行的交换行地址之间的行重映射关系,实现当需访问该目标行(即该原始行)时,转换为访问与该目标行的目标行地址具有行重映射关系的交换行。上述原始行可由原始行地址表示,目标行可由目标行地址表示,交换行可由交换行地址表示。上述行重映射关系可存储至行重映射表。下面将结合具体实施例进行说明。
图2为本发明实施例提供的一种非易失内存的访问方法的流程图,本实施例可适用于延长非易失存储器的使用寿命,进而提高内存系统的可靠性的情况,该方法可以由非易失内存的访问装置来执行,该装置可以采用软件和/或硬件的方式实现,该装置可以配置于内存控制器中,内存控制器可以配置于设备中,例如计算机等。如图2所示,该方法具体包括如下步骤:
步骤110、获取对非易失内存的访问请求,访问请求包括物理地址和操作属性标识,操作属性标识为读操作标识或写操作标识,如果操作属性标识为写操作标识,则访问请求还包括待写数据。
在本发明的实施例中,访问请求可包括物理地址和操作属性标识。其中,操作属性标识可用于确定访存操作的属性,即访存操作是写操作还是读操作。操作属性标识可为读操作标识或写操作标识。读操作标识可用于表示访存操作为读操作。写操作标识可用于表示访存操作为写操作。此外,需要说明的是,如果操作属性标识为写操作标识,则访问请求还可包括待写数据。其中,待写数据可理解为需要写入内存的数据。
处理器生成对非易失内存的访问请求,并将访问请求发送给内存控制器。内存控制器接收到访问请求,访问请求会被添加至事务队列。内存控制器从事务队列中选择要处理的访问请求,以便根据访问请求,进行访存操作。
步骤120、对物理地址进行解析,确定与物理地址对应的目标地址。
步骤130、根据行重映射表和与目标地址对应的原始行地址,确定访问行地址,行重映射表包括至少一个行重映射关系,每个行重映射关系为每个目标行地址和与目标行地址对应的交换行地址之间的对应关系,目标行地址为非易失内存中写操作次数等于写次数阈值的原始行地址,交换行地址为非易失内存中写操作次数小于写次数阈值的原始行地址,访问行地址为与目标地址对应的原始行地址或交换行地址。
在本发明的实施例中,行重映射表可存储有至少一个行重映射关系。每个行重映射关系可为每个目标行地址和与该目标行地址对应的交换行地址之间的对应关系。其中,目标行为内存中原始行的写操作次数等于写次数阈值的原始行。交换行为内存中原始行的写操作次数小于写操作次数阈值的原始行。即如果原始行的写操作次数等于写次数阈值,则该原始行可称为目标行。如果原始行的写操作次数小于写次数阈值,则该原始行可用于作为交换行。需要说明的是,小于写次数阈值的原始行是否可作为某目标行所对应的交换行,可基于磨损均衡算法所确定。可选的,交换行可为写操作次数最小的原始行。原始行地址可理解为原始行的行地址。目标行地址可理解为目标行的行地址。交换行地址可理解为交换行的行地址。可以理解到,目标行和交换行均属于原始行。基于此,目标行地址可理解为写操作次数等于写次数阈值的原始行地址。交换行地址可理解为写操作次数小于写次数阈值的原始行地址。此外,还可以理解到,针对某原始行来说,其可能为与其它原始行对应的交换行,也可能随着写操作次数的增加而变成目标行。此外,由于行重映射关系表中存储的是目标行地址和与该目标行地址对应的交换行地址,目标行地址为写操作次数等于写次数阈值的原始行地址,因此,如果可在行重映射表中查找到目标行地址,则可说明需要对待访问的原始行执行均衡操作,即需转换为访问与该目标行的目标行地址具有行重映射关系的交换行。如果在行重映射表中未查找到目标行地址,则可说明无需对待访问的原始行执行均衡操作。
内存控制器对物理地址进行解析,以得到与物理地址对应的目标地址。目标地址指的是具体的内存地址,如目标地址可包括Channel、Rank、Bank、Row和Column等信息。内存控制器可从行重映射表中,查找是否存在与目标地址对应的原始行地址所一致的目标行地址,并根据查找结果,确定访问行地址,访问行地址可为与目标地址对应的原始行地址或者为交换行地址。具体的:如果存在与目标地址对应的原始行地址所一致的目标行地址,则可根据目标行地址,确定与目标行地址对应的交换行地址,并可将交换行地址作为访问行地址。如果未存在与目标地址对应的原始行地址所一致的目标行地址,则可将与目标地址对应的原始行地址作为访问行地址。
上述内存控制器通过根据行重映射表和与目标地址对应的原始行地址,确定访问行地址,由于访问行地址为与目标地址对应的原始行地址或交换行地址,其中,将交换行地址作为访问行地址是在当与目标地址对应的原始行地址为目标行地址的情况下,目标行地址为写操作次数等于写次数阈值的原始行地址,而上述无论是与目标地址对应的原始行地址,还是交换行地址,这两者的写操作次数均小于写次数阈值,因此,解决了非易失存储器所存在的器件磨损不均衡问题,进而延长了非易失存储器的使用寿命,从而提高了内存系统的可靠性。
步骤140、根据访问请求,对由访问行地址和目标地址确定的内存单元进行访问。
在本发明的实施例中,如果操作属性标识为写操作标识,则内存控制根据访问请求,对由访问行地址和目标地址确定的内存单元进行访问,可作如下理解:内存控制器可将待写数据写入由访问行地址和目标地址所确定的内存单元。如果操作属性标识为读操作标识,则内存控制根据访问请求,对由访问行地址和目标地址确定的内存单元进行访问,可作如下理解:内存控制器可对由访问行地址和目标地址所确定的内存单元进行访问。
本实施例的技术方案,通过内存控制器根据行重映射表和与目标地址对应的原始行地址,确定访问行地址,由于访问行地址为与目标地址对应的原始行地址或交换行地址,其中,将交换行地址作为访问行地址是在当与目标地址对应的原始行地址为目标行地址的情况下,目标行地址为写操作次数等于写次数阈值的原始行地址,而上述无论是与目标地址对应的原始行地址,还是交换行地址,这两者的写操作次数均小于写次数阈值,因此,解决了非易失存储器所存在的器件磨损不均衡问题,进而延长了非易失存储器的使用寿命,从而提高了内存系统的可靠性。
可选的,在上述技术方案的基础上,根据行重映射表和与目标地址对应的原始行地址,确定访问行地址,具体可以包括:如果行重映射表存在与目标地址对应的原始行地址所一致的目标行地址,则根据目标行地址,确定与目标行地址对应的交换行地址,并将交换行作为访问行地址。如果行重映射表不存在与目标地址对应的原始行地址所一致的目标行地址,则将与目标地址对应的原始行地址作为访问行地址。
在本发明的实施例中,行重映射表存储有至少一个行重映射关系,每个行重映射关系为每个目标行地址和与该目标行地址对应的交换行地址之间的对应关系。内存控制器在获得目标地址后,可从行重映射表中,查找是否存在与目标地址对应的原始行地址所一致的目标行地址。如果存在与目标地址对应的原始行地址所一致的目标行地址,则可说明与目标地址对应的原始行地址为写操作次数等于写次数阈值的原始行地址,需转换为访问与该目标行的目标行地址具有行重映射关系的交换行。在上述情况下,可根据目标行地址,确定与目标行地址对应的交换行地址,将交换行地址作为访问行地址,即将交换行作为访问行。如果未存在与目标地址对应的原始行地址所一致的目标行地址,则可说明与目标地址对应的原始行地址为写操作次数小于写次数阈值的原始行地址,可直接将与目标地址对应的原始行地址作为访问行地址,即与目标地址对应的原始行即为访问行。
上述内存控制器如果从行重映射表中查找到存在与目标地址对应的原始行地址所一致的目标行地址,则可说明该原始行地址为需要执行磨损均衡操作的原始行地址,通过将与目标行地址对应的交换行地址作为访问行地址,交换行地址为写操作次数小于写次数阈值的原始行地址,解决了非易失存储器所存在的器件磨损不均衡问题,进而延长了非易失存储器的使用寿命,从而提高了内存系统的可靠性。
可选的,在上述技术方案的基础上,操作属性标识为写操作标识。根据访问请求,对由访问行地址和目标地址确定的内存单元进行访问之后,具体还可以包括:在磨损记录表中,对交换行地址的写操作次数进行更新或对与目标地址对应的原始行地址的写操作次数进行更新。
在本发明的实施例中,磨损记录表可用于存储非易失内存中写操作次数小于写次数阈值的原始行的写操作次数。原始行可用原始行地址表示。即磨损记录表可用于存储非易失内存中写操作次数小于写次数阈值的原始行地址的写操作次数。即针对每个写操作次数小于写次数阈值的原始行,如果对该原始行执行了写操作,则可将与该原始行地址对应的写操作次数进行更新。所述更新可理解为在原有写操作次数的基础上增加一次。
在磨损记录表中,对交换行地址的写操作次数进行更新或对与目标地址对应的原始行地址的写操作次数进行更新,可作如下理解:如果行重映射表存在与目标地址对应的原始行地址所一致的目标行地址,则在磨损记录表中,对与交换行地址对应的写操作次数进行更新。如果行重映射表不存在与目标地址对应的原始行地址所一致的目标行地址,则对与目标地址对应的原始行地址的写操作次数进行更新。
可以理解到,磨损记录表中写操作次数是根据实际情况动态更新的。
可选的,在上述技术方案的基础上,获取对内存的访问请求之前,具体还可以包括:获取各原始行地址的写操作次数。针对每个原始行地址,如果原始行地址的写操作次数小于写次数阈值,则将原始行地址和原始行地址的写操作次数关联存储至磨损记录表。如果原始行地址的写操作次数等于写次数阈值,则将原始行地址作为目标行地址。基于磨损均衡算法,确定与目标行地址对应的交换行地址,并将目标行地址和交换行地址作为一个行重映射关系存储至行重映射表。
在本发明的实施例中,内存控制器可获取各原始行的写操作次数,原始行可由原始行地址表示,即内存控制器可获取各原始行地址的写操作次数。针对每个原始行地址,如果与该原始行地址对应的写操作次数小于写次数阈值,则可将该原始行地址和原始行地址的写操作次数关联存储至磨损记录表。如果与该原始行地址对应的写操作次数等于写次数阈值,则可将该原始行地址作为目标行地址,并可基于磨损均衡算法,确定与该目标行地址对应的交换行地址,并将目标行地址和交换行地址作为一个行重映射关系存储至行重映射表。可比较各原始行地址的写操作次数,将写操作次数最小的原始行地址确定为与目标行地址对应的交换行地址。写次数最小的原始行地址可能为写操作次数为零的原始行地址。上述将目标行地址和交换行地址作为一个行重映射关系存储至行重映射表的作用是:为了保证当该目标行下一次被访问时,能够被顺利查找到与该目标行地址对应的交换行地址,从而保证所获取的数据是正确的。
需要说明的是,由于过高的写次数阈值无法起到磨损均衡的效果,而过于频繁的交换会降低行缓冲的工作效率,因此,写次数阈值的具体数值可根据实际情况进行设定。可选的,写次数阈值为103次。
另需要说明的是,不同原始行的写次数阈值可以相同,也可以不同,具体可根据实际情况进行设定,在此不作具体限定。
还需要说明的是,由于各原始行地址的写操作次数将随着写操作次数的增加而增加,如果某原始行地址的写操作次数等于对应的写次数阈值,则可将该原始行地址和该原始行地址的写操作次数从磨损记录表中删除,因此,可理解为磨损记录表中所存储的是写操作次数小于对应的写次数阈值的原始行地址的写操作次数。
可选的,在上述技术方案的基础上,如果原始行地址的写操作次数等于写次数阈值,则将原始行地址作为目标行地址之后,具体还可以包括:获取目标行地址的行缓冲命中率。基于磨损均衡算法,确定与目标行地址对应的交换行地址,具体可以包括:如果目标行地址的行缓冲命中率小于等于行缓冲命中率阈值,则基于磨损均衡算法,确定与目标行地址对应的交换行地址。
在本发明的实施例中,由于程序的访问通常具有局部性,而行缓冲的一个重要的作用便是充分利用局部性来提升访问的效率,因此,在使用开页策略时,当下一次访问依然在同一原始行时,可以直接访问行缓冲,这种情况称为行缓冲命中。如果下一次要访问其它原始行,则需要先进行当前访问的原始行的预充电,再激活待访问的下一原始行,这种情况称为行缓冲不命中。行缓冲命中后,只需列访问就可以完成访问请求,因此,行缓冲命中率越高,对于提升访问效率越有利。
由于非易失存储器的特殊性质,行缓冲不命中带来的额外开销更大,因此,为了保证行缓冲命中率,在本发明实施例中,在记录各原始行的写操作次数的同时,还可记录各原始行的行缓冲命中次数,以确定行缓冲命中率。针对行缓冲命中率大于行缓冲命中率阈值的原始行来说,为了充分发挥其行缓冲命中的优势,需尽量减少该原始行的变动,尽可能多的使用具有上述优势的原始行。
基于上述,内存控制器需要获取目标行地址的行缓冲命中率,确定目标行地址的行缓冲命中率阈值是否大于行缓冲命中率阈值。内存控制器如果确定目标行地址的行缓冲命中率小于等于行缓冲命中率阈值,则可说明目标行的行缓冲命中率并不高,可基于磨损均衡算法,确定与目标行地址对应的交换行地址。
需要说明的是,行缓冲命中率阈值的具体数值大小可根据实际情况进行设定,在此不作具体限定。不同目标行的行缓冲命中率阈值可相同,也可不同,具体可根据实际情况进行设定,在此不作具体限定。
可选的,在上述技术方案的基础上,获取目标行地址的行缓冲命中率之后,具体还可包括:如果目标行地址的行缓冲命中率大于行缓冲命中率阈值,则执行延迟操作,以延迟将目标行地址存储至行重映射表。
在本发明的实施例中,为了确保行缓冲命中率大于行缓冲命中率阈值可以充分发挥其行缓冲命中的优势,需尽量减少该原始行的变动,尽可能多的使用具有上述优势的原始行。基于上述,可执行延迟操作,具体的:将写操作次数等于写次数阈值的原始行地址作为目标行地址,获取目标行地址的行缓冲命中率,如果目标行地址的行缓冲命中率大于行缓冲命中率阈值,则可执行延迟操作,以实现延迟执行确定与目标行地址对应的交换行地址,将目标行地址和交换行地址作为一个行重映射关系存储至行重映射表的操作,以推迟将原始行地址作为目标行地址的时间,相应的,可增加原始行被写入数据的次数。上述可在一定程度上保持访存的效率。
上述由于行缓冲命中率越高,对提高访问内存的效率越有利,因此,通过采用行缓冲命中率保护机制,可实现提高访问内存的效率。
可选的,在上述技术方案的基础上,如果目标行地址的行缓冲命中率大于行缓冲命中率阈值,则执行延迟操作,具体可以包括:如果目标行地址的行缓冲命中率大于行缓冲命中率阈值,则增加目标行地址的写次数阈值。
在本发明的实施例中,为了确保行缓冲命中率大于行缓冲命中率阈值可以充分发挥其行缓冲命中的优势,需尽量减少该原始行的变动,尽可能多的使用具有上述优势的原始行。基于上述,可采用增加目标行地址的写次数阈值,以推迟将原始行地址作为目标行地址的时间,相应的,可增加原始行被写入数据的次数。
示例性的,如行缓冲命中率阈值为50%。原某原始行地址的写次数阈值为103次,该原始行地址的写操作次数为103次,该原始行地址的行缓冲命中率为80%。由于该原始行地址的写操作次数等于原写次数阈值,因此,如果仅根据写次数阈值,则该原始行地址将作为目标行地址,进而执行确定与该目标行地址对应的交换行地址,将该目标行地址和该交换行地址作为一个行重映射关系存储至行重映射表的操作。但由于该原始行地址的行缓冲命中率大于行缓冲命中率阈值,因此,需要充分发挥其行缓冲命中的优势,需尽量减少该原始行的变动,尽可能多的使用具有上述优势的原始行。基于此,可增加该原始行地址的写次数阈值,如可设置该原始行地址的写次数阈值为104次。由于该原始行地址的写操作次数小于现写次数阈值,因此,当前该原始行地址将不会被作为目标行地址,仍可被执行写操作。
可选的,在上述技术方案的基础上,基于磨损均衡算法,确定与目标行地址对应的交换行地址,具体可以包括:比较各原始行地址的写操作次数。将写操作次数最小的原始行地址确定为与目标行地址对应的交换行地址。
在本发明的实施例中,内存控制器获取与各原始行地址对应的写操作次数后,可比较各原始行地址的写操作次数,从各原始行地址的写操作次数中,选择写操作次数最小的原始行地址作为与目标行地址对应的交换行地址。可以理解到,写操作次数最小的原始行地址可能为写操作次数为零的原始行地址。需要说明的是,如果写操作次数最小的原始行地址的个数为不止一个,则可根据实际情况从中选择一个作为目标行地址。
还需要说明的是,上述所述的各原始行地址可以是具有相同Bank标识的原始行地址,即各原始行地址属于同一Bank,也可以是具有不同Bank标识的原始行地址,即各原始行地址并不一定属于同一Bank,具体可根据实际情况进行设定,在此不作具体限定。
可选的,在上述技术方案的基础上,比较各原始行地址的写操作次数,具体可以包括:比较具有同一Bank标识的各原始行地址的写操作次数。
在本发明的实施例中,为了便于管理,提高工作效率,节约资源,可在确定与目标行地址对应的交换行地址时,只比较具有同一Bank标识的各原始行地址,上述各原始行地址为写操作次数小于写次数阈值的原始行地址,换句话说,针对每个目标行地址,在确定与该目标行地址对应的交换行地址时,选择范围是具有相同Bank标识的各原始行地址中。通常情况下,由于非易失存储器包括8个Bank,因此,内存控制器会维护8个Bank的磨损记录,即磨损记录表中包括8个记录区域,每个记录区域存储有具有同一Bank标识的与各原始行地址对应的写操作次数。并且,在确定与目标行地址对应的交换行地址时,仅限于同一Bank,不涉及属于不同Bank之间的行交换。上述可大大减少所记录的内容,提高工作效率,节约资源。
图3为本发明实施例提供的另一种非易失内存的访问方法的流程图,本实施例是上述实施例的一个具体示例。本实施例可适用于延长非易失存储器的使用寿命,进而提高内存系统的可靠性的情况,该方法可以由非易失内存的访问装置来执行,该装置可以采用软件和/或硬件的方式实现,该装置可以配置于内存控制器中,内存控制器可以配置于设备中,例如计算机等。如图3所示,该方法具体包括如下步骤:
步骤201、获取非易失内存的各原始行地址的写操作次数。
步骤202、针对每个原始行地址,如果原始行地址的写操作次数小于写次数阈值,则将原始行地址和原始行地址的写操作次数关联存储至磨损记录表,并执行步骤208。
步骤203、针对每个原始行地址,如果原始行地址的写操作次数等于写次数阈值,则将原始行地址作为目标行地址,并获取目标行地址的行缓冲命中率。
步骤204、目标行地址的行缓冲命中率是否大于行缓冲命中率阈值;若是,则执行步骤205;若否,则执行步骤206。
步骤205、增加目标行地址的写次数阈值,并执行步骤208。
步骤206、比较具有同一Bank标识的各原始行地址的写操作次数。
步骤207、将写操作次数最小的原始行地址确定为与目标行地址对应的交换行地址,并将目标行地址和交换行地址作为一个行重映射关系存储至行重映射表。
步骤208、获取对非易失内存的访问请求,访问请求包括物理地址、写操作标识和待写数据。
步骤209、对物理地址进行解析,确定与物理地址对应的目标地址。
步骤210、行重映射表是否存在与目标地址对应的原始行地址所一致的目标行地址;若是,则执行步骤211;若否,则执行步骤212。
步骤211、根据目标行地址,确定与目标行地址对应的交换行地址,并将交换行地址作为访问行地址,并执行步骤213。
步骤212、将与目标地址对应的原始行地址作为访问行地址,并执行步骤213。
步骤213、根据访问请求,对由访问行地址和目标地址确定的内存单元进行访问。
步骤214、在磨损记录表中,对交换行地址的写操作次数进行更新或对与目标地址对应的原始行地址的写操作次数进行更新。
在本发明的实施例中,为了更好地理解本发明实施例所提供的技术方案,下面将通过具体示例进行说明。
如图4所示,给出了一种非易失内存的访问方法的示意图。图4中的左图表示非易失内存包括原始行1、原始行2、原始行3和原始行4。内存控制器获取对非易失内存的访问请求,访问请求包括物理地址、写操作标识和待写数据。内存控制器对物理地址进行解析,确定与物理地址对应的目标地址。内存控制器确定与目标地址对应的原始行地址为原始行3的原始行地址。内存控制器在行重映射表中,查找到与目标地址对应的原始行地址所一致的目标行地址,即原始行3为目标行,原始行3的原始行地址即为目标行地址。内存控制器在行重映射表中,根据目标行地址,确定与目标行地址对应的交换行地址,交换行地址为原始行1的原始行地址,并将交换行地址作为访问行地址。内存控制器根据访问请求,对由访问行地址和目标地址确定的内存单元进行访问。上述目标行和交换行可参见图4中右图部分。
本实施例的技术方案,通过内存控制器根据行重映射表和与目标地址对应的原始行地址,确定访问行地址,由于访问行地址为与目标地址对应的原始行地址或交换行地址,其中,将交换行地址作为访问行地址是在当与目标地址对应的原始行地址为目标行地址的情况下,目标行地址为写操作次数等于写次数阈值的原始行地址,而上述无论是与目标地址对应的原始行地址,还是交换行地址,这两者的写操作次数均小于写次数阈值,因此,解决了非易失存储器所存在的器件磨损不均衡问题,进而延长了非易失存储器的使用寿命,从而提高了内存系统的可靠性。此外,通过采用行缓冲命中率保护机制,提高了访问内存的效率。
图5为本发明实施例提供的一种非易失内存的访问装置的结构示意图,本实施例可适用于延长非易失存储器的使用寿命,进而提高内存系统的可靠性的情况,该装置可以采用软件和/或硬件的方式实现,该装置可以配置于内存控制器,内存控制器可配置于设备中,例如计算机等。如图5所示,该装置具体包括:
访问请求获取模块310,用于获取对非易失内存的访问请求,访问请求包括物理地址和操作属性标识,操作属性标识为读操作标识或写操作标识,如果操作属性标识为写操作标识,则访问请求还包括待写数据。
目标地址确定模块320,用于对物理地址进行解析,确定与物理地址对应的目标地址。
访问行地址确定模块330,用于根据行重映射表和与目标地址对应的原始行地址,确定访问行地址,行重映射表包括至少一个行重映射关系,每个行重映射关系为每个目标行地址和与目标行地址对应的交换行地址之间的对应关系,目标行地址为非易失内存中写操作次数等于写次数阈值的原始行地址,交换行地址为非易失内存中写操作次数小于写次数阈值的原始行地址,访问行地址为与目标地址对应的原始行地址或交换行地址。
访问操作执行模块340,用于根据访问请求,对由访问行地址和目标地址确定的内存单元进行访问。
本实施例的技术方案,通过内存控制器根据行重映射表和与目标地址对应的原始行地址,确定访问行地址,由于访问行地址为与目标地址对应的原始行地址或交换行地址,其中,将交换行地址作为访问行地址是在当与目标地址对应的原始行地址为目标行地址的情况下,目标行地址为写操作次数等于写次数阈值的原始行地址,而上述无论是与目标地址对应的原始行地址,还是交换行地址,这两者的写操作次数均小于写次数阈值,因此,解决了非易失存储器所存在的器件磨损不均衡问题,进而延长了非易失存储器的使用寿命,从而提高了内存系统的可靠性。
可选的,在上述技术方案的基础上,访问行地址确定模块330,具体可以包括:
第一访问行地址确定子模块,用于如果行重映射表存在与目标地址对应的原始行地址所一致的目标行地址,则根据目标行地址,确定与目标行地址对应的交换行地址,并将交换行地址作为访问行地址。
第二访问行地址确定子模块,用于如果行重映射表不存在与目标地址对应的原始行地址所一致的目标行地址,则将与目标地址对应的原始行地址作为访问行地址。
可选的,在上述技术方案的基础上,操作属性标识为写操作标识。
该装置具体还可以包括:
写操作次数更新模块,用于在磨损记录表中,对交换行地址的写操作次数进行更新或对与目标地址对应的原始行地址的写操作次数进行更新。
可选的,在上述技术方案的基础上,该装置具体还可以包括:
写操作次数获取模块,用于获取各原始行地址的写操作次数。
关联存储模块,用于针对每个原始行地址,如果原始行地址的写操作次数小于写次数阈值,则将原始行地址和原始行地址的写操作次数关联存储至磨损记录表。
目标行地址确定模块,用于如果原始行地址的写操作次数等于写次数阈值,则将原始行作地址为目标行地址。
行重映射关系存储模块,用于基于磨损均衡算法,确定与目标行地址对应的交换行地址,并将目标行地址和交换行地址作为一个行重映射关系存储至行重映射表。
可选的,在上述技术方案的基础上,该装置具体还可以包括:
行缓冲命中率获取模块,用于获取目标行地址的行缓冲命中率。
行重映射关系存储模块,具体可以包括:
第一交换行地址确定子模块,用于如果目标行地址的行缓冲命中率小于等于行缓冲命中率阈值,则基于磨损均衡算法,确定与目标行地址对应的交换行地址。
可选的,在上述技术方案的基础上,该装置具体还可以包括:
延迟操作执行模块,用于如果目标行地址的行缓冲命中率大于行缓冲命中率阈值,则执行延迟操作,以延迟将目标行地址存储至行重映射表。
可选的,在上述技术方案的基础上,延迟操作执行模块具体可以包括:
写次数阈值增加子模块,用于如果目标行地址的行缓冲命中率大于行缓冲命中率阈值,则增加目标行地址的写次数阈值。
可选的,在上述技术方案的基础上,行重映射关系存储模块,具体可以包括:
写操作次数比较子模块,用于比较各原始行地址的写操作次数。
第二交换行地址确定子模块,用于将写操作次数最小的原始行地址确定为与目标行地址对应的交换行地址。
可选的,写操作次数比较子模块,具体可以包括:
写操作次数比较单元,用于比较具有同一Bank标识的各所述原始行地址的写操作次数。
本发明实施例所提供的非易失内存的访问装置可执行本发明任意实施例所提供的非易失内存的访问方法,具备执行方法相应的功能模块和有益效果。
图6为本发明实施例提供的一种内存控制器的结构示意图,本实施例可适用于延长非易失存储器的使用寿命,进而提高内存系统的可靠性的情况,该内存控制器可以配置于设备中,例如计算机等。如图6所示,该内存控制器31具体可以包括本发明实施例所述的非易失内存的访问装置。
非易失内存的访问装置具体可以包括访问请求获取模块310、目标地址确定模块320、访问行地址确定模块330和访问操作执行模块340。
本实施例的技术方案,通过内存控制器根据行重映射表和与目标地址对应的原始行地址,确定访问行地址,由于访问行地址为与目标地址对应的原始行地址或交换行地址,其中,将交换行地址作为访问行地址是在当与目标地址对应的原始行地址为目标行地址的情况下,目标行地址为写操作次数等于写次数阈值的原始行地址,而上述无论是与目标地址对应的原始行地址,还是交换行地址,这两者的写操作次数均小于写次数阈值,因此,解决了非易失存储器所存在的器件磨损不均衡问题,进而延长了非易失存储器的使用寿命,从而提高了内存系统的可靠性。
图7为本发明实施例提供的一种设备的结构示意图。图7显示的设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。如图7所示,本发明实施例提供的设备,包括内存控制器31、处理器32、非易失存储器33、输入装置34和输出装置35;设备中处理器32的数量可以是一个或多个,图7中以一个处理器32为例;设备中的处理器32、非易失存储器33、输入装置34和输出装置35可以通过总线或其他方式连接,图7中以通过总线连接为例。
非易失存储器33作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的非易失内存的访问方法对应的程序指令/模块(例如,非易失内存的访问装置中的访问请求获取模块310、目标地址确定模块320、访问行地址确定模块330和访问操作执行模块340)。内存控制器31通过运行存储在非易失存储器33中的软件程序、指令以及模块,从而执行各种功能应用以及数据处理,例如实现本发明实施例所提供的应用于设备的非易失内存的访问方法。
非易失存储器33可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据设备的使用所创建的数据等。此外,非易失存储器33可为至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,非易失存储器33可进一步包括相对于处理器32远程设置的存储器,这些远程存储器可以通过网络连接至设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置34可用于接收用户输入的数字或字符信息,以产生与设备的用户设置以及功能控制有关的键信号输入。输出装置35可包括显示屏等显示设备。
当然,本领域技术人员可以理解,内存控制器31还可以实现本发明任意实施例所提供应用于设备的非易失内存的访问方法的技术方案。该设备的硬件结构以及功能可参见实施例的内容解释。
本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明实施例所提供的一种非易失内存的访问方法,该方法包括:
获取对非易失内存的访问请求,访问请求包括物理地址和操作属性标识,操作属性标识为读操作标识或写操作标识,如果操作属性标识为写操作标识,则访问请求还包括待写数据。
对物理地址进行解析,确定与物理地址对应的目标地址。
根据行重映射表和与目标地址对应的原始行地址,确定访问行地址,行重映射表包括至少一个行重映射关系,每个行重映射关系为每个目标行地址和与目标行地址对应的交换行地址之间的对应关系,目标行地址为非易失内存中写操作次数等于写次数阈值的原始行地址,交换行地址为非易失内存中写操作次数小于写次数阈值的原始行地址,访问行地址为与目标地址对应的原始行地址或交换行地址。
根据访问请求,对由访问行地址和目标地址确定的内存单元进行访问。
本发明实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、电线、光缆、射频等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,例如C语言和Python等。程序代码可以在计算机或服务器上执行。
当然,本发明实施例所提供的一种计算机可读存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的设备的非易失内存的访问方法的相关操作。对存储介质的介绍可参见实施例中的内容解释。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (13)
1.一种非易失内存的访问方法,其特征在于,包括:
获取对非易失内存的访问请求,所述访问请求包括物理地址和操作属性标识,所述操作属性标识为读操作标识或写操作标识,如果所述操作属性标识为所述写操作标识,则所述访问请求还包括待写数据;
对所述物理地址进行解析,确定与所述物理地址对应的目标地址;
根据行重映射表和与所述目标地址对应的原始行地址,确定访问行地址,所述行重映射表包括至少一个行重映射关系,每个所述行重映射关系为每个目标行地址和与所述目标行地址对应的交换行地址之间的对应关系,所述目标行地址为所述非易失内存中写操作次数等于写次数阈值的原始行地址,所述交换行地址为所述非易失内存中写操作次数小于所述写次数阈值的原始行地址,所述访问行地址为与所述目标地址对应的原始行地址或所述交换行地址;
根据所述访问请求,对由所述访问行地址和所述目标地址确定的内存单元进行访问。
2.根据权利要求1所述的方法,其特征在于,所述根据行重映射表和与所述目标地址对应的原始行地址,确定访问行地址,包括:
如果行重映射表存在与所述目标地址对应的原始行地址所一致的目标行地址,则根据所述目标行地址,确定与所述目标行地址对应的交换行地址,并将所述交换行地址作为访问行地址;
如果所述行重映射表不存在与所述目标地址对应的原始行地址所一致的目标行地址,则将与所述目标地址对应的原始行地址作为访问行地址。
3.根据权利要求2所述的方法,其特征在于,所述操作属性标识为写操作标识;
所述根据所述访问请求,对由所述访问行地址和所述目标地址确定的内存单元进行访问之后,还包括:
在磨损记录表中,对所述交换行地址的写操作次数进行更新或对与所述目标地址对应的原始行地址的写操作次数进行更新。
4.根据权利要求1-3任一所述的方法,其特征在于,所述获取对非易失内存的访问请求之前,还包括:
获取各原始行地址的写操作次数;
针对每个所述原始行地址,如果所述原始行地址的写操作次数小于写次数阈值,则将所述原始行地址和所述原始行地址的写操作次数关联存储至磨损记录表;
如果所述原始行地址的写操作次数等于写次数阈值,则将所述原始行地址作 为目标行地址;
基于磨损均衡算法,确定与所述目标行地址对应的交换行地址,并将所述目标行地址和所述交换行地址作为一个行重映射关系存储至行重映射表。
5.根据权利要求4所述的方法,其特征在于,所述如果所述原始行地址的写操作次数等于写次数阈值,则将所述原始行地址作为目标行地址之后,还包括:
获取所述目标行地址的行缓冲命中率;
所述基于磨损均衡算法,确定与所述目标行地址对应的交换行地址,包括:
如果所述目标行地址的行缓冲命中率小于等于行缓冲命中率阈值,则基于磨损均衡算法,确定与所述目标行地址对应的交换行地址。
6.根据权利要求5所述的方法,其特征在于,所述获取所述目标行地址的行缓冲命中率之后,还包括:
如果所述目标行地址的行缓冲命中率大于所述行缓冲命中率阈值,则执行延迟操作,以延迟将所述目标行地址存储至所述行重映射表。
7.根据权利要求6所述的方法,其特征在于,所述如果所述目标行地址的行缓冲命中率大于所述行缓冲命中率阈值,则执行延迟操作,包括:
如果所述目标行地址的行缓冲命中率大于所述行缓冲命中率阈值,则增加所述目标行地址的写次数阈值。
8.根据权利要求4所述的方法,其特征在于,所述基于磨损均衡算法,确定与所述目标行地址对应的交换行地址,包括:
比较各所述原始行地址的写操作次数;
将写操作次数最小的原始行地址确定为与所述目标行地址对应的交换行地址。
9.根据权利要求8所述的方法,其特征在于,所述比较各所述原始行地址的写操作次数,包括:
比较具有同一Bank标识的各所述原始行地址的写操作次数。
10.一种非易失内存的访问装置,其特征在于,包括:
访问请求获取模块,用于获取对非易内存的访问请求,所述访问请求包括物理地址和操作标识,所述操作标识为读操作标识或写操作标识,如果所述操作标识为写操作标识,则所述访问请求还包括待写数据;
目标地址确定模块,用于对所述物理地址进行解析,确定与所述物理地址对应的目标地址;
访问行地址确定模块,用于根据行重映射表和与所述目标地址对应的原始行地址,确定访问行地址,所述行重映射表包括至少一个行重映射关系,每个所述行重映射关系为每个目标行地址和与所述目标行地址对应的交换行地址之间的对应关系,所述目标行地址为所述非易失内存中写操作次数等于写次数阈值的原始行地址,所述交换行地址为所述非易失内存中写操作次数小于所述写次数阈值的原始行地址,所述访问行地址为与所述目标地址对应的原始行地址或所述交换行地址;
访问操作执行模块,用于根据所述访问请求,对与所述访问行地址对应的访问行进行访问。
11.一种内存控制器,其特征在于,包括权利要求10所述的非易失内存的访问装置。
12.一种用于访问非易失内存的电子设备,其特征在于,包括:
一个或多个内存控制器;
非易失存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个内存控制器执行,使得所述内存控制器实现如权利要求1-9任一所述的方法。
13.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被内存控制器执行时实现如权利要求1-9任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010063832.3A CN111258925B (zh) | 2020-01-20 | 2020-01-20 | 非易失内存的访问方法、装置、内存控制器、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010063832.3A CN111258925B (zh) | 2020-01-20 | 2020-01-20 | 非易失内存的访问方法、装置、内存控制器、设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111258925A CN111258925A (zh) | 2020-06-09 |
CN111258925B true CN111258925B (zh) | 2022-05-27 |
Family
ID=70950935
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010063832.3A Active CN111258925B (zh) | 2020-01-20 | 2020-01-20 | 非易失内存的访问方法、装置、内存控制器、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111258925B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112965816B (zh) * | 2020-07-17 | 2023-06-02 | 华为技术有限公司 | 内存管理技术及计算机系统 |
CN112486857B (zh) * | 2020-10-29 | 2023-08-29 | 中山大学 | 一种磨损感知和负载均衡的多层非易失缓存方法 |
CN114936169A (zh) * | 2022-03-31 | 2022-08-23 | 上海阵量智能科技有限公司 | 存储器的磨损均衡方法和装置、存储器和电子设备 |
CN116755638B (zh) * | 2023-08-17 | 2023-10-13 | 北京大学 | 一种低资源消耗的面向忆阻器耐久性的磨损均衡方法 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100592427C (zh) * | 2007-12-05 | 2010-02-24 | 苏州壹世通科技有限公司 | 一种数据块的磨损处理方法和装置 |
CN101354681B (zh) * | 2008-09-23 | 2010-12-01 | 美商威睿电通公司 | 存储器系统、非易失性存储器的磨损均衡方法及装置 |
CN102567213B (zh) * | 2011-11-30 | 2014-09-24 | 华中科技大学 | 相变存储器的写均衡方法 |
CN105095116B (zh) * | 2014-05-19 | 2017-12-12 | 华为技术有限公司 | 缓存替换的方法、缓存控制器和处理器 |
CN105354152B (zh) * | 2014-08-19 | 2018-06-26 | 华为技术有限公司 | 非易失性存储器及磨损均衡方法 |
CN105446894B (zh) * | 2014-08-20 | 2019-02-05 | 华为技术有限公司 | 一种写均衡的处理方法和装置 |
KR102275710B1 (ko) * | 2015-02-02 | 2021-07-09 | 삼성전자주식회사 | 오버-라이트가 가능한 메모리 장치, 메모리 시스템 및 메모리 시스템의 동작방법 |
CN106250320B (zh) * | 2016-07-19 | 2019-05-24 | 诸葛晴凤 | 一种数据一致性及磨损均衡的内存文件系统管理方法 |
CN106934158B (zh) * | 2017-03-13 | 2020-02-18 | 湖南大学 | 相变存储器模拟方法和系统 |
US10732859B2 (en) * | 2017-10-06 | 2020-08-04 | Dell Products L.P. | Systems and methods for granular non-volatile memory health visibility to a host |
US10228878B1 (en) * | 2017-10-30 | 2019-03-12 | Western Digital Technologies, Inc. | Wear leveling in non-volatile storage |
-
2020
- 2020-01-20 CN CN202010063832.3A patent/CN111258925B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN111258925A (zh) | 2020-06-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111258925B (zh) | 非易失内存的访问方法、装置、内存控制器、设备及介质 | |
US10241919B2 (en) | Data caching method and computer system | |
KR102231792B1 (ko) | 하이브리드 메모리 모듈 및 그것의 동작 방법 | |
KR102510384B1 (ko) | 압축된 데이터 백그라운드를 캐싱하는 장치, 시스템 및 방법 | |
US8745334B2 (en) | Sectored cache replacement algorithm for reducing memory writebacks | |
US9798655B2 (en) | Managing a cache on storage devices supporting compression | |
US20180275899A1 (en) | Hardware based map acceleration using forward and reverse cache tables | |
US10042576B2 (en) | Method and apparatus for compressing addresses | |
CN105095116A (zh) | 缓存替换的方法、缓存控制器和处理器 | |
CN114860785B (zh) | 缓存数据处理系统、方法、计算机设备和存储介质 | |
CN109952565B (zh) | 内存访问技术 | |
CN113760185B (zh) | 内存块回收方法和装置 | |
US12038844B2 (en) | Solid state drive cache eviction policy by an unsupervised reinforcement learning scheme | |
US12066952B2 (en) | Data processing method and system, device, and medium | |
US20100161890A1 (en) | Cache management method and cache device using sector set | |
CN111694806B (zh) | 一种事务日志的缓存方法、装置、设备和存储介质 | |
CN107506139B (zh) | 一种面向相变存储器的写请求优化装置 | |
KR101026634B1 (ko) | 하이브리드 플래시 메모리의 데이터 저장 방법 | |
US9262098B2 (en) | Pipelined data I/O controller and system for semiconductor memory | |
US20130282977A1 (en) | Cache control device, cache control method, and program thereof | |
CN115904226A (zh) | 固态驱动器、设备及固态驱动器的操作方法 | |
CN116048402A (zh) | 一种缓存替换方法、装置及存储介质 | |
CN107066208B (zh) | 一种外存设备的非对称读写方法及nvm外存设备 | |
CN113590506B (zh) | Hmb的表项管理方法及固态硬盘的控制系统 | |
AU2021103953A4 (en) | Method for DRAM Row Buffer Management based on Filter Table |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |