CN107885671B - 一种非易失性内存的持久化方法和计算设备 - Google Patents
一种非易失性内存的持久化方法和计算设备 Download PDFInfo
- Publication number
- CN107885671B CN107885671B CN201610878743.8A CN201610878743A CN107885671B CN 107885671 B CN107885671 B CN 107885671B CN 201610878743 A CN201610878743 A CN 201610878743A CN 107885671 B CN107885671 B CN 107885671B
- Authority
- CN
- China
- Prior art keywords
- target
- memory
- instruction set
- write instruction
- write
- 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
Images
Classifications
-
- 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/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- 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
-
- 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/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0873—Mapping of cache memory to specific storage devices or parts thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
-
- 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/061—Improving I/O performance
-
- 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/0629—Configuration or reconfiguration of storage systems
- G06F3/0637—Permissions
-
- 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/0653—Monitoring storage devices or systems
-
- 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/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- 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/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- 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
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/39—Credit based
-
- 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/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
Abstract
本申请公开了一种非易失性内存NVM的持久化方法和计算设备,内存控制器关联的至少两个内存写指令集合中每个内存写指令集合配置有信用度值,介质控制器关联的至少两个介质写指令集合中每个介质写指令集合配置为信用度值,通过写指令的收发状态和执行状态变更信用度值,多个内存写指令集合各自对应的信用度值与介质控制器中设置的多个介质写指令集合各自对应的信用度值保持同步,内存控制器与介质控制器的信用度值保持同步后,能准确根据信用度值查询写指令是否完成持久化。同时,通过设置多个内存写指令集合,在持久化查询时能实现以内存写指令集合为粒度的局部阻塞,以提高内存控制器的并行处理效率。
Description
技术领域
本发明涉及计算机领域,尤其涉及一种非易失性内存(Non-Volatile Memory,简称NVM)的持久化方法和计算设备。
背景技术
数据持久性表示数据成功写入持久性的NVM非易失性内存,在系统崩溃或掉电的情况下数据也不会丢失。例如,应用程序的数据具有持久性的属性时,应用程序可以在系统崩溃或掉电之后从NVM上存储的数据中恢复正常运行状态。在目前的应用中,通常将NVM作为内存使用,这样应用程序就可以在系统崩溃或掉电后直接从内存中恢复运行。但是NVM作为内存使用时,现有的DDR(Double Data Rate,双倍数据率)内存协议无法支持数据的持久性确认,这是因为现有的DDR内存协议中的写指令在数据写入CPU(Central ProcessingUnit,中央处理器)缓存中之后就会提交完成,CPU和应用程序无法继续跟踪和获知写指令中数据是否真正写入内存。
为了确认写指令的数据是否写入内存,目前提出了一种持久化确认的方案是:使用PCOMMIT指令和CLFLUSH指令来实现持久化的确认,CLFLUSH指令可以将CPU缓存中的指定的数据写回并生成写指令发送至内存控制器。PCOMMIT指令会将内存控制器中所有写指令都强制写入内存。在PCOMMIT指令的执行过程中,内存控制器会阻塞新的写指令进入内存控制器,直到内存控制器中所有的写指令被发送到内存芯片。通过上述方法可以在确认数据成功写入内存并完成持久化。
目前的持久化确认方案中,PCOMMIT指令用于指示内存控制器中所有写指令完成持久化操作,PCOMMIT指令在执行过程中,会阻塞所有的写指令进入内存控制器,这样就会减少新的写指令发送给内存控制器,避免影响到PCOMMIT指令的执行。在达到上述效果的同时,也会导致所有应用程序的写指令都暂时无法发送到内存控制器中,使得调用PCOMMIT指令的应用程序对其他应用程序造成了比较大的性能影响,导致整个系统的运行效率低下。
发明内容
本发明实施例所要解决的技术问题在于,提供一种NVM的持久化方法和计算设备,通过设置多个内存写指令集合,能实现以内存写指令集合为最小粒度的局部阻塞,提高内存控制器的并行处理效率。
第一方面,本申请提供了一种非易失性内存NVM的持久化方法。
内存控制器关联有至少两个内存写指令集合,至少两个内存写指令集合可设置在内存控制器的内部,例如至少两个内存写指令集合位于内存控制器的缓存空间中,至少两个内存写指令集合中每个内存写指令集合配置有一个信用度值,信用度值表示允许进入内存写指令集合中的写指令的数量,某个内存写指令的信用度值等于0时,则该内存写指令集合不允许进入写指令,每个内存写指令集合的信用度值具有一个最大值。
NVM是在断电后仍能保存数据的存储器,NVM包括但不限于只读存储器(Read-OnlyMemory,ROM)、可编程只读内存(Programmable Read-Only Memory,PROM)、电可改写只读内存(ElectricallyAlterable Read Only Memory,EAROM)可擦除可编程只读内存(ErasableProgrammable Read-Only Memory,EPROM)、电可擦除可编程只读内存(ElectricallyErasable Programmable Read-Only Memory,EEPROM)和闪存(Flash Memory);NVM的介质控制器关联有至少两个介质写指令集合,至少两个介质写指令集合可设置在介质控制器的内部,例如:至少两个介质写指令集合位于介质控制器的缓存空间中,至少两个介质写指令集合中每个介质写指令集合配置有一个信用度值,信用度值表示允许进入介质写指令集合的写指令的数量,当某个介质写指令集合的信用度值等于0时,则该介质写指令集合不允许进入写指令,每个介质写指令集合的信用度值具有一个最大值。内存写指令集合和介质写指令集合的数据结构可以是队列、数组、链表、堆栈等,本申请不作限制。
至少两个内存写指令集合中内存写指令集合的数量等于至少两个介质写指令集合中介质写指令集合的数量,至少两个内存写指令集合与至少两个介质写指令呈一一映射关系,每对关联的内存写指令集合和介质写指令集合的信用度值的最大值相等。
本申请的持久化方法应用于将内存中的待写数据写入到NVM的过程,包括:内存控制器首先接收写指令,写指令包括待写数据的写地址,写指令可由处理器发送,内存控制器根据写地址从至少两个内存写指令集合中确定目标内存写指令集合,将写指令存入到选择的目标内存写指令集合中,目标内存写指令集合为至少两个内存写指令集合中的一个,内存控制器将目标内存写指令集合的信用度值减少指定数值,指定数值为预先设定的值,具体值不作限制。
内存控制器可根据预设的选择规则从至少两个内存指令集合中选择出目标内存写指令集合,从目标内存写指令集合中取出写指令,将取出的写指令发送给介质控制器;
介质控制器接收写指令,根据写指令从至少两个介质写指令集合中确定目标介质写指令集合,目标介质写指令集合与目标内存写指令集合具有绑定关系,目标介质写指令集合为至少两个介质写指令集合中的一个,介质控制器将写指令存入目标介质写指令集合,将目标介质写指令集合的信用度值减少指定数值。
介质控制器可根据预设的选择规则从至少两个介质写指令结合中选择目标介质写指令集合,从目标写指令集合中取出写指令;
介质控制器获取写指令中携带的写地址,根据预设的地址映射表查询与写地址关联的NVM的物理块地址,将写指令对应的待写数据写入到该物理块地址对应的物理块中,如果地址映射表中没有查询到物理块地址,即物理块地址没有分配,介质控制器从空闲的物理块列表中选择一个物理块进行分配,并且在地址映射表中建立选择的物理块的物理块地址与写地址的的映射;
介质控制器确定待写数据成功写入NVM之后,将目标介质写指令集合的信用度值增加指定数值,介质控制器将目标介质写指令集合的信用度值发送给内存控制器,使目标内存写指令集合的信用度值与目标介质写指令集合的信用度值保持同步。
上述实施例,设置的多个内存写指令集合各自对应的信用度值与介质控制器中设置的多个介质写指令集合各自对应的信用度值保持同步,由于介质控制器能够根据各个介质写指令集合的信用度值确定写指令的执行状态,因此内存控制器与介质控制器的信用度值保持同步后,能准确根据信用度值查询写指令是否完成持久化。同时,通过设置多个内存写指令集合,在持久化查询时能实现以内存写指令集合为粒度的局部阻塞,以提高内存控制器的并行处理效率。
在本方面的一种可能的实施方式中,NVM的总地址区间预先划分为多个不相互重合的地址区间,至少两个内存写指令集合中每个内存写指令集合配置有NVM的一个地址区间,至少两个内存写指令集合中每个内存写指令集合具有不同的地址区间。内存控制器根据写地址从至少两个内存写指令集合中确定目标内存写指令集合,将写指令存入目标内存写指令集合,并对目标内存写指令集合的信用度值减少指定数值包括:内存控制器确定写指令中携带的写地址所在的目标地址区间,目标地址区间为至少两个内存写指令集合预先各自配置的地址区间中的一个,将目标地址区间关联的内存写指令集合作为目标内存写指令集合,指定数值为1,内存控制器将写指令存入到目标内存写指令集合中,将目标内存写指令集合的信用度值减1。上述实施例,根据写地址所在的地址区间确定目标内存写指令集合,能快速和准确的存放写指令,提高处理效率。
在本方面的一种可能的实施方式中,NVM的总地址区间预先划分为多个不相互重合的地址区间,地址区间的数量等于至少两个介质写指令集合中介质写指令集合的数量,至少两个介质写指令集合中每个介质写指令集合配置有一个不同的地址区间。介质控制器根据写地址从至少两个介质写指令集合中确定目标介质写指令集合,将写指令存放目标介质写指令集合,将目标介质写指令集合的信用度值减少指定数值包括:介质控制器获取写指令中携带的写地址,确定写地址所在的目标地址区间,目标地址区间为至少两个介质写指令集合各自配置的地址区间中的一个,介质控制器将写指令存入目标介质写指令集合。例如:目标介质写指令集合的数据结构为队列,介质控制器将写指令存入队列的队列尾;又例如;目标介质写指令集合的数据结构为堆栈,介质控制器将写指令存放堆栈的栈顶;预设的指定数值为1,在存入写指令后介质控制器将目标介质写指令集合的信用度值减1。上述实施例,通过写地址落入的目标地址区间确定目标介质写指令集合,能快速和准确的存放写指令,提高处理效率。
在本方面的一种可能的实施方式中,在预设的指定数值为1的情况下,内存控制器确定目标内存写指令集合后,获取目标内存写指令集合当前的信用度值,判断当前的信用度值是否大于0,若判断结果为是,将写指令存入目标内存写指令集合;若判断结果为否,将写指令进行缓存处理,根据预设周期查询目标内存写指令集合的信用度值,在查询到目标内存写指令集合的信用度值大于0时,再将缓存的写指令存入目标内存写指令集合中。上述实施例,通过信用度值控制进入内存控制器的写指令的数量,避免内存控制器无法及时处理写指令导致过载。
在本方面的一种可能的实施方式中,介质控制器确定目标介质写指令集合后,获取目标介质写指令集合当前的信用度值,判断当前的信用度值是否大于0,若判断结果为是,将写指令存入目标介质写指令集合;若判断结果为否,将写指令进行缓存处理,根据预设周期查询目标介质写指令集合的信用度值,在查询到目标介质写指令集合的信用度值大于0时,再将缓存的写指令存入目标介质写指令集合中。上述实施例,通过信用度值控制进入介质控制器的写指令的数量,避免介质控制器无法及时处理写指令而导致过载。
在本方面的一种可能的实施方式中,内存控制器接收携带写地址的写指令之前,还包括:NVM的总地址区间预先划分为多个不相互重合的地址区间,地址区间的数量等于内存控制器的数量,内存控制器的数量等于介质控制器的数量。内存控制器通过调用库函数配置至少两个内存写指令集合中每个内存写指令集合的地址区间,每个内存写指令集合具有不同的地址区间;内存控制器配置至少两个介质写指令集合中每个介质写指令集合的地址区间,每个介质写指令集合不有不同的地址区间;其中,具有绑定关系的两个内存写指令集合和介质写指令集合具有相同的地址区间。上述实施例,通过库函数调用的方式配置至少两个内存写指令集合和至少两个介质写指令集合的地址区间,便于根据写指令的写地址确认目标内存写指令集合和目标介质写指令集合。
在本方面的一种可能的实施方式中,介质控制器将目标介质写指令集合的信用度值发送给内存控制器包括:介质控制器接收内存控制器发送的查询请求,查询请求用于查询目标介质写指令集合的信用度值;介质控制器可以将目标介质写指令集合的信用度值存储在寄存器中,介质控制器发现目标介质写指令集合的信用度值发生更新时,立即更新寄存器中存储的目标介质写指令集合的信用度值,内存控制器可直接在寄存器中查询,介质控制器接收到查询请求向内存控制器发送携带目标介质写指令集合的信用度值的查询响应。
在本方面的一种可能的实施方式中,介质控制器将所述目标介质写指令集合的信用度值发送给内存控制器包括:介质控制器周期性的主动向内存控制器发送目标介质写指令集合的信用度值。
在本方面的一种可能的实施方式中,还包括:所述内存控制器接收针对所述目标内存写指令集合的持久化查询指令,以及获取所述持久化查询指令的接收时刻;所述内存控制器阻塞在所述接收时刻之后进入所述目标内存写指令集合的写指令;所述内存控制器读取所述目标内存写指令集合的信用度值;若读取到的信用度值等于预设的最大值,所述内存控制器确定所述目标内存写指令集合中的写指令完成持久化。上述实施例,内存控制器接收到持久化查询指令,只需要阻塞待查询的内存写指令集合,不需要阻塞其他的内存写指令集合,实现了以内存写指令集合为粒度的局部阻塞,提高了内存控制器的并行处理效率。
在本方面的一种可能的实施方式中,所述内存控制器阻塞在所述接收时刻之后进入所述目标内存写指令集合的写指令包括:所述内存控制器将在所述接收时刻之后进入所述目标内存写指令集合的写指令进行缓存处理;或在所述接收时刻,所述内存控制器将所述目标内存写指令集合加软件互斥锁。
在本方面的一种可能的实施方式中,还包括:所述介质控制器接收针对目标介质写指令集合的持久化查询指令;所述介质控制器读取所述目标介质写指令集合的信用度值;若读取到的信用度值等于预设的最大值,所述介质控制器确定所述目标介质写指令集合中的写指令完成持久化操作。上述实施例,介质控制器接收到持久化查询指令,只需要阻塞待查询的介质写指令集合,不需要阻塞其他的介质写指令集合,实现了以内存写指令集合为粒度的局部阻塞,提高了介质控制器的并行处理效率。
第二方面,本申请还提供了一种计算设备,该计算设备包括内存控制器、介质控制器和非易失性内存NVM,计算设备包括但不限于数据中心服务器、网络服务器、视频服务器、工作站或个人电脑等。内存控制器包括缓存空间,缓存空间用来存储至少两个内存写指令集合,至少两个内存写指令集合中每个内存写指令集合配置有一个信用度值;介质控制器包括缓存空间,缓存空间用来存储至少两个介质写指令集合,介质控制器关联有至少两个介质写指令集合,至少两个介质写指令集合中每个介质写指令集合配置有一个信用度值。内存写指令集合和介质写指令集合的数据结构可以是队列、数组、堆栈、链表等,本申请不作限制。至少两个内存写指令集合中内存写指令集合的数量可以等于至少两个介质写指令集合中介质写指令集合的数量,至少两个内存写指令集合与至少两个介质写指令集合呈一一映射关系,具有关联关系的两个内存写指令集合和介质写指令集合的信用度值的最大值相等。
内存控制器,用于:
接收写指令,写指令包括待写数据的写地址;
根据写地址,从内存控制器的缓存空间存储的至少两个内存写指令集合中选择目标内存写指令集合,将写指令存入目标内存写指令集合,并对目标内存写指令集合的信用度值减少指定数值;
将目标内存写指令集合中的写指令发送给介质控制器;
接收介质控制器发送的目标介质写指令集合的信用度值;
根据目标介质写指令集合的信用度值更新目标内存写指令集合的信用度值;
介质控制器,用于:
接收内存控制器发送的写指令;
根据写地址,从介质控制器的缓存空间存储的至少两个介质写指令集合中确定目标介质写指令集合;
将写指令存入目标介质写指令集合,将目标介质写指令集合的信用度值减少指定数值;
将目标介质写指令集合中的写指令发送给NVM,在NVM成功执行写指令后,将目标介质写指令集合的信用度值增加指定数值;
将目标介质写指令集合的信用度值发送给内存控制器。
上述实施例,设置的多个内存写指令集合各自对应的信用度值与多个介质写指令集合各自对应的信用度值保持同步,由于介质控制器能够根据各个介质写指令集合的信用度值确定写指令的执行状态,因此内存控制器与介质控制器的信用度值保持同步后,能准确根据信用度值查询写指令是否完成持久化。同时,通过设置多个内存写指令集合,在持久化查询时能实现以内存写指令集合为粒度的局部阻塞,以提高内存控制器的并行处理效率。
在本方面的一种可能的实施方式中,内存控制器还包括:接收器、缓存控制器、多个计数器、发送器,其中,每个内存写指令集合配置有一个计数器;
介质控制器还包括:接收器、缓存控制器、多个计数器和发送器,其中,每个介质写指令集合配置有一个计数器;
内存控制器的接收器,用于接收携带写地址的写指令;
内存控制器的缓存控制器,用于根据写地址,从内存控制器的缓存空间中存储的至少两个内存写指令集合中选择目标内存写指令集合,将写指令存入目标内存写指令集合,并对指示目标写指令集合的计数器目标内存写指令集合的信用度值减少指定数值;
内存控制器的发送器,用于将目标内存写指令集合中的写指令发送给介质控制器的接收器;
内存控制器的接收器还用于接收介质控制器的发送器发送的目标介质写指令集合的信用度值;
内存控制器的缓存控制器还用于指示内存控制器的计数器根据目标介质写指令集合的信用度值更新目标内存写指令集合的信用度值;
介质控制器的接收器用于接收内存控制器的发送器发送的写指令;
介质控制器的缓存控制器,用于根据写地址,从介质控制器的缓存空间中存储的至少两个介质写指令集合中确定目标介质写指令集合;将写指令存入目标介质写指令集合,指示目标介质写指令集合对应的计数器将目标介质写指令集合的信用度值减少指定数值;
介质控制器的发送器,用于将目标介质写指令集合中的写指令发送给NVM;
介质控制器的缓存控制器还用于在NVM成功执行写指令后,指示目标介质写指令集合对应的计数器将目标介质写指令集合的信用度值增加指定数值;
介质控制器的发送器还用于将目标介质写指令集合的信用度值发送给内存控制器的接收器。
在本方面的一种可能的实施方式中,至少两个内存写指令集合中每个内存写指令集合配置有NVM的一个地址区间;
内存控制器的缓存控制器用于:
确定写地址所在的目标地址区间,将目标地址区间关联的内存写指令集合作为目标内存写指令集合;
将写指令存入目标内存写指令集合,指示目标介质写指令集合对应的计数器将目标内存写指令集合的信用度值减1。
在本方面的一种可能的实施方式中,至少两个介质写指令集合中每个介质写指令集合配置有NVM的一个地址区间;
介质控制器的缓存控制器用于:
确定写地址所在的目标地址区间,将目标地址区间关联的介质写指令集合作为目标介质写指令集合;
将写指令存入目标介质写指令集合,以及指示目标介质写指令集合对应的计数器将目标介质写指令集合的信用度值减1。
在本方面的一种可能的实施方式中,内存控制器的缓存控制器还用于:
通过调用库函数配置至少两个内存写指令集合中每个内存写指令集合的地址区间,以及配置至少两个介质写指令集合中每个介质写指令集合的地址区间;其中,至少两个内存写指令集合与至少两个介质写指令集合呈一一映射关系,关联的内存写指令集合和介质写指令集合具有相同的地址区间。
在本方面的一种可能的实施方式中,介质控制器的发送器用于:
根据内存控制器的发送器发送的信用度值查询请求,向内存控制器的接收器返回携带目标介质写指令集合的信用度值的查询响应。
在本方面的一种可能的实施方式中,介质控制器的发送器用于:
周期性的主动向内存控制器的接收器发送目标介质写指令集合的信用度值。
在本方面的一种可能的实施方式中,内存控制器的缓存控制器还用于:
接收针对目标内存写指令集合的持久化查询指令,以及获取持久化查询指令的接收时刻;阻塞在接收时刻之后进入目标内存写指令集合的写指令;在目标介质写指令集合对应的计数器中读取目标内存写指令集合的信用度值;若读取到的信用度值等于预设的最大值,确定目标内存写指令集合中的写指令完成持久化。
在本方面的一种可能的实施方式中,介质控制器的控制器还用于:
根据接收的针对目标介质写指令集合的持久化查询指令,在目标介质写指令集合对应的计数器中读取目标介质写指令集合的信用度值;若读取到的信用度值等于预设的最大值,确定目标介质写指令集合中的写指令完成持久化操作。
附图说明
下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。
图1是本发明实施例提供的一种计算设备的结构示意图;
图2a是本发明实施例提供的一种NVM的持久化方法的流程示意图;
图2b至图2e是本发明实施例提供的内存控制器和介质控制器中的信用度的调整的原理示意图;
图3是本发明实施例提供的一种计算设备的另一结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚地描述。
参见图1,为本发明实施例提供的一种计算设备的结构示意图。在本发明实施例中,计算设备包括内存控制器10、介质控制器11和NVM 12,计算设备包括但不限于数据中心服务器、网络服务器、视频服务器、网关服务器、个人电脑或移动终端。NVM表示断电后仍能保存数据的存储器,NVM包括但不限于ROM、PROM、EAROM、EPROM、EEPROM和Flash Memory。
内存控制器10关联有至少两个内存写指令集合,至少两个内存写指令集合可设置在内存控制器的内部,例如:至少两个内存写指令集合设置在内存控制器的缓存空间100中,至少两个内存写指令集合中每个写指令集合配置有一个信用度值,信用度值表示允许进入内存写指令集合的写指令的数量。
介质控制器12关联有至少两个介质写指令集合,至少两个介质写指令集合可设置在介质控制器的内部,例如:至少两个介质控制器位于缓存空间110中,至少两个介质写指令集合中每个介质写指令集合配置有一个信用度值,信用度值表示允许进入介质写指令集合中的写指令的数量,其中,内存写指令集合和介质写指令集合可以为队列。
至少两个内存写指令集合中内存写指令集合的数量等于至少两个介质写指令集合中介质写指令集合的数量,设内存写指令集合的数量为n,介质写指令集合的数据为n,n为大于1的整数,n个内存写指令集合与n个介质写指令集合呈一一映射关系,1个内存写指令集合与1个介质写指令集合具有绑定关系;在初始状态下,n个内存写指令集合中每个内存写指令集合的信用度值为最大值,且n个介质写指令集合中每个介质写指令集合的信用度值为最大值;具有绑定关系的两个内存写指令集合和介质写指令集合具有相同的信用度值的最大值。
计算设备的工作过程包括:
内存控制器接收写指令,写指令包括待写数据的写地址;
内存控制器根据写地址,从至少两个内存写指令集合中确定目标内存写指令集合,将写指令存入目标内存写指令集合,并对目标内存写指令集合的信用度值减少指定数值;
内存控制器将目标内存写指令集合中的写指令发送给介质控制器;
介质控制器接收内存控制器发送的写指令;
介质控制器根据写地址,从至少两个介质写指令集合中确定目标介质写指令集合,将写指令存入目标介质写指令集合,将目标介质写指令集合的信用度值减少指定数值;
介质控制器根据预设的地址映射表查询与写地址关联的NVM的物理块地址,将写指令对应的待写数据写入到该物理块地址对应的物理块中,如果地址映射表中没有查询到物理块地址,即物理块地址没有分配,介质控制器从空闲的物理块列表中选择一个物理块进行分配,并且在地址映射表中建立选择的物理块的物理块地址与写地址的的映射;
在NVM成功执行写指令,将待写数据写入到对应的物理块之后,介质控制器将目标介质写指令集合的信用度值增加指定数值,即介质控制器在确认NVM完成对写指令的持久化之后,将目标介质写指令集合的信用度恢复为最大值;介质控制器将目标介质写指令集合的信用度值发送给内存控制器;内存控制器接收介质控制器发送的目标介质写指令集合的信用度值;内存控制器根据目标介质写指令集合的信用度值更新目标内存写指令集合的信用度值,目标内存写指令集合的信用度值与关联的目标介质写指令集合的信用度值保持同步。
在一种可能的实施方式中,NVM的总地址区间预先划分为多个不相互重合的地址区间,内存控制器关联的至少两个内存写指令集合的数量等于多个地址区间的数量,且每个内存写指令集合分配一个地址区间;同样的,介质控制器关联的至少两个介质写指令集合的数量等于多个地址区间的数量,且每个介质写指令集合分配一个地址区间。这样内存控制器和介质控制器在接收到写指令时,可根据写指令落入的地址区间确定目标内存写指令集合和介质写指令集合。
内存控制器的缓存空间内设置有3个内存写指令队列,分别为内存写指令队列1、内存写指令队列2和内存写指令队列3。介质控制器的缓存空间内设置有3个介质写指令队列,分别为内存写指令队列1、内存写指令队列2和内存写指令队列3,内存写指令队列1和介质写指令队列1分配的地址区间为0x90000000~0x90ffffff,0x90000000为地址区间的起始地址,0x90ffffff为地址区间的终止地址;内存写指令队列2分配的地址区间为0x856000000~0x857fffff,0x856000000为起始地址,0x857fffff为终止地址;内存写指令队列3分配的地址区间为0x65600000~0x657fffff,0x65600000为起始地址,0x657fffff为终止地址。
实施上述实施例,设置的多个内存写指令集合各自对应的信用度值与多个介质写指令集合各自对应的信用度值保持同步,由于介质控制器能够根据各个介质写指令集合的信用度值确定写指令的执行状态,因此内存控制器与介质控制器的信用度值保持同步后,能准确根据信用度值查询写指令是否完成持久化。同时,通过设置多个内存写指令集合,在持久化查询时能实现以内存写指令集合为粒度的局部阻塞,以提高内存控制器的并行处理效率。
参见图2,为本发明实施例提供的一种非易失性内存的持久化方法的流程示意图,在本发明实施例中,所述方法包括:
S201、内存控制器接收写指令。
具体的,写指令包括待写数据的写地址,写指令可以是处理器发出的,内存控制器可以通过地址总线接收处理器发送的写地址,以及通过数据总线接收处理器发送的待写数据。
S202、内存控制器根据写地址,从至少两个内存写指令集合中确定目标内存写指令集合。
具体的,内存控制器关联有至少两个内存写指令集合,内存写指令集合表示用于存放写指令,内存写指令集合的数据结构可以是队列、数组、堆栈或链表;至少两个内存写指令集合可设置在内存控制器的内部,例如至少两个内存写指令集合设置在内存控制器的缓存空间中,内存控制器根据写地址,从至少两个内存写指令集合中确定目标内存写指令集合。
在一种可能的实施方式中,内存控制器根据写地址从至少两个内存写指令集合中确定目标内存写指令集合包括:NVM的总地址区间预先划分为至少两个地址区间,划分的地址区间的数量等于内存写指令集合的数量,至少两个地址区间中每个地址区间关联一个内存写指令集合,内存控制器判断写地址落入的地址区间,将写地址落入的地址区间关联的内存写指令集合作为目标内存写指令集合。
举例说明,参见图2b所示,指定数值等于1,内存控制器中设置有4个内存写指令集合,分别为:内存写指令集合1、内存写指令集合2、内存写指令集合3和内存写指令集合4,分别对应的信用度值的最大值为5、4、4和3,介质控制器中同样设置有4个介质写指令集合,介质写指令集合1、介质写指令集合2、介质写指令集合3和介质写指令集合4,4个内存写指令集合和4个介质写指令集合呈一一映射关系,映射关系为:内存写指令集合1关联介质写指令集合1,内存写指令集合2关联介质写指令集合2、内存写指令集合3关联介质写指令集合3,内存写指令集合4关联介质写指令集合4,每对关联的内存指令集合和介质写队列集合的信用度值的最大值相等。4个内存写指令集合和4个介质写指令集合配置的地址区间和信用度值如表1所示:
内存写指令集合 | 介质写指令集合 | 信用度值 | 地址区间 |
内存写指令集合1 | 介质写指令集合1 | 5 | 0x90000000~0x90ffffff |
内存写指令集合2 | 介质写指令集合2 | 4 | 0x85600000~0x857fffff |
内存写指令集合3 | 介质写指令集合3 | 4 | 0x65600000~0x657fffff |
内存写指令集合4 | 介质写指令集合4 | 3 | 0x50000000~0x70ffffff |
表1
内存控制器接收写指令,假设写指令包括待写数据的写地址0x656033fe,内存控制器根据4个地址区间确定写地址落入地址区间0x65600000~0x657fffff,该地址区间对应内存写指令集合3,内存写指令集合3为目标内存写指令集合,内存控制器将写指令存入到内存写指令集合3中。
S203、内存控制器将写指令存入目标内存写指令集合,并对目标内存写指令集合的信用度值减少指定数值。
具体的,信用度值表示允许进入目标内存写指令集合中的写指令的数量,在目标内存写指令集合的信用度值小于预设数值的情况下,目标内存写指令集合中不允许进入写指令,目标内存写指令集合的信用度值有一个最大值,最大值表示允许进入目标内存写指令集合中的写指令的最大数量。内存控制器将写指令存入目标内存写指令集合,例如:目标内存写指令集合的数据结构为队列,内存控制器将写指令存入目标内存写指令集合的队列尾;目标内存写指令集合的数据结构为堆栈,内存控制器将写指令存入目标内存写指令集合的栈顶。内存控制器将写指令存入到目标内存写指令集合后,将目标内存写指令集合的信用度值减少指定数值,指定数值的具体值不做限制,可根据需要进行设置。
续上例,参见图2c所示,内存控制器将内存写指令集合的信用度值4进行减1,更新后的内存写指令集合3的信用度值为3。
S204、内存控制器从目标内存写指令集合中取出写指令。
具体的,内存控制器可根据预设的选择规则从至少两个内存写指令集合选择一个内存写指令集合,在选择的内存写指令集合为S203的目标内存写指令集合的情况下,且S203中的写指令到达取出时刻时,内存控制器从目标内存写指令集合中取出写指令。其中,选择规则可以是:随机选择、根据内存写指令集合的编号轮询、根据内存写指令集合的优先级轮询等。
S205、内存控制器向介质控制器发送写指令。
其中,写指令中携带待写数据的写地址。
S206、介质控制器根据写指令携带的写地址,从至少两个介质写指令集合中确定目标介质写指令集合。
具体的,介质写指令集合用于存储写指令,介质写指令集合的数据结构包括但不限于队列、链表、数组或堆栈,至少两个介质写指令集合可设置在介质控制器的内部,例如:至少两个介质写指令集合设置在介质控制器的缓存空间中,介质控制器根据写指令携带的写地址从至少两个介质写指令集合中确定目标介质写指令集合。
在一种可能的实施方式中,介质控制器确定目标介质写指令集合的方法可以是:NVM的总地址区间划分为至少连续且不重合的两个地址区间,至少两个地址区间中每个地址区间关联一个介质写指令集合,至少两个介质写指令集合中介质写指令集合的数量等于至少两个内存写指令集合中内存写指令集合的数量,具有关联的两个内存写指令集合和介质写指令集合配置的地址区间相同。介质控制器确定写地址落入的地址区间,将写地址落入的区间对应的介质写指令集合作为目标介质写指令集合。
续上例,参见图2c所示,内存控制器从内存写指令集合3中取出写指令,将写指令发送给介质控制器,介质控制器根据写指令的写地址0x656033fe确定写地址落入地址区间0x65600000~0x657fffff,该地址区间对应介质写指令集合3,介质写指令集合3为目标介质写指令集合,介质控制器将写指令存入到介质写指令集合3中。
S207、介质控制器将写指令存入目标介质写指令集合,将目标介质写指令集合的信用度值减少指定数值。
具体的,信用度值表示允许进入目标介质写指令集合中的写指令的数量,在目标介质写指令集合的信用度值小于预设数值的情况下,目标介质写指令集合中不允许进入写指令,目标介质写指令集合的信用度值有一个最大值,最大值表示允许进入目标介质写指令集合中的写指令的最大数量。由于具有关联关系的两个内存写指令集合和介质写指令集合具有相等的信用度值的最大值,因此目标内存写指令集合和目标介质写指令集合具有相等的信用度值的最大值。目标介质写指令集合的数据结构包括但不限于数组、链表、队列和堆栈。介质控制器在写指令存入目标介质写指令集合后,将目标介质写指令集合的信用度值减少指定数值,指定数值的具体值不作限制,可根据需要进行设置。
续上例,参见图2c所示,介质控制器将写指令存入到介质写指令集合3中,介质控制器将介质写指令集合3的信用度值4进行减1,介质写指令集合3更新后的的信用度值为3。
S208、介质控制器从目标介质写指令集合中取出写指令。
具体的,介质控制器可根据预设的选择规则从至少两个介质写指令集合中选择一个介质写指令集合,在选择的介质写指令集合为S207中的目标介质写指令集合的情况下,且目标介质写指令集合中S207的写指令到达取出时刻时,介质控制器从目标介质写指令集合中取出写指令。其中,从至少两个介质写指令集合中选择介质写指令集合的选择规则可是:随机选择、根据介质写指令集合的编号轮询、根据介质写指令集合的优先级轮询。
S209、介质控制器向NVM发送写指令。
具体的,介质控制器获取写指令中携带的写地址,根据预设的地址映射表,将写地址转换为物理块地址,介质控制器向NVM发送携带物理块地址的写指令。
S210、NVM执行写指令,完成持久化操作。
具体的,NVM将待写数据写入到物理块地址指向的地址块,在待写输入写入完毕后,完成持久化操作。
S211、NVM向介质控制器返回响应消息。响应消息用于通知介质控制器写指令在NVM完成持久化操作。
S212、介质控制器将目标介质写指令集合的信用度值增加指定数值。
其中,介质控制器确定写指令在NVM上完成持久化操作时,将目标介质写指令集合的信用度值增加指定数值,这样经过S207的写指令进入目标介质写指令集合后信用度值减少指定数值,以及写指令完成持久化操作后目标介质写指令集合的信用度值增加指定数值,此时介质写指令集合的信用度值恢复为最大值。
续上例子,参见图2d所示,介质控制器从介质写指令集合3中取出该写指令发给NVM,NVM根据预设的地址映射表将写地址映射成物理块地址,NVM将待写数据写到物理块地址对应的物理块中,NVM在成功写入待写数据,完成持久化操作后可向介质控制器通知响应消息,介质控制器在确认写指令完成持久化操作后,将介质写指令集合3的信用度值加1,此时介质写指令集合3的信用度值变为4。
S213、目标内存写指令集合的信用度值与目标介质写指令集合的信用度值进行同步。
具体的,信用度值的同步方法可以是:内存控制器根据预设周期主动向介质控制器查询目标介质写指令集合的信用度值,目标介质写指令集合的信用度值可存储在介质控制器的寄存器中,内存控制器根据查询到的信用度值更新目标内存写指令集合的信用度值;或者,介质控制器在目标介质写指令集合的信用度值发生更新时,主动通知内存控制器,内存控制器根据通知的信用度值更新目标内存写指令集合的信用度值;或者目标介质写指令集合的信用度值携带在写指令的响应消息。
续上例,参见图2e所示,介质控制器将介质写指令集合3更新后的信用度值4发送给内存控制器,内存控制器根据介质写指令集合3的信用度值4将内存写指令集合3的信用度值更新为4。
可选的,在预设的指定数值为1的情况下,内存控制器确定目标内存写指令集合后,获取目标内存写指令集合当前的信用度值,判断当前的信用度值是否大于0,若判断结果为是,将写指令存入目标内存写指令集合;若判断结果为否,将写指令进行缓存处理,根据预设周期查询目标内存写指令集合的信用度值,在查询到目标内存写指令集合的信用度值大于0时,再将缓存的写指令存入目标内存写指令集合中。上述实施例,通过信用度值控制进入内存控制器的写指令的数量,避免内存控制器无法及时处理写指令导致过载。
可选的,介质控制器确定目标介质写指令集合后,获取目标介质写指令集合当前的信用度值,判断当前的信用度值是否大于0,若判断结果为是,将写指令存入目标介质写指令集合;若判断结果为否,将写指令进行缓存处理,根据预设周期查询目标介质写指令集合的信用度值,在查询到目标介质写指令集合的信用度值大于0时,再将缓存的写指令存入目标介质写指令集合中。上述实施例,通过信用度值控制进入介质控制器的写指令的数量,避免介质控制器无法及时处理写指令而导致过载。
可选的,本申请的一种非易失性内存的持久化方法还包括:
所述内存控制器接收针对所述目标内存写指令集合的持久化查询指令,以及获取所述持久化查询指令的接收时刻;
在所述接收时刻之后,所述内存控制器阻塞进入所述目标内存写指令集合的写指令;
所述内存控制器读取所述目标内存写指令集合的信用度值;
若读取到的信用度值等于预设的最大值,所述内存控制器确定所述目标内存写指令集合中的写指令完成持久化。
具体的,内存控制器接收目标内存写指令集合的持久化查询指令,持久化查询指令可由处理器发送,持久化查询指令可以是CPU指令或者调用函数,CPU指令或调用函数中携带目标内存写指令集合的标识,内存控制器接收接收持久化查询指令的接收时刻,在接收时刻之后,内存控制器阻塞进入目标内存写指令集合中的写指令,其中,至少两个内存写指令集合中的出目标内存写指令集合的其他内存写指令集合,内存控制器不进行阻塞操作。内存控制器读取目标内存写指令集合的信用度值,若读取到的信用度值等于预设的最大值,表明目标内存写指令集合中没有写指令占用信用度值,目标内存写指令集合中的写指令完成持久化操作。
续上例,参见图2e所示,内存控制器接收到针对内存写指令集合3的持久化查询指令时,内存控制器获取持久化查询指令的接收时刻为t0,内存控制器阻塞t0时刻之后进入到内存写指令集合3的写指令,阻塞的方法可以是:将t0时刻之后进入到内存写指令集合3的写指令进行缓存或者,对内存写指令集合加软件互斥锁,其中,内存写指令集合1、2和4仍能正常进入写指令;内存控制器获取内存写指令集合3的信用度值,发现内存写指令集合3的信用度值等于最大值4,则确定内存写指令集合3中没有写指令占用信用度值,内存写指令集合3完成持久化操作。
又例如,介质控制器接收针对介质写指令集合3的持久化查询指令,介质控制器获取介质写指令集合3的信用度值,发现介质写指令集合3的信用度值等于最大值4,则介质写指令集合3中没有写指令占用信用度值,介质写指令集合3中的写指令完成持久化操作。
可选的,在所述接收时刻之后,所述内存控制器阻塞进入所述目标内存写指令集合的写指令包括:
在所述接收时刻之后,所述内存控制器将进入所述目标内存写指令集合的写指令进行缓存处理;或
在所述接收时刻,所述内存控制器将所述目标内存写指令集合加软件互斥锁。
具体的,在接收时刻之后,内存控制器阻塞进入目标写指令集合的写指令的方法包括:在接收时刻之后,内存控制器将进入目标内存写指令集合的写指令进行缓存处理,内存控制器在确定目标内存写指令集合的信用度值等于预设的最大值时,将缓存的写指令发送给目标内存写指令集合;或者,内存控制器对目标内存写指令集合加软件互斥锁,从而阻塞进入目标内存写指令集合的写指令。
可选的,本申请的一种非易失性内存的持久化方法,还包括:
所述介质控制器接收针对目标介质写指令集合的持久化查询指令;
所述介质控制器读取所述目标介质写指令集合的信用度值;
若读取到的信用度值等于预设的最大值,所述介质控制器确定所述目标介质写指令集合中的写指令完成持久化操作。
具体的,介质控制器接收目标介质写指令集合的持久化查询指令,持久化查询指令可由处理器发送,持久化查询指令可以是CPU指令或者调用函数,CPU指令或调用函数中携带目标介质写指令集合的标识,介质控制器读取目标介质写指令集合的信用度值,若读取到的信用度值等于预设的最大值,表明目标介质写指令集合中没有写指令占用信用度值,目标介质写指令集合中的写指令完成持久化操作。
上述实施例,设置的多个内存写指令集合各自对应的信用度值与多个介质写指令集合各自对应的信用度值保持同步,由于介质控制器能够根据各个介质写指令集合的信用度值确定写指令的执行状态,因此内存控制器与介质控制器的信用度值保持同步后,能准确根据信用度值查询写指令是否完成持久化。同时,通过设置多个内存写指令集合,在持久化查询时能实现以内存写指令集合为粒度的局部阻塞,以提高内存控制器的并行处理效率。
参见图3,为本申请实施例提供的一种计算设备的另一结构示意图,在本实施例中,计算设备包括内存控制器10、介质控制器11和NVM 12。其中,内存控制器10包括:缓存空间100、接收器101、缓存控制器102、n个计数器、发送器103,其中,缓存空间100内设置有n个内存写指令集合,每个内存写指令集合配置有一个计数器,n为大于1的整数。
介质控制器11包括:缓存空间110、接收器111、缓存控制器112、n个计数器和发送器113,其中,缓存空间110内设置有n个介质写指令集合,每个介质写指令集合配置有一个计数器。
NVM 12的总地址区间划分为n个地址区间,n个内存写指令集合与n个地址区间一一映射,且n个介质写指令集合与n个地址区间一一映射。
需要说明的是,内存控制器10和介质控制器11包括的各个部件可以通过专用集成电路(英文:Application-Specific Integrated Circuit,缩写:ASIC)实现,或可编程逻辑器件(英文:Programmable Logic Device,缩写:PLD)实现。上述PLD可以是复杂可编程逻辑器件(英文:Complex Programmable Logic Device,缩写:CPLD),FPGA,通用阵列逻辑(英文:Generic Array Logic,缩写:GAL)或其任意组合。
计算设备的工作过程包括:
内存控制器10的接收器101,用于接收携带写地址的写指令;
内存控制器10的缓存控制器102,用于根据写地址,从内存控制器的缓存空间中存储的至少两个内存写指令集合中选择目标内存写指令集合,将写指令存入目标内存写指令集合,并对指示目标写指令集合的计数器目标内存写指令集合的信用度值减少指定数值;
内存控制器10的发送器103,用于将目标内存写指令集合中的写指令发送给介质控制器的接收器;
内存控制器10的接收器101还用于接收介质控制器的发送器发送的目标介质写指令集合的信用度值;
内存控制器10的缓存控制器102还用于指示内存控制器的计数器根据目标介质写指令集合的信用度值更新目标内存写指令集合的信用度值;
介质控制器11的接收器111用于接收内存控制器的发送器发送的写指令;
介质控制器11的缓存控制器112,用于根据写地址,从介质控制器的缓存空间中存储的至少两个介质写指令集合中确定目标介质写指令集合;将写指令存入目标介质写指令集合,指示目标介质写指令集合对应的计数器将目标介质写指令集合的信用度值减少指定数值;
介质控制器11的发送器113,用于将目标介质写指令集合中的写指令发送给NVM12;
介质控制器11的缓存控制器112还用于在NVM成功执行写指令后,指示目标介质写指令集合对应的计数器将目标介质写指令集合的信用度值增加指定数值;
介质控制器11的发送器113还用于将目标介质写指令集合的信用度值发送给内存控制器的接收器。
在一种可能的实施方式中,至少两个内存写指令集合中每个内存写指令集合配置有NVM的一个地址区间;
内存控制器10的缓存控制器102用于:
确定写地址所在的目标地址区间,将目标地址区间关联的内存写指令集合作为目标内存写指令集合;
将写指令存入目标内存写指令集合,指示目标介质写指令集合对应的计数器将目标内存写指令集合的信用度值减1。
在一种可能的实施方式中,至少两个介质写指令集合中每个介质写指令集合配置有NVM的一个地址区间;
介质控制器11的缓存控制器112用于:
确定写地址所在的目标地址区间,将目标地址区间关联的介质写指令集合作为目标介质写指令集合;
将写指令存入目标介质写指令集合,以及指示目标介质写指令集合对应的计数器将目标介质写指令集合的信用度值减1。
在一种可能的实施方式中,内存控制器10的缓存控制器102还用于:
通过调用库函数配置至少两个内存写指令集合中每个内存写指令集合的地址区间,以及配置至少两个介质写指令集合中每个介质写指令集合的地址区间;其中,至少两个内存写指令集合与至少两个介质写指令集合呈一一映射关系,关联的内存写指令集合和介质写指令集合具有相同的地址区间。
在一种可能的实施方式中,介质控制器11的发送器113用于:
根据内存控制器的发送器发送的信用度值查询请求,向内存控制器的接收器返回携带目标介质写指令集合的信用度值的查询响应。
在一种可能的实施方式中,介质控制器11的发送器113用于:
周期性的主动向内存控制器的接收器发送目标介质写指令集合的信用度值。
在一种可能的实施方式中,内存控制器10的缓存控制器102还用于:
接收针对目标内存写指令集合的持久化查询指令,以及获取持久化查询指令的接收时刻;阻塞在接收时刻之后进入目标内存写指令集合的写指令;在目标内存写指令集合对应的计数器中读取目标内存写指令集合的信用度值;若读取到的信用度值等于预设的最大值,确定目标内存写指令集合中的写指令完成持久化。
在一种可能的实施方式中,介质控制器11的缓存控制器112还用于:
根据接收的针对目标介质写指令集合的持久化查询指令,在目标介质写指令集合对应的计数器中读取目标介质写指令集合的信用度值;若读取到的信用度值等于预设的最大值,确定目标介质写指令集合中的写指令完成持久化操作。
上述实施例,设置的多个内存写指令集合各自对应的信用度值与多个介质写指令集合各自对应的信用度值保持同步,由于介质控制器能够根据各个介质写指令集合的信用度值确定写指令的执行状态,因此内存控制器与介质控制器的信用度值保持同步后,能准确根据信用度值查询写指令是否完成持久化。同时,通过设置多个内存写指令集合,在持久化查询时能实现以内存写指令集合为粒度的局部阻塞,以提高内存控制器的并行处理效率。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
以上所揭露的仅为本发明一种较佳实施例而已,当然不能以此来限定本发明之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本发明权利要求所作的等同变化,仍属于发明所涵盖的范围。
Claims (18)
1.一种非易失性内存NVM的持久化方法,其特征在于,应用于确认将内存中的待写数据持久化地写入到所述非易失性内存NVM,所述方法包括:
内存控制器接收写指令,所述写指令包括所述待写数据的写地址;
所述内存控制器根据所述写地址,从至少两个内存写指令集合中选择目标内存写指令集合,将所述写指令存入所述目标内存写指令集合,并对所述目标内存写指令集合关联的信用度值减少指定数值;
所述内存控制器将所述目标内存写指令集合中的所述写指令发送给介质控制器;
在接收到所述写指令之后,所述介质控制器根据所述写地址,从所述至少两个介质写指令集合中确定目标介质写指令集合,将所述写指令存入所述目标介质写指令集合,将所述目标介质写指令集合的信用度值减少所述指定数值;
所述介质控制器将所述目标介质写指令集合中的所述写指令发送给所述NVM,在所述NVM成功执行所述写指令后,所述介质控制器将所述目标介质写指令集合的信用度值增加所述指定数值;
所述介质控制器将所述目标介质写指令集合的信用度值发送给所述内存控制器;
在接收到所述目标介质写指令集合的信用度值之后,所述内存控制器根据所述目标介质写指令集合的信用度值更新所述目标内存写指令集合的信用度值,更新后的目标内存写指令集合的信用度值用于确定所述目标内存写指令集合中的写指令完成持久化。
2.如权利要求1所述的方法,其特征在于,所述至少两个内存写指令集合中每个内存写指令集合关联有所述NVM的一个地址区间;
所述内存控制器根据所述写地址,从所述至少两个内存写指令集合中选择目标内存写指令集合,将所述写指令存入所述目标内存写指令集合,并对所述目标内存写指令集合的信用度值减少指定数值包括:
所述内存控制器确定所述写地址所在的目标地址区间,将所述目标地址区间关联的内存写指令集合作为所述目标内存写指令集合;
所述内存控制器将所述写指令存入所述目标内存写指令集合,以及将所述目标内存写指令集合的信用度值减1。
3.如权利要求2所述的方法,其特征在于,所述至少两个介质写指令集合中每个介质写指令集合配置有所述NVM的一个地址区间;
所述介质控制器根据所述写地址,从所述至少两个介质写指令集合中确定目标介质写指令集合,将所述写指令存入所述目标介质写指令集合,将所述目标介质写指令集合的信用度值减少所述指定数值包括:
所述介质控制器确定所述写地址所在的目标地址区间,将所述目标地址区间关联的介质写指令集合作为所述目标介质写指令集合;
所述介质控制器将所述写指令存入所述目标介质写指令集合,以及将所述目标介质写指令集合的信用度值减1。
4.如权利要求3所述的方法,其特征在于,所述内存控制器接收写指令之前,还包括:
所述内存控制器通过调用库函数配置所述至少两个内存写指令集合中每个内存写指令集合的地址区间,以及配置所述至少两个介质写指令集合中每个介质写指令集合的地址区间;其中,所述至少两个内存写指令集合与所述至少两个介质写指令集合呈一一映射关系,关联的内存写指令集合和介质写指令集合具有相同的地址区间。
5.如权利要求1-4任意一项所述的方法,其特征在于,所述介质控制器将所述目标介质写指令集合的信用度值发送给所述内存控制器包括:
所述介质控制器接收所述内存控制器发送的查询请求;所述查询请求用于查询所述目标介质写指令集合的信用度值;
所述介质控制器向所述内存控制器发送携带所述目标介质写指令集合的信用度值的查询响应。
6.如权利要求1-4任意一项所述的方法,其特征在于,所述介质控制器将所述目标介质写指令集合的信用度值发送给所述内存控制器包括:
所述介质控制器周期性的主动向所述内存控制器发送所述目标介质写指令集合的信用度值。
7.如权利要求1所述的方法,其特征在于,还包括:
所述内存控制器接收针对所述目标内存写指令集合的持久化查询指令,以及获取所述持久化查询指令的接收时刻;
在所述接收时刻之后,所述内存控制器阻塞进入所述目标内存写指令集合的写指令;
所述内存控制器读取所述目标内存写指令集合的信用度值;
若读取到的信用度值等于预设的最大值,所述内存控制器确定所述目标内存写指令集合中的写指令完成持久化。
8.如权利要求7所述的方法,其特征在于,在所述接收时刻之后,所述内存控制器阻塞进入所述目标内存写指令集合的写指令包括:
在所述接收时刻之后,所述内存控制器将进入所述目标内存写指令集合的写指令进行缓存处理;或
在所述接收时刻,所述内存控制器将所述目标内存写指令集合加软件互斥锁。
9.如权利要求1所述的方法,其特征在于,还包括:
所述介质控制器接收针对目标介质写指令集合的持久化查询指令;
所述介质控制器读取所述目标介质写指令集合的信用度值;
若读取到的信用度值等于预设的最大值,所述介质控制器确定所述目标介质写指令集合中的写指令完成持久化操作。
10.一种计算设备,其特征在于,包括:内存控制器、介质控制器和非易失性内存NVM,所述内存控制器包括缓存空间,所述内存控制器的缓存空间用来存储至少两个内存写指令集合,所述至少两个内存写指令集合中每个内存写指令集合配置有一个信用度值;所述介质控制器包括缓存空间,所述介质控制器的缓存空间用来存储至少两个介质写指令集合,所述至少两个内存写指令集合中每个介质写指令集合配置有一个信用度值;
所述内存控制器,用于:
接收写指令,所述写指令包括待写数据的写地址;
根据所述写地址,从所述内存控制器的缓存空间存储的所述至少两个内存写指令集合中选择目标内存写指令集合,将所述写指令存入所述目标内存写指令集合,并对所述目标内存写指令集合的信用度值减少指定数值;
将所述目标内存写指令集合中的所述写指令发送给所述介质控制器;
接收所述介质控制器发送的目标介质写指令集合的信用度值;
根据所述目标介质写指令集合的信用度值更新所述目标内存写指令集合的信用度值,更新后的目标内存写指令集合的信用度值用于确定所述目标内存写指令集合中的写指令完成持久化;
所述介质控制器,用于:
接收内存控制器发送的所述写指令;
根据所述写地址,从所述介质控制器的缓存空间存储的所述至少两个介质写指令集合中确定目标介质写指令集合;
将所述写指令存入所述目标介质写指令集合,将所述目标介质写指令集合的信用度值减少所述指定数值;
将所述目标介质写指令集合中的所述写指令发送给所述NVM,在所述NVM成功执行所述写指令后,将所述目标介质写指令集合的信用度值增加所述指定数值;
将所述目标介质写指令集合的信用度值发送给所述内存控制器。
11.如权利要求10所述的计算设备,其特征在于,所述内存控制器还包括:接收器、缓存控制器、多个计数器、发送器,其中,每个内存写指令集合配置有一个计数器;
所述介质控制器还包括:接收器、缓存控制器、多个计数器和发送器,其中,每个介质写指令集合配置有一个计数器;
所述内存控制器的接收器,用于接收携带写地址的写指令;
所述内存控制器的缓存控制器,用于根据所述写地址,从所述内存控制器的缓存空间中存储的所述至少两个内存写指令集合中选择目标内存写指令集合,将所述写指令存入所述目标内存写指令集合,并对指示所述目标写指令集合的计数器所述目标内存写指令集合的信用度值减少指定数值;
所述内存控制器的发送器,用于将所述目标内存写指令集合中的所述写指令发送给所述介质控制器的接收器;
所述内存控制器的接收器还用于接收所述介质控制器的发送器发送的所述目标介质写指令集合的信用度值;
所述内存控制器的缓存控制器还用于指示所述内存控制器的计数器根据所述目标介质写指令集合的信用度值更新所述目标内存写指令集合的信用度值,更新后的目标内存写指令集合的信用度值用于确定所述目标内存写指令集合中的写指令完成持久化;
所述介质控制器的接收器用于接收所述内存控制器的发送器发送的所述写指令;
所述介质控制器的缓存控制器,用于根据所述写地址,从所述介质控制器的缓存空间中存储的所述至少两个介质写指令集合中确定目标介质写指令集合;将所述写指令存入所述目标介质写指令集合,指示所述目标介质写指令集合对应的计数器将所述目标介质写指令集合的信用度值减少所述指定数值;
所述介质控制器的发送器,用于将所述目标介质写指令集合中的所述写指令发送给所述NVM;
所述介质控制器的缓存控制器还用于在所述NVM成功执行所述写指令后,指示所述目标介质写指令集合对应的计数器将所述目标介质写指令集合的信用度值增加所述指定数值;
所述介质控制器的发送器还用于将所述目标介质写指令集合的信用度值发送给所述内存控制器的接收器。
12.如权利要求11所述的计算设备,其特征在于,所述至少两个内存写指令集合中每个内存写指令集合配置有所述NVM的一个地址区间;
所述内存控制器的缓存控制器用于:
确定所述写地址所在的目标地址区间,将所述目标地址区间关联的内存写指令集合作为所述目标内存写指令集合;
将所述写指令存入所述目标内存写指令集合,指示所述目标介质写指令集合对应的计数器将所述目标内存写指令集合的信用度值减1。
13.如权利要求12所述的计算设备,其特征在于,所述至少两个介质写指令集合中每个介质写指令集合配置有所述NVM的一个地址区间;
所述介质控制器的缓存控制器用于:
确定所述写地址所在的目标地址区间,将所述目标地址区间关联的介质写指令集合作为所述目标介质写指令集合;
将所述写指令存入所述目标介质写指令集合,以及指示所述目标介质写指令集合对应的计数器将所述目标介质写指令集合的信用度值减1。
14.如权利要求13所述的计算设备,其特征在于,所述内存控制器的缓存控制器还用于:
通过调用库函数配置所述至少两个内存写指令集合中每个内存写指令集合的地址区间,以及配置所述至少两个介质写指令集合中每个介质写指令集合的地址区间;其中,所述至少两个内存写指令集合与所述至少两个介质写指令集合呈一一映射关系,关联的内存写指令集合和介质写指令集合具有相同的地址区间。
15.如权利要求11-14任意一项所述的计算设备,其特征在于,所述介质控制器的发送器用于:
根据所述内存控制器的发送器发送的所述信用度值查询请求,向所述内存控制器的接收器返回携带所述目标介质写指令集合的信用度值的查询响应。
16.如权利要求11-14任意一项所述的计算设备,其特征在于,所述介质控制器的发送器用于:
周期性的主动向所述内存控制器的接收器发送所述目标介质写指令集合的信用度值。
17.如权利要求11所述的计算设备,其特征在于,所述内存控制器的缓存控制器还用于:
接收针对所述目标内存写指令集合的持久化查询指令,以及获取所述持久化查询指令的接收时刻;阻塞在所述接收时刻之后进入所述目标内存写指令集合的写指令;在所述目标内存写指令集合对应的计数器中读取所述目标内存写指令集合的信用度值;若读取到的信用度值等于预设的最大值,确定所述目标内存写指令集合中的写指令完成持久化。
18.如权利要求11所述的计算设备,其特征在于,所述介质控制器的控制器还用于:
根据接收的针对目标介质写指令集合的持久化查询指令,在所述目标介质写指令集合对应的计数器中读取所述目标介质写指令集合的信用度值;若读取到的信用度值等于预设的最大值,确定所述目标介质写指令集合中的写指令完成持久化操作。
Priority Applications (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610878743.8A CN107885671B (zh) | 2016-09-30 | 2016-09-30 | 一种非易失性内存的持久化方法和计算设备 |
EP17855022.4A EP3514690B1 (en) | 2016-09-30 | 2017-09-30 | Non-volatile memory persistence method and computing device |
PCT/CN2017/104743 WO2018059572A1 (zh) | 2016-09-30 | 2017-09-30 | 一种非易失性内存的持久化方法和计算设备 |
JP2019517220A JP6878577B2 (ja) | 2016-09-30 | 2017-09-30 | 不揮発性メモリの持続方法およびコンピューティングデバイス |
CN201780059962.6A CN110088740B (zh) | 2016-09-30 | 2017-09-30 | 一种非易失性内存的持久化方法和计算设备 |
KR1020197010570A KR102364332B1 (ko) | 2016-09-30 | 2017-09-30 | 비휘발성 메모리 지속화 방법 및 컴퓨팅 디바이스 |
US16/366,325 US10976956B2 (en) | 2016-09-30 | 2019-03-27 | Non-volatile memory persistence method and computing device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610878743.8A CN107885671B (zh) | 2016-09-30 | 2016-09-30 | 一种非易失性内存的持久化方法和计算设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107885671A CN107885671A (zh) | 2018-04-06 |
CN107885671B true CN107885671B (zh) | 2021-09-14 |
Family
ID=61762503
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610878743.8A Active CN107885671B (zh) | 2016-09-30 | 2016-09-30 | 一种非易失性内存的持久化方法和计算设备 |
CN201780059962.6A Active CN110088740B (zh) | 2016-09-30 | 2017-09-30 | 一种非易失性内存的持久化方法和计算设备 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780059962.6A Active CN110088740B (zh) | 2016-09-30 | 2017-09-30 | 一种非易失性内存的持久化方法和计算设备 |
Country Status (6)
Country | Link |
---|---|
US (1) | US10976956B2 (zh) |
EP (1) | EP3514690B1 (zh) |
JP (1) | JP6878577B2 (zh) |
KR (1) | KR102364332B1 (zh) |
CN (2) | CN107885671B (zh) |
WO (1) | WO2018059572A1 (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107885671B (zh) * | 2016-09-30 | 2021-09-14 | 华为技术有限公司 | 一种非易失性内存的持久化方法和计算设备 |
US11048645B2 (en) * | 2018-02-01 | 2021-06-29 | Samsung Electronics Co., Ltd. | Memory module, operation method therof, and operation method of host |
US11074007B2 (en) * | 2018-08-08 | 2021-07-27 | Micron Technology, Inc. | Optimize information requests to a memory system |
US11409436B2 (en) | 2018-08-08 | 2022-08-09 | Micron Technology, Inc. | Buffer management in memory systems for read and write requests |
US10969994B2 (en) | 2018-08-08 | 2021-04-06 | Micron Technology, Inc. | Throttle response signals from a memory system |
US10782916B2 (en) | 2018-08-08 | 2020-09-22 | Micron Technology, Inc. | Proactive return of write credits in a memory system |
US11947995B2 (en) * | 2020-05-19 | 2024-04-02 | Intel Corporation | End-to-end data protection for far memory data transfer from host to media |
US20220374168A1 (en) * | 2021-05-21 | 2022-11-24 | Micron Technology, Inc. | Memory with memory-initiated command insertion, and associated systems, devices, and methods |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6289386B1 (en) * | 1998-05-11 | 2001-09-11 | Lsi Logic Corporation | Implementation of a divide algorithm for buffer credit calculation in a high speed serial channel |
US7103672B1 (en) * | 2000-05-01 | 2006-09-05 | Hewlett-Packard Development Company, L.P. | Method and apparatus for improving system performance through remote credit management |
US7702871B1 (en) * | 2007-08-31 | 2010-04-20 | Emc Corporation | Write pacing |
CN103309605A (zh) * | 2012-03-06 | 2013-09-18 | 索尼公司 | 信息处理装置和信息处理方法 |
WO2014143056A1 (en) * | 2013-03-15 | 2014-09-18 | Intel Corporation | A memory system |
CN104239252A (zh) * | 2013-06-21 | 2014-12-24 | 华为技术有限公司 | 数据存储系统的数据传输方法、装置及系统 |
CN104881371A (zh) * | 2015-05-29 | 2015-09-02 | 清华大学 | 持久性内存事务处理缓存管理方法与装置 |
CN105446899A (zh) * | 2015-11-09 | 2016-03-30 | 上海交通大学 | 基于存储级内存的内存数据快速持久化的方法 |
CN105814544A (zh) * | 2013-12-13 | 2016-07-27 | 甲骨文国际公司 | 用于支持分布式数据网格中的持久化分区发现的系统和方法 |
WO2016118624A1 (en) * | 2015-01-20 | 2016-07-28 | Ultrata Llc | Object memory instruction set |
CN110088740A (zh) * | 2016-09-30 | 2019-08-02 | 华为技术有限公司 | 一种非易失性内存的持久化方法和计算设备 |
Family Cites Families (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW451132B (en) * | 1998-12-15 | 2001-08-21 | Nippon Electric Co | System and method for cache processing |
JP3525867B2 (ja) * | 2000-07-07 | 2004-05-10 | 日本電気株式会社 | 通信装置および通信端末 |
JP4403677B2 (ja) * | 2001-08-27 | 2010-01-27 | ブラザー工業株式会社 | 通信装置及び通信システム |
CN1292568C (zh) | 2001-09-02 | 2006-12-27 | 中兴通讯股份有限公司 | 一种多队列数据分组连续转发的装置和方法 |
CN1249722C (zh) | 2002-01-23 | 2006-04-05 | 华为技术有限公司 | 多计数器的构造方法、多计数器及使用其的多队列装置 |
JP2006172314A (ja) | 2004-12-17 | 2006-06-29 | Jidosha Denki Kogyo Co Ltd | 不揮発性メモリのデータ書込み装置 |
JP2006309579A (ja) * | 2005-04-28 | 2006-11-09 | Hitachi Ltd | 記憶制御装置及びストレージシステム |
US8516211B2 (en) * | 2005-06-17 | 2013-08-20 | Flexera Software Llc | Secure storage management system and method |
CN101082852B (zh) * | 2006-05-29 | 2012-07-18 | 联阳半导体股份有限公司 | 用于存储器的控制装置及控制方法 |
CN101801061B (zh) | 2010-02-11 | 2013-06-05 | 华为技术有限公司 | 一种信用度消耗法则上报方法、准入控制方法及装置 |
JP2012252416A (ja) * | 2011-05-31 | 2012-12-20 | Toshiba Corp | 記憶装置、データ制御方法、及びデータコントローラ |
US10359972B2 (en) * | 2012-08-31 | 2019-07-23 | Sandisk Technologies Llc | Systems, methods, and interfaces for adaptive persistence |
KR101380452B1 (ko) | 2012-08-14 | 2014-04-14 | 한국과학기술원 | 버퍼리스 온칩 네트워크의 전력 소모 감소를 위한 목적지 기반 크레딧 흐름 제어 방법 및 장치 |
CN102890631B (zh) * | 2012-09-13 | 2016-12-07 | 新浪网技术(中国)有限公司 | 基于持久化消息队列传输消息的方法及消息传输装置 |
KR101932920B1 (ko) | 2012-09-14 | 2019-03-18 | 삼성전자 주식회사 | 비휘발성 메모리 카드를 제어하는 호스트, 이를 포함하는 시스템 및 이의 동작 방법 |
JP2014230072A (ja) * | 2013-05-22 | 2014-12-08 | 株式会社リコー | データ通信デバイス、データ通信装置及びデータ通信方法 |
CN103268291B (zh) * | 2013-05-23 | 2016-02-24 | 清华大学 | 在闪存存储系统中延迟持久化索引元数据的方法 |
US9423959B2 (en) * | 2013-06-29 | 2016-08-23 | Intel Corporation | Method and apparatus for store durability and ordering in a persistent memory architecture |
WO2015005903A1 (en) | 2013-07-09 | 2015-01-15 | Hewlett-Packard Development Company, L.P. | Write flow control for memory modules that include or interface with non-compliant memory technologies |
WO2015155824A1 (ja) * | 2014-04-07 | 2015-10-15 | 株式会社日立製作所 | ストレージシステム |
CN104079502B (zh) | 2014-06-27 | 2017-05-10 | 国家计算机网络与信息安全管理中心 | 一种多用户多队列调度方法 |
JP6331787B2 (ja) * | 2014-07-08 | 2018-05-30 | 富士通株式会社 | データ送受信システム、データ送信装置およびデータ送受信システムの制御方法 |
US10489158B2 (en) * | 2014-09-26 | 2019-11-26 | Intel Corporation | Processors, methods, systems, and instructions to selectively fence only persistent storage of given data relative to subsequent stores |
US9626297B2 (en) * | 2014-10-08 | 2017-04-18 | Wisconsin Alumni Research Foundation | Memory fault patching using pre-existing memory structures |
US20160188414A1 (en) * | 2014-12-24 | 2016-06-30 | Intel Corporation | Fault tolerant automatic dual in-line memory module refresh |
US10318340B2 (en) * | 2014-12-31 | 2019-06-11 | Ati Technologies Ulc | NVRAM-aware data processing system |
US10579560B2 (en) * | 2016-08-31 | 2020-03-03 | Futurewei Technologies, Inc. | Transaction-based hybrid memory |
-
2016
- 2016-09-30 CN CN201610878743.8A patent/CN107885671B/zh active Active
-
2017
- 2017-09-30 WO PCT/CN2017/104743 patent/WO2018059572A1/zh unknown
- 2017-09-30 JP JP2019517220A patent/JP6878577B2/ja active Active
- 2017-09-30 CN CN201780059962.6A patent/CN110088740B/zh active Active
- 2017-09-30 EP EP17855022.4A patent/EP3514690B1/en active Active
- 2017-09-30 KR KR1020197010570A patent/KR102364332B1/ko active IP Right Grant
-
2019
- 2019-03-27 US US16/366,325 patent/US10976956B2/en active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6289386B1 (en) * | 1998-05-11 | 2001-09-11 | Lsi Logic Corporation | Implementation of a divide algorithm for buffer credit calculation in a high speed serial channel |
US7103672B1 (en) * | 2000-05-01 | 2006-09-05 | Hewlett-Packard Development Company, L.P. | Method and apparatus for improving system performance through remote credit management |
US7702871B1 (en) * | 2007-08-31 | 2010-04-20 | Emc Corporation | Write pacing |
CN103309605A (zh) * | 2012-03-06 | 2013-09-18 | 索尼公司 | 信息处理装置和信息处理方法 |
WO2014143056A1 (en) * | 2013-03-15 | 2014-09-18 | Intel Corporation | A memory system |
CN104239252A (zh) * | 2013-06-21 | 2014-12-24 | 华为技术有限公司 | 数据存储系统的数据传输方法、装置及系统 |
CN105814544A (zh) * | 2013-12-13 | 2016-07-27 | 甲骨文国际公司 | 用于支持分布式数据网格中的持久化分区发现的系统和方法 |
WO2016118624A1 (en) * | 2015-01-20 | 2016-07-28 | Ultrata Llc | Object memory instruction set |
CN104881371A (zh) * | 2015-05-29 | 2015-09-02 | 清华大学 | 持久性内存事务处理缓存管理方法与装置 |
CN105446899A (zh) * | 2015-11-09 | 2016-03-30 | 上海交通大学 | 基于存储级内存的内存数据快速持久化的方法 |
CN110088740A (zh) * | 2016-09-30 | 2019-08-02 | 华为技术有限公司 | 一种非易失性内存的持久化方法和计算设备 |
Also Published As
Publication number | Publication date |
---|---|
EP3514690A4 (en) | 2019-10-30 |
KR102364332B1 (ko) | 2022-02-17 |
EP3514690A1 (en) | 2019-07-24 |
US20190220224A1 (en) | 2019-07-18 |
JP2019533244A (ja) | 2019-11-14 |
CN107885671A (zh) | 2018-04-06 |
JP6878577B2 (ja) | 2021-05-26 |
EP3514690B1 (en) | 2023-06-21 |
US10976956B2 (en) | 2021-04-13 |
WO2018059572A1 (zh) | 2018-04-05 |
CN110088740B (zh) | 2021-10-19 |
KR20190047035A (ko) | 2019-05-07 |
CN110088740A (zh) | 2019-08-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107885671B (zh) | 一种非易失性内存的持久化方法和计算设备 | |
US10606516B2 (en) | Systems and methods for I/O prioritization in NVMe-compliant storage devices | |
CN109977129A (zh) | 多级数据缓存方法及设备 | |
CN104954468A (zh) | 资源的分配方法及装置 | |
CN105468718B (zh) | 数据一致性处理方法、装置和系统 | |
CN110780823B (zh) | 小对象内存管理方法、装置、电子设备和计算机可读介质 | |
CN109726137B (zh) | 固态硬盘垃圾回收任务的管理方法、控制器和固态硬盘 | |
CN110427386B (zh) | 数据处理方法、装置及计算机存储介质 | |
CN102790784A (zh) | 分布式缓存方法及系统、缓存解析方法及解析系统 | |
CN103236989A (zh) | 一种内容分发网络中的缓存控制方法、设备及系统 | |
JP2019045930A (ja) | タスク配備プログラム、タスク配備方法、およびタスク配備装置 | |
CN111666265B (zh) | 一种数据管理方法、装置、服务器及存储介质 | |
CN111443875A (zh) | 基于地址关系表的数据处理方法、装置及设备 | |
CN111858418B (zh) | 一种基于远程直接内存访问rdma的内存通信方法及装置 | |
CN112491986B (zh) | 一种分布式系统中命令分发方法、装置及系统 | |
CN110881277A (zh) | 一种数据存储方法、装置及相关设备 | |
US11144236B2 (en) | Information processing apparatus, information processing method, and non-transitory computer-readable storage medium for storing program | |
CN113760851B (zh) | 文件处理方法、装置、设备及介质 | |
CN107122134B (zh) | 一种数据读取的方法和装置 | |
CN111796902B (zh) | 切换共享内存区的方法和装置、存储介质和电子设备 | |
JP6835758B2 (ja) | フロー制御装置および方法 | |
CN117667764A (zh) | 内存管理方法、装置、电子设备及存储介质 | |
CN116820639A (zh) | 用于页面缓存的方法、存储介质及处理器 | |
JP6287427B2 (ja) | ストレージシステム | |
CN114253711A (zh) | 数据标识分配方法、装置、发号器、介质及产品 |
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 |