CN117472795A - 存储介质管理方法及服务器 - Google Patents
存储介质管理方法及服务器 Download PDFInfo
- Publication number
- CN117472795A CN117472795A CN202311232196.2A CN202311232196A CN117472795A CN 117472795 A CN117472795 A CN 117472795A CN 202311232196 A CN202311232196 A CN 202311232196A CN 117472795 A CN117472795 A CN 117472795A
- Authority
- CN
- China
- Prior art keywords
- address space
- address
- controller
- storage medium
- target
- 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.)
- Pending
Links
- 238000007726 management method Methods 0.000 title claims abstract description 41
- 238000000034 method Methods 0.000 claims abstract description 53
- 230000015654 memory Effects 0.000 claims description 118
- 238000013507 mapping Methods 0.000 claims description 70
- 238000012545 processing Methods 0.000 claims description 16
- 238000012546 transfer Methods 0.000 claims description 8
- 230000008569 process Effects 0.000 description 23
- 238000010586 diagram Methods 0.000 description 14
- 230000004044 response Effects 0.000 description 10
- 230000007246 mechanism Effects 0.000 description 5
- 238000006243 chemical reaction Methods 0.000 description 4
- 101150055297 SET1 gene Proteins 0.000 description 3
- 238000001693 membrane extraction with a sorbent interface Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000002085 persistent effect Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
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
-
- 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/0604—Improving or facilitating administration, e.g. storage management
-
- 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/0284—Multiple user address space allocation, e.g. using different base addresses
-
- 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/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
-
- 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/0868—Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
-
- 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
- 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/0888—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using selective caching, e.g. bypass
-
- 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/10—Address translation
-
- 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/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/126—Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
-
- 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/0638—Organizing or formatting or addressing of data
-
- 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/068—Hybrid storage device
-
- 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/0292—User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
-
- 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/0864—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using pseudo-associative means, e.g. set-associative or hashing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
- G06F2212/1024—Latency reduction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1032—Reliability improvement, data loss prevention, degraded operation etc
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1056—Simplification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/20—Employing a main memory using a specific memory technology
- G06F2212/205—Hybrid memory, e.g. using both volatile and non-volatile memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/22—Employing cache memory using specific memory technology
- G06F2212/225—Hybrid cache memory, e.g. having both volatile and non-volatile portions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/31—Providing disk cache in a specific location of a storage system
- G06F2212/313—In storage device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/60—Details of cache memory
- G06F2212/601—Reconfiguration of cache memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7208—Multiple device management, e.g. distributing data over multiple flash devices
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种存储介质管理方法及服务器,属于服务器领域。本方法通过控制器接收地址空间请求,并将地址空间请求所请求的第一地址空间提供给操作系统,从而使得第一地址空间直接由操作系统管理,而无须人工配置或重启电子设备,提高了管理存储介质的灵活性。
Description
本申请是向中国专利局提交的申请号为202010477603.6,申请日为2020年05月29日,发明创造名称为“存储介质管理方法、装置、设备以及计算机可读存储介质”的发明专利申请的分案申请。
技术领域
本申请涉及服务器领域,特别涉及一种存储介质管理方法及服务器。
背景技术
随着存储介质技术的发展,不同种类的存储介质可以作为一个混合内存来为电子设备提供数据存储服务。为了使得混合内存可以更好的服务于电子设备,电子设备可以对混合内存进行管理。以混合内存包括非易失性存储介质以及易失性存储介质为例,非易失性存储介质可以与电子设备中的处理器(central processing units,CPU)内的整合内存控制器(integrated memory controller,IMC)连接,并与易失性存储介质共享数据传输通道。
当前,存储介质的管理过程可以是:非易失性存储介质可以支持内存模式(MemoryMode)和应用直接访问模式(application Direct Mode,App Direct Mode)这两种工作模式;在内存模式下,易失性存储介质作为非易失性存储介质的缓存(cache),使得CPU可以通过易失性存储介质访问非易失性存储介质,并由IMC对非易失性存储介质和易失性存储介质进行统一管理,并将非易失性存储介质呈现给电子设备中的操作系统(operatingsystem,OS),但是易失性存储介质是对操作系统不可见的。在应用直接访问模式下,非易失性存储介质和易失性存储介质内的地址空间由IMC进行统一编址,并将易失性存储介质和非易失性存储介质都呈现给操作系统,以便易失性存储介质和非易失性存储介质由操作系统进行统一管理。当混合内存的工作模式需要转换时,需要重启电子设备以及人工配置才能完成转换,以内存模式转换为应用直接访问模式为例,技术人员可以重启电子设备,在操作系统刚启动时进入基本输入输出系统(basic input output system,BIOS),技术人员在BIOS内将混合内存的工作模式由内存模式配置为应用直接访问模式,当重启完成后,混合内存才能工作在应用直接访问模式下。
在上述存储介质的管理过程中,转换混合内存的管理工作模式时不仅需要人工配置,还需要重启电子设备,转换过程繁琐,导致电子设备对存储介质的管理不灵活。
发明内容
本申请实施例提供了一种存储介质管理方法及服务器,提高了管理存储介质的灵活性。该技术方案如下:
第一方面,提供了一种存储介质管理方法,应用于服务器,所述服务器包括控制器以及两种不同类型的存储介质,所述方法包括:
所述内存控制器接收操作系统发送的地址空间请求;
所述内存控制器基于接收到所述地址空间请求,确定所述目标存储介质中的第一地址空间;
所述内存控制器将所述第一地址空间的物理地址映射至目标虚拟地址,所述目标虚拟地址由所述操作系统管理。
该方法通过控制器接收地址空间请求,并将地址空间请求所请求的第一地址空间提供给操作系统,从而使得第一地址空间直接由操作系统管理,而无须人工配置或重启电子设备,提高了管理存储介质的灵活性。
在一种可能的实现方式中,所述控制器将所述第一地址空间的物理地址映射至目标虚拟地址之前,所述方法还包括:
所述控制器锁定或无效所述第一地址空间。
在一种可能的实现方式中,所述控制器无效所述第一地址空间包括:
当所述第一地址空间为易失性地址空间时,对所述第一地址空间进行无效操作。
在一种可能的实现方式中,所述控制器锁定所述第一地址空间包括:
当所述第一地址空间为非易失性地址空间时,基于所述第一地址空间的物理地址,确定所述第一地址空间所对应的第二地址空间,所述第二地址空间属于所述目标存储介质的缓存;将所述第一地址空间中已存储的数据转移至所述第二地址空间;当转移完成后,对所述第二地址空间加锁。
基于上述可能的实现方式,当第一地址空间为非易失性地址空间时,通过将第一地址空间存储的数据转移至易失性存储介质,以避免第一地址空间存储的数据丢失。
在一种可能的实现方式中,所述控制器将所述第一地址空间的物理地址映射至目标虚拟地址包括:
建立所述第一地址空间的物理地址、所述目标虚拟地址、目标标识之间的映射关系,所述目标标识用于指示所述目标虚拟地址由所述操作系统管理。
在一种可能的实现方式中,所述控制器接收地址空间请求之前,所述方法还包括:
所述控制器生成目标虚拟地址区间,所述目标虚拟地址区间包括多个目标虚拟地址。
在一种可能的实现方式中,所述方法还包括:
所述控制器接收退回请求;所述控制器基于目标虚拟地址与地址空间的物理地址之间的映射关系,以及所述退回请求,确定第一目标虚拟地址对应的目标物理地址;所述控制器删除所述目标物理地址与所述第一目标虚拟地址之间的映射关系;
其中,所述退回请求用于指示将所述操作系统管理的第一目标虚拟地址对应的地址空间退回至由所述控制器管理,所述地址空间位于所述不同类型的存储介质中至少一种类型的存储介质。
在一种可能的实现方式中,所述控制器删除所述目标物理地址与所述第一目标虚拟地址之间的映射关系之前,所述方法还包括:
所述控制器对所述目标物理地址对应的第三地址空间进行去锁定处理或去无效处理。
在一种可能的实现方式中,所述控制器对所述目标物理地址对应的第三地址空间进行去无效处理包括:
当所述第三地址空间为易失性地址空间时,对所述第三地址空间进行去无效操作。
在一种可能的实现方式中,所述控制器对所述目标物理地址对应的第三地址空间进行去锁定处理包括:
当所述第三地址空间为非易失性地址空间时,基于所述第三地址空间的物理地址,确定所述第三地址空间所对应的第四地址空间;对所述第四地址空间去锁;其中,所述第四地址空间属于所述第三地址空间所在的存储介质的缓存。
在一种可能的实现方式中,所述地址空间请求包括所述操作系统对待提供的地址空间的属性要求和/或数据量要求;当所述目标存储介质符合所述地址空间请求中的要求时,所述目标存储介质与所述地址空间请求匹配。
在一种可能的实现方式中,前述的物理地址和虚拟地址表示一段地址范围。
第二方面,提供了一种存储介质管理方法,应用于电子设备,所述电子设备包括控制器以及两种不同类型的存储介质,所述方法包括:
所述控制器接收退回请求;所述控制器基于目标虚拟地址与地址空间的物理地址之间的映射关系,以及所述退回请求,确定第一目标虚拟地址对应的目标物理地址;所述控制器删除所述目标物理地址与所述第一目标虚拟地址之间的映射关系;
其中,所述退回请求用于指示将所述操作系统管理的第一目标虚拟地址对应的地址空间退回至由所述控制器管理,所述地址空间位于所述不同类型的存储介质中至少一种类型的存储介质。
该方法通过控制器接收退回请求,并基于退回请求,删除目标物理地址与第一目标虚拟地址之间的映射关系,从而将目标物理地址所对应的地址空间退回至由控制器管理,而无须人工配置或重启电子设备,提高了管理存储介质的灵活性。
在一种可能的实现方式中,所述控制器删除所述目标物理地址与所述第一目标虚拟地址之间的映射关系之前,所述方法还包括:
所述控制器对所述目标物理地址对应的第三地址空间进行去锁定处理或去无效处理。
在一种可能的实现方式中,所述控制器对所述目标物理地址对应的第三地址空间进行去无效处理包括:
当所述第三地址空间为易失性地址空间时,对所述第三地址空间进行去无效操作。
在一种可能的实现方式中,所述控制器对所述目标物理地址对应的第三地址空间进行去锁定处理包括:
当所述第三地址空间为非易失性地址空间时,基于所述第三地址空间的物理地址,确定所述第三地址空间所对应的第四地址空间,所述第四地址空间属于所述第三地址空间所在的存储介质的缓存;
对所述第四地址空间去锁。
第三方面,提供了一种存储介质管理装置,用于执行上述存储介质管理方法。具体地,该存储介质管理装置包括用于执行上述第一方面或上述第一方面的任一种可选方式提供的存储介质管理方法的功能模块。
第四方面,提供了一种存储介质管理装置,用于执行上述存储介质管理方法。具体地,该存储介质管理装置包括用于执行上述第二方面或上述第二方面的任一种可选方式提供的存储介质管理方法的功能模块。
第五方面,提供一种电子设备,该电子设备包括处理器和存储器,该存储器中存储有至少一条指令,该指令由该处理器加载并执行以实现如上述存储介质管理方法所执行的操作。
第六方面,提供一种计算机可读存储介质,该存储介质中存储有至少一条指令,该指令由处理器加载并执行以实现如上述存储介质管理方法所执行的操作。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是现有技术中在内存模式下管理存储介质的示意图;
图2是现有技术中在应用直接访问模式下管理存储介质的示意图;
图3是本申请实施例提供的一种电子设备的结构示意图;
图4是本申请实施例提供的一种电子设备的结构示意图;
图5是本申请实施例提供的一种存储介质管理方法的流程图;
图6是本申请实施例提供的一种控制器将易失性地址空间提供给操作系统的示意图;
图7是本申请实施例提供的一种控制器将非易失性地址空间提供给操作系统的示意图;
图8是本申请实施例提供的一种存储介质管理方法的流程图;
图9是本申请实施例提供的一种存储介质管理装置的结构示意图;
图10是本申请实施例提供的一种存储介质管理装置的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
对于任一个存储介质,该存储介质对应一个物理地址空间,该物理地址空间可以包括多个物理地址,每个物理地址对应该存储介质中的一个地址空间,这多个物理地址对应的地址空间的大小可以不同,也可以相同。当电子设备中的混合内存包括非易失性存储介质和易失性存储介质时,目前,电子设备管理存储介质的方式可以包括下述方式1和2。
方式1、电子设备在内存模式下管理存储介质。
图1是现有技术中在内存模式下管理存储介质的示意图,请参见图1,在内存模式下,易失性存储介质作为非易失性存储介质的缓存,对于非易失性存储介质中存储的CPU经常访问的数据,易失性存储介质中也可以存储有这些数据,以便CPU后续可以直接从易失性存储介质中获取这些数据,而无须多次从非易失性存储介质来获取这些数据。而非易失性存储介质用于为应用提供内存空间,以存储应用执行业务时的业务数据,非易失性存储介质所提供的内存空间可以包括多个非易失性地址空间,CPU中的IMC可以通过第一虚拟地址区间对这多个非易失性地址空间进行统一编址,该第一虚拟地址区间可以包括多个第一虚拟地址。IMC可以通过建立每个非易失性地址空间的物理地址与一个第一虚拟地址之间的映射关系,使得每个非易失性地址空间对应一个第一虚拟地址,从而实现对这多个非易失性地址空间进行统一编址。以图1为例,一个非易失性存储介质的3个非易失性地址空间分别对应第一虚拟地址0、4096以及8192,另一个非易失性存储介质的3个非易失性地址空间分别对应第一虚拟地址102400、106496以及110592。IMC可以将与非易失性地址空间具有映射关系的第一虚拟地址发送给电子设备中的操作系统,以实现将非易失性存储介质所提供的内存空间呈现给操作系统,以便操作系统可以将内存空间呈现给操作系统的内核,内核再将操作系统呈现的内存空间分配给应用。
方式2、节点设备在应用访问模式下管理存储介质。
图2是现有技术中在应用直接访问模式下管理存储介质的示意图,请参见图2,在应用直接访问模式下易失性存储介质和非易失性存储介质均用于为操作系统提供内存空间,易失性存储介质所提供的内存空间包括多个易失性地址空间,非易失性存储介质所提供的内存空间也包括多个非易失性地址空间,IMC可以通过第二虚拟地址区间对易失性存储介质和非易失性存储介质中的各个地址空间进行统一编址,该第二虚拟地址区间可以包括多个第二虚拟地址。IMC可以通过建立每个地址空间的物理地址与一个第二虚拟地址之间的映射关系,使得每个地址空间对应一个第二虚拟地址,从而实现对易失性存储介质和非易失性存储介质中的各个地址空间进行统一编址。例如,图2中一个易失性存储介质的3个易失性地址空间分别对应第二虚拟地址0、4096以及8192,一个非易失性存储介质的3个非易失性地址空间分别对应第二虚拟地址102400、106496以及110592。IMC可以将具有映射关系的第二虚拟地址发送给操作系统。
为了提高管理存储介质的灵活性,本申请实施例提出包括多个目标虚拟地址的目标虚拟地址区间,将该目标虚拟地址区间作为一个用于实现动态转换的虚拟地址区间,电子设备中的控制器可以建立地址空间的物理地址与目标虚拟地址之间的映射关系,并将有映射关系的目标虚拟地址发送给操作系统,由操作系统对目标虚拟地址进行管理,从而可以实现将目标虚拟地址所对应的地址空间呈现给操作系统所服务的应用。当提供给操作系统的易失性地址空间属于缓存时,即使混合内存的工作模式为内存模式,目标虚拟地址所对应的易失性地址空间依然可以由操作系统来管理,该目标虚拟地址对操作系统可见,且操作系统可以对目标虚拟地址进行访问。当控制器删除目标虚拟地址与地址空间的物理地址之间的映射关系时,可以将提供给操作系统的地址空间退回至由控制器管理。
为了进一步说明用于基于目标虚拟地址区间管理存储介质的节点设备的硬件结构,请参见图3所示的本申请实施例提供的一种电子设备的结构示意图,电子设备300包括混合内存301、控制器302。该电子设备300中还可以安装有操作系统,该操作系统为用于负责支撑应用的运行环境以及用户操作环境的系统软件,可以是磁碟操作系统(diskoperating system)、微软(Windows)操作系统、鸿蒙(Harmony)操作系统或安卓(Android)操作系统,也可以是其他操作系统,本申请实施例对该电子设备300中使用的操作系统不做具体限定。该电子设备300可以是服务器,还可以终端(例如手机、笔记本电脑等),本申请实施例对该电子设备300的形式不做具体限定。
混合内存301可以包括两种不同类型的存储介质,不同类型的存储介质具有不同的属性,该属性可以分为第一属性以及第二属性,其中,第一属性可以是否易失数据,第二属性用于指示存储介质的性能,该性能可以是访问数据的快慢情况,例如,图3中的混合内存301包括非易失性存储介质以及易失性存储介质,本申请实施例对存储介质的属性不做具体限定,且本申请实施例以混合内存301包括非易失性存储介质以及易失性存储介质为例进行说明。混合内存301中包括的具有相同类型的存储介质的个数可以有至少一个,例如图3中的混合内存301包括2个非易失性存储介质以及2个易失性存储介质。本申请实施例对混合内存301中同一类型的存储介质的个数不做具体限定。其中,易失性存储介质可以是动态随机存取存储器(dynamic random access memory,DRAM)或双倍速率同步动态随机存储器(doubledata rate synchronous dynamic randomaccess memory,DDRSDRAM),也可以是具有易失性的其他存储器,本申请实施例对该易失性存储介质不做具体限定。非易失性存储介质可以是持久性内存模块(persistent memory module,PMM)、存储级内存(storageclass memory,SCM)、相变内存(phase change memory,PCM),磁性随机存储器(magneticrandomaccess memory,MRAM)或电阻式随机存取内存(resistive random access memory,ReRAM),也可以是具有非易失性的其他存储器,本申请实施例对该非易失性存储介质不做具体限定。初始化时,混合内存301可以工作在内存模式下,混合内存301中的易失性存储介质作为非易失性存储介质的缓存,易失性存储介质对电子设备300中的操作系统不可见,而混合内存301中的非易失性存储介质对操作系统可见。
控制器302可以视为内存控制器,用于对混合内存301中非易失性存储介质内的非易失性存储地址空间进行统一编址,该控制器302可以建立混合内存301中非易失性存储介质内各个非易失性地址空间的物理地址与第一虚拟区间中各个第一虚拟地址之间的映射关系,使得每个非易失性地址空间对应一个第一虚拟地址,例如图3中一个非易失性存储介质的3个非易失性地址空间分别对应第一虚拟地址0、4096、8192,另一个非易失性存储介质的3个非易失性存储空间分别对应第一虚拟地址102400、106496、110592。控制器302还可以生成一个目标虚拟地址区间,该控制器302可以根据操作系统的需求以及目标虚拟地址区间内目标虚拟地址,为操作系统提供地址空间,由操作系统管理控制器302提供的地址空间,为操作系统提供的地址空间可以属于同一个存储介质或者多个存储介质,可以属于同一种存储介质,也可以属于不同类型的存储介质。当为操作系统提供的地址空间包括多个地址空间,且这多个地址空间属于同一个存储介质时,这多个地址空间可以相邻也可以不相邻。在一种可能的实现方式中,对于控制器302提供的任一地址空间,该控制器302可以建立该地址空间的物理地址与目标虚拟地址之间的映射关系,并将该地址空间对应的目标虚拟地址发送给操作系统,由操作系统管理该地址空间所对应的目标虚拟地址,以实现操作系统管理该地址空间。例如图3中该地址空间包括地址空间A和B,地址空间A和B分别对应目标虚拟地址502400和502496。控制器302还可以通过总线与混合内存301中的易失性存储介质和非易失性存储介质连接,并通过总线向混合内存301下达指令,其中,该总线可以是内存总线或者系统总线。该操作系统还可以请求控制器302退回操作系统管理的地址空间,则控制器302可以基于操作系统的请求,删除待退回的地址空间与目标虚拟地址之间的映射关系,以实现将待退回的地址空间退回至由控制器302管理,由控制器302进行管理。需要说明的是,电子设备300可以包括至少一个控制器302,当电子设备包括多个控制器302时,每个控制器302可以管理混合内存301中的部分存储介质,例如图4所示的本申请实施例提供的一种电子设备的结构示意图,图4中的电子设备300包括2个控制器302,分别为控制器302a和控制器302b,其中,控制器302a用于管理混合内存301中的易失性存储介质,控制器302b用于管理混合内存301中的非易失性存储介质。
需要说明的是,第一虚拟地址区间是控制器302在内存模式下,用于管理混合内存301中非易失性存储介质内的非易失性地址空间所预设的虚拟地址区间。而目标虚拟地址区间是控制器302为了实现将内存模式下的混合内存301中的部分或全部地址空间提供给操作系统,所预设的虚拟地址区间,可以视为一个动态可转换地址空间。当控制器302将混合内存301中全部的地址空间均提供给操作系统时,此时混合内存301相当于工作在应用直接访问模式,从而可以实现由内存模式转换为应用直接访问模式。
该电子设备300还可以包括至少一个CPU 303,用于为应用或操作系统提供指令接口,并处理数据。该控制器302可以部署在CPU 303内,也可以部署在CPU 303外。
需要说明的是,该混合内存301中可以存储有至少一条指令,该至少一条指令由CPU 303加载并执行以实现下述各个方法实施例提供的方法。当然,该电子设备300还可以具有有线或无线网络接口、键盘以及输入输出接口等部件,以便进行输入输出,该电子设备300还可以包括其他用于实现设备功能的部件,在此不做赘述。
在示例性实施例中,还提供了一种计算机可读存储介质,例如包括指令的存储器,上述指令可由终端中的处理器执行以完成下述实施例中的存储介质管理方法。例如,该计算机可读存储介质可以是只读存储器(read-only memory,ROM)、随机存取存储器(randomaccess memory,RAM)、只读光盘(compact disc read-only memory,CD-ROM)、磁带、软盘和光数据存储设备等。
当电子设备上电后,控制器可以初始化混合内存的工作模式,初始化时,控制器可以以内存模式管理混合内存中的易失性存储介质以及非易失性存储介质,也即是初始化时,整个混合内存工作在内存模式下。当然,初始化时控制器也可以以应用直接访问模式管理内存中的易失性存储介质以及非易失性存储介质,需要说明的是,本申请实施例仅以内存模式为例进行说明。在内存模式下,控制器可以建立第一映射表,该第一映射表可以用于记录内存模式下非易失性介质内每个非易失性地址空间与第一虚拟地址之间的映射关系,其中,一个非易失性地址空间与第一虚拟地址之间的映射关系可以是该非易失性地址空间的物理地址、一个第一虚拟地址以及使用标识之间的映射关系,还可以是该非易失性地址空间的物理地址、一个第一虚拟地址、使用标识以及内存模式标识之间的映射关系。其中,该使用标识用于指示该非易失性地址空间是否被使用,如果被使用,该非易失性地址空间被谁使用,用于存储什么样的数据。内存模式标识用于指示混合内存工作在内存模式,且第一虚拟地址区间中的第一虚拟地址对应的都是内存模式下的非易失性地址空间。
初始化时,该控制器还可以生成目标虚拟地址区间,该目标虚拟地址区间包括多个目标虚拟地址,也即是控制器预先设置的后续用于由操作系统直接管理的目标虚拟地址,以便后续建立由操作系统直接管理的地址空间与目标虚拟地址之间的映射关系。由于此时电子设备中混合内存工作在内存模式下,考虑到内存模式下易失性存储介质作为缓存对操作系统不可见,而非易失性存储介质对操作系统可见,该控制器还可以通过映射关系输出接口,将第一映射表中的第一虚拟地址发送该操作系统,以便操作系统可以通过管理控制器发送的第一虚拟地址,来实现管理非易失性存储介质所提供的内存空间。该控制器还可以通过映射关系输出接口,将该目标虚拟地址区间发送给操作系统,以告知操作系统:该目标虚拟地址区间为动态可转换地址空间,后续控制器可以通过该目标虚拟地址空间内的目标虚拟地址为操作系统提供地址空间,以便操作系统管理控制器提供的地址空间。后续当任一目标虚拟地址与地址空间具有映射关系时,说明该地址空间可以被操作系统管理。当操作系统启动时,操作系统可以将控制器发送的第一虚拟地址和目标虚拟地址区间进行存储,以便后续使用。其中,该映射关系输出接口可以是e820接口,还可以技术人员新定义的用于传输和显示控制器发送的虚拟地址。
初始化时,该控制器还可以设置易失性存储介质(也即是缓存)与非易失性存储介质之间的地址映像,地址映像为用于将数据由非易失性存储介质转移至缓存的规则或算法,控制器设置的地址映像可以包括组组相连(set associative)模式、直接(directmapped)模式以及全相连(fully associative)模式中的任一种,其中,组组相连模式也被称为组组连模式。以组组相连模式为例,控制器可以将缓存中的易失性地址空间划分为N个组(set),其中N为大于0的整数,每个组可以包括多个路径(way),每个way对应一个缓存行(cache line),每个way可以是视为一个易失性地址空间,易失性地址空间的长度可以是64字节(byte),也可以是4096byte,例如图3内的组组相连模式,缓存包括set 0和set 1,其中,set 0和set 1均包括way 0-way 03。一个非易失性地址空间的第一虚拟地址包括地址标签(记为t位)、组索引(记为s位)以及缓存行内的偏移量(记为b位),其中,t位用来校验缓存行是否是CPU要访问的目标非易失性地址空间,s位用于决定该非易失性地址空间被映射到缓存中的哪个组,b位用于决定该非易失性地址空间在缓存行中的偏移量,该控制器可以基于该非易失性地址空间的第一虚拟地址中的s位,确定缓存中该非易失性地址空间所对应的组,该非易失性地址空间可以与该组中的任一个way所在的易失性地址空间对应,以便该非易失性地址空间存储的数据可以存储在对应的易失性地址空间,也可以将易失性地址空间内存储的数据写回该非易失性地址空间,也即是,该非易失性地址空间对应缓存中的一个set,该非易失性地址空间中的数据可以存储在该非易失性地址空间对应的set中任一易失性地址空间内,缓存中任一set内的一个易失性地址空间所存储的数据也可以写回非易失性存储介质。
初始化时,控制器还可以设置缓存中way的换出策略,可以是最近最少使用(leastrecently used,LRU)策略,也可以是其他策略,本申请实施例对控制器所设置的换出策略不做具体限定。
需要说明的是,控制器在初始化时所执行的过程,执行一次即可,无需重复执行。并且,电子设备中还可以设置有状态表,该状态表可以存储在易失性存储介质中预留的地址空间内,或者CPU中的静态随机存取存储器(static random-access memory,SRAM)或嵌入式DDR(embedded DDR,eDDR)。该状态表用于存储易失性存储介质中各个易失性地址空间的状态标签,一个易失性地址空间的状态标签用于指示该易失性地址空间的状态,该易失性地址空间的状态标签可以包括地址标签以及状态标识,状态标识用于指示该易失性地址空间当前的状态,该状态标识可以包括无效标识、有效标识、锁标识以及无锁标识,其中,无效标识用于指示该易失性地址空间处于无效状态,该无效状态用于指示易失性地址空间不能作为缓存空间,也即是处于无效状态的易失性地址空间无效。有效标识用于指示该易失性地址空间处于有效状态,该有效状态用于指示该易失性地址空间能够作为缓存空间,也即是处于有效状态的易失性地址空间有效。锁标识用于指示该易失性地址空间已上锁,该易失性地址空间中存储的数据不能被换出。无锁标识用于指示该易失性地址空间未上锁,该易失性地址空间中存储的数据能够被换出。在一种可能的实现方式中,该状态标识可以由2个比特(bit)来组成,其中,这2个比特节中的第一比特用于指示是否有效,第二比特用于指示是否加锁,也即是,第一比特为无效标识或有效标识,第二字节为锁标识或无锁标识。
当初始化完成后,电子设备开始运行,电子设备内的操作系统在进行某一业务时,基于业务需求,操作系统可能需要部分能够被自己直接管理的地址空间,来存储该业务的业务数据,也即是需要工作在应用直接访问模式下的地址空间来存储业务数据,则此时电子设备可以根据业务需求,将混合内存中部分或全部地址空间提供给操作系统,以供操作系统直接管理和使用。电子设备在向操作系统提供地址空间时,可以由电子设备中的操作系统、控制器协同完成,为了进一步说明该过程,参见如图5所示的本申请实施例提供的一种存储介质管理方法的流程图,该方法应用于电子设备,该电子设备包括控制器以及两种不同类型的存储介质,其中该两种不同类型的存储介质可以视为混合内存。
501、操作系统向控制器发送地址空间请求,该地址空间请求用于指示将目标存储介质中的地址空间提供给该操作系统,该目标存储介质为该两种不同类型中与该地址空间请求匹配的存储介质。
该地址空间请求包括该操作系统对待提供的地址空间的属性要求和/或数据量要求,其中,该属性要求为对待提供的地址空间的属性所做的要求,该数据量要求为对待存储数据的数据量的要求,也即是对待提供的地址空间大小的要求。该属性要求以及数据量要求可以由应用的业务需求来决定。
在一种可能的实现方式中,当该操作系统内的任一应用所进行的任一业务的业务需求,对存储数据的性能要求非常高时,或者是该业务需求指示应用需要工作在应用直接访问模式下易失性介质或非易失性存储介质,来存储目标数据量的业务数据时,该操作系统可以根据该业务需求,确定该属性要求以及数据量要求,其中,该属性要求为需要易失性存储介质中的易失性地址空间来存储业务数据,或者需要非易失性存储介质中的非易失性地址空间来存储业务数据,例如,该任一业务为输入输出业务,其业务需求为需要部分易失性地址空间作为高速输入输出(input output,IO)缓存来存储IO数据,则该操作系统可以根据该业务需求,确定属性要求为需要易失性存储介质中的易失性地址空间来存储业务数据。
当该业务需求明确指出需要存储目标数据量的业务数据,且未设置控制器每次提供给操作系统的地址空间的大小时,则地址空间请求中的数据量要求为该目标数据量,该地址空间请求还可以包括目标个数和/或目标个数的目标虚拟地址。其中,控制器每次提供给操作系统的地址空间的大小可以记为预设提供空间大小,该目标个数可以是该操作系统所请求提供的地址空间的个数。该操作系统还可以根据目标数据量以及单个地址空间的大小,确定该目标个数。当该业务需求包括目标个数时,该操作系统还可以直接从业务需求中获取该目标个数。
由于该操作系统内存储有目标虚拟地址区间,则该操作系统还可以查找该目标虚拟地址区间内未被占用的目标虚拟地址,并从未被占用的目标虚拟地址中,筛选出目标个数的目标虚拟地址,添加在地址空间请求中。其中,未被占用的目标虚拟地址为未与地址空间建立映射关系的目标虚拟地址。该操作系统可以筛选出未被占用的目标虚拟地址中最小的目标个数的虚拟地址,添加在地址空间请求中。例如,未被占用的目标虚拟地址包括10001-10005,目标个数为2,则操作系统可以将目标虚拟地址10001和10002添加在地址空间请求中。
当该业务需求明确指出需要存储目标数据量的业务数据,且设置有该预设提供空间大小时,则地址空间请求中的数据量要求为该预设提供空间大小的地址空间所能存储的数据的数据量,此时,该地址空间请求也可以不包括数量要求,操作系统还可以向控制器发送多个地址空间请求,以便控制器基于每个地址空间请求为操作系统提供一次地址空间,使得这多次提供的地址空间所能存储的数据的数据量为目标数据量。
该地址空间请求还可以包括请求标识,该请求标识用于请求提供的地址空间,由操作系统来进行管理。当该业务需求没有明确指出需求多大的地址空间,且没有对待提供的地址空间的属性进行要求时,则该地址空间请求可以仅包括请求标识。
当目标存储介质符合该地址空间请求中的要求时,该目标存储介质与该地址空间请求匹配,该目标存储介质与该地址空间请求匹配,是指该目标存储介质满足该地址分配请求中对待提供的地址空间的要求,例如属性要求和/或数据量要求,在一种可能的实现方式中,当属性要求为需要易失性存储介质中的易失性地址空间来存储业务数据,数据量要求为需要存储目标数据量的业务数据时,若混合内存中易失性存储介质包括能够存储目标数据量的地址空间,则该易失性存储介质与该地址空间请求相匹配。当属性要求为需要非易失性存储介质中的非易失性地址空间来存储业务数据,数据量要求为需要存储目标数据量的业务数据时,若混合内存中非易失性存储介质包括能够存储目标数据量的数据的地址空间,且该非易失性存储介质对应的缓存包括能够存储目标数据量的数据的地址空间,则该非易失性存储介质与该地址空间请求相匹配。在一种可能的实现方式中,该地址空间请求中还可以包括该目标存储介质的类型标识,以便控制器基于该目标存储介质的类型可以确定待提供地址空间的存储介质。
502、控制器接收该地址空间请求。
503、控制器基于该地址空间请求,确定目标存储介质中的至少一个第一地址空间。
该至少一个第一地址空间为工作在内存模式下待提供给操作系统的地址空间,也即是待提供的地址空间。该控制器可以先基于地址空间请求确定目标存储介质,将该目标存储介质作为待提供地址空间的存储介质,再基于地址空间请求确定目标存储介质中的至少一个第一地址空间。
其中,该控制器基于地址空间请求确定目标存储介质的过程可以是:控制器基于地址空间请求中的属性要求和/或数据量要求,确定两种不同类型中与地址空间请求匹配的目标存储介质,或者,该控制器还可以基于地址空间请求中目标存储介质的类型标识,直接确定两种不同类型中与地址空间请求匹配的目标存储介质。
控制器基于地址空间请求确定目标存储介质中的至少一个第一地址空间的过程可以是:当设置有该预设提供空间大小时,则控制器可以从目标存储介质中选取至少一个地址空间,该至少一个地址空间的总大小小于或等于该预设提供空间大小,控制器可以将选取的每个地址空间分别作为一个第一地址空间。
当未设置该预设提供空间大小时,若该地址空间请求包括的数据量要求为目标数据量时,则该控制器可以根据目标数据量以及单个地址空间的大小,确定待提供的地址空间的个数为目标个数,若该地址空间请求包括目标个数,则该控制器可以从该地址空间请求中获取该目标个数,当该控制器获取到该目标个数后,可以从目标存储介质中选取目标个数的地址空间,并将选取的每个地址空间作为一个第一地址空间。
在一种可能的实现方式中,该第一地址空间也可以由基于用户指令来确定,该用户指令中包括该至少一个第一虚拟地址,该控制器可以将用户指令携带的每个第一虚拟地址对应的地址空间确定为一个第一地址空间
在一种可能的实现方式中,控制器可以根据选取条件从目标存储介质中选取目标个数的地址空间。其中,该选取条件可以是优先选取未被占用的地址空间,其次,再选取已占用的地址空间,其中,未被占用的地址空间可以是未与目标虚拟地址建立映射关系的地址空间。当该目标存储介质为易失性存储介质时,可以根据易失性存储介质的分组进行选取,例如选取易失性存储介质中每个组内具有相同way的编号的易失性地址空间,例如,选取每个组中way 0所在的易失性地址空间组成第一地址空间。
需要说明的是本步骤所示的过程也即是控制器基于该地址空间请求,确定目标存储介质中的第一地址空间的过程。
504、控制器锁定或无效该至少一个第一地址空间。
当该目标存储介质为易失性存储介质时,该第一地址空间为易失性地址空间。当该目标存储介质为非易失性存储介质时,该第一地址空间为非易失性地址空间。
对于该至少一个第一地址空间中的任一第一地址空间,当该第一地址空间为易失性地址空间时,控制器可以通过对该第一地址空间进行无效操作,以无效掉该第一地址空间。控制器对任一易失性地址空间进行无效操作,可以是对该易失性地址空间的状态标签进行无效操作。在一种可能的实现方式中,控制器可以向状态控制器发送无效请求,该无效请求携带该易失性地址空间的空间标识,该空间标识可以包括该易失性地址空间所在set的编号以及易失性地址空间所在的way的编号;该状态控制器接收该无效请求,并根据该无效请求携带的空间标识,在状态表中查询该易失性地址空间的状态标签,该状态控制器将该状态标签中存储的该易失性地址空间的有效标识修改为无效标识,以完成对该易失性地址空间所进行的无效操作。其中,该状态控制器用于管理状态表。
例如,图6所示的本申请实施例提供的一种控制器将易失性地址空间提供给操作系统的示意图,在图6中,以易失性存储介质和非易失性存储介质之间的地址映像为组组相连模式为例,且该至少一个第一地址空间包括易失性存储介质内set 0中way 0对应的易失性地址空间和set 1中way 0对应的易失性地址空间,则该控制器对set 0中way 0对应的易失性地址空间和set 1中way 0对应的易失性地址空间均进行无效操作后,状态表内set 0和set 1中way 0对应的状态标识均包括无效标识I。
当该易失性地址空间的状态标识包括无效标识时,说明此时该易失性地址空间处于无效状态,也即是此时该易失性地址空间不能作为缓存空间,则CPU在访问缓存时,不会访问到处于无效状态的易失性地址空间。另外,在控制器对该易失性地址空间进行无效操作之前,可以先触发该易失性地址空间执行写回(write back)操作,将该易失性地址空间存储的数据写回非易失性存储介质,从而可以保证易失性地址空间中存储的数据不会丢失,然后,控制器再对该易失性地址空间进行无效操作。
需要说明的是,当该第一地址空间为易失性地址空间时,控制器可以基于修改独占分享无效(modified exclusive shared invalidate,MESI)协议,来无效掉该易失性地址空间。在一种可能的实现方式,控制器可以基于MESI协议,将第一地址空间的状态标识修改为目标无效标识以及锁标识,其中,该目标无效标识为MESI协议中用于指示无效的标识,以指示该易失性地址空间中的数据无效,并触发该易失性地址空间中的数据写回非易失性存储介质,当该第一地址空间的状态标识包括目标无效标识以及锁标识时,认为此时该易失性地址空间不能作为缓存空间,该易失性地址空间处于无效状态,也即是目标无效标识和锁标识两者共同用于指示无效标识。
当该第一地址空间为非易失性存储空间时,该控制器锁定该第一地址空间,其中,控制器锁定该第一地址空间的过程可以由下述步骤504A-504C来实现。
步骤504A、对于该至少一个第一地址空间中的任一地址空间,当该第一地址空间为非易失性地址空间时,控制器基于该第一地址空间的物理地址,确定该第一地址空间所对应的第二地址空间,该第二地址空间属于目标存储介质的缓存。
该控制器可以根据易失性存储介质和非易失性存储介质之间的地址映像以及该非易失性地址空间的物理地址,确定该非易失性地址空间所对应的易失性地址空间,该非易失性地址空间所对应的易失性地址空间也即是第二地址空间。
当易失性存储介质和非易失性存储介质之间的地址映像为组组相连模式时,控制器基于该非易失性地址空间的物理地址,确定该非易失性地址空间所对应的易失性地址空间的过程可以是:控制器通过查找第一映射表,确定该非易失性地址空间的物理地址所对应的第一虚拟地址;该控制器可以基于该非易失性地址空间的第一虚拟地址中的s位,确定缓存中该非易失性地址空间所对应的组,控制器可以根据目标选择机制,从该组中选择一个way与该非易失性地址空间对应,其中,选择出的way用来存储该非易失性地址空间中已存储的数据,选择出的way也即是与该非易失性地址空间对应的易失性地址空间。
其中,该目标选择机制用于在一个组中选择出一个目标易失性地址空间,该目标易失性地址空间用于存储待提供的非易失性地址空间中已存储的数据,以便控制器将选择出的目标易失性地址空间与待提供的非易失性地址空间对应,该第二地址空间也即是控制器为该第一地址空间选择出的目标易失性地址空间。该目标选择机制可以是将一个组中的目标way作为目标易失性地址空间,该目标way可以是way0。本申请实施例对该目标选择机制的内容不做具体限定。
步骤504B、控制器将该第一地址空间中已存储的数据转移至该第二地址空间。
该控制器可以将第一地址空间中当前存储的数据转移至第二地址空间,从而可以避免第一地址空间中存储的数据不会丢失。
需要说明的是,在执行本步骤504B之前,该控制器还可以触发缓存进行写回操作,来将缓存中该最新的数据写回非易失性存储介质,从而使得非易失性存储介质中当前存储的数据为最新数据,然后再执行本步骤504B,从而使得第二地址空间中存储的数据均为最新数据。在一种可能的实现方式中,若该目标存储介质的缓存中还存在除该第二地址空间以外的其他地址空间与该第一地址空间对应,且该其他地址空间并不是基于目标选择机制选择出的地址空间,则控制器可以触发其他地址空间内存储的数据写回该第一地址空间,再将写回到该第一地址空间的数据转移至该第二地址空间,从而使得第二地址空间中存储的数据均为最新数据。例如,第二地址空间为选择出的set 0中的way0,而第一地址空间当前对应set 0中的way1,则可以将set 0中的way1存储的数据先写回第一地址空间,再将写回到第一地址空间的数据转移至set 0中的way0。
步骤504C、当转移完成后,控制器对该第二地址空间加锁。
其中,控制器对该第二地址空间加锁,可以是对第二地址空间的状态标签加锁。在一种可能的实现方式中,当该第二地址空间为易失性地址空间时,该控制器可以向状态控制器发送加锁请求,该加锁请求携带该易失性地址空间的空间标识,该状态控制器接收该加锁请求,并根据该加锁请求携带的空间标识,在状态表中查询该易失性地址空间的状态标签,该状态控制器将该状态标签中存储的状态标识中无锁标识修改为锁标识,以完成对易失性地址空间所进行的加锁,此时,该易失性地址空间的状态标识包括锁标识,该易失性地址空间处于加锁状态。该易失性地址空间的状态标识还可以包括有效标识,以指示该易失性地址空间能够作为缓存空间,但是该易失性地址空间内存储的数据不能被换出。
对于作为缓存空间的任一易失性地址空间,电子设备中的CPU可以访问该易失性地址空间,以获取CPU需要的数据,当该易失性地址空间中未存储CPU需要的数据时,该CPU会继续访问非易失性存储介质,从非易失性存储介质中获取CPU需要的数据,并将获取的数据存储在缓存中,以便后续使用。而当该易失性地址空间具有锁标识时,说明该易失性地址空间已经被加锁,此时该易失性地址空间中的数据不能被换出,对于CPU而言,该易失性地址空间内有数据,只是存储的数据不能被换出,CPU则不会去访问非易失性存储介质,从而可以避免CPU访问到非易失性存储介质中的第一地址空间,此时该第一地址空间在内存模式下相当于空置,以便后续操作系统直接管理和使用。
例如,图7所示的本申请实施例提供的一种控制器将非易失性地址空间提供给操作系统的示意图,在图7中,以易失性存储介质和非易失性存储介质之间的地址映像为组组相连模式为例,且第一地址空间包括非易失性地址空间C和D,控制器根据非易失性地址空间C和D的物理地址,确定非易失性地址空间C和D的物理地址所对应的第一虚拟地址,控制器再根据非易失性地址空间C和D的第一虚拟地址以及组组相连模式,可以确定非易失性地址空间C和D分别对应易失性存储介质内的set 0和set1,控制器可以选择set 0中的way 0作为用于存储非易失性地址空间C中的数据的目标易失性地址空间,也可以选择set 1中的way 0作为用于非易失性地址空间D中的数据的目标易失性地址空间,控制器将非易失性地址空间C和D中存储的数据,分别转移至set 0中way 0对应的易失性地址空间和set 1中way0对应的易失性地址空间,并将状态表内set 0和set 1中way 0对应的无锁标识均修改为锁标识L。
505、控制器建立该至少一个第一地址空间与目标虚拟地址之间的映射关系,该目标虚拟地址由该操作系统管理。
对于该至少一个第一地址空间中的任一第一地址空间,控制器建立该第一地址空间与目标虚拟地址之间的映射关系的过程可以是:该控制器可以建立该第一地址空间的物理地址、一个目标虚拟地址以及目标标识之间的映射关系,该目标标识用于指示该目标虚拟地址由该操作系统管理。该控制器还可以将建立的该第一地址空间与目标虚拟地址之间的映射关系存储在第二映射表中。当该控制器建立完成该第一地址空间与目标虚拟地址之间的映射关系后,则表明该第一地址空间可以被操作系统管理。其中,第二映射表用于存储目标虚拟地址与地址空间之间的映射关系,该第二映射表中目标虚拟地址由操作系统管理。
当控制器建立完该至少一个第一地址空间与目标虚拟地址之间的关系后,该至少一个地址空间对应至少一个目标虚拟地址,其中,一个第一地址空间对应一个目标虚拟地址,例如图6内至少一个第一地址空间包括set 0中way 0对应的易失性地址空间以及set 1中way 0对应的易失性地址空间,其中,set 0中way 0对应的易失性地址空间对应目标虚拟地址502400,set 1中way 0对应的易失性地址空间对应目标虚拟地址502496。再例如图7中,至少一个第一地址空间包括非易失性地址空间C和非易失性地址空间D,控制器建立非易失性地址空间C和D与目标虚拟地址之间的映射关系,其中,非易失性地址空间C对应目标虚拟地址502400,非易失性地址空间D对应目标虚拟地址502496。
在执行本步骤505之前,该控制器还可以确定用于与该至少一个第一地址空间建立映射关系的至少一个目标虚拟地址。在一种可能的实现方式中,当该控制器接收到的地址空间请求中携带有目标个数的目标虚拟地址时,该控制器可以从该地址空间中获取该目标个数的目标虚拟地址,并建立该第一地址空间与该目标个数的目标虚拟地址之间的关系。
在一种可能的实现方式中,当该控制器接收到的地址空间请求中未携带目标个数的目标虚拟地址时,该控制器可以查找该目标虚拟地址区间内未被占用的目标虚拟地址,并从未被占用的目标虚拟地址中,筛选出目标个数的目标虚拟地址,来与该至少一个第一地址空间建立映射关系。该控制器可以将未被占用的目标虚拟地址中最小的目标个数的虚拟地址,来与该至少一个第一地址空间建立映射关系,以实现顺序映射。
需要说明的是,本步骤505所示的过程也即是控制器将该第一地址空间的物理地址映射至目标虚拟地址的过程。当该控制器将第一地址空间的物理地址映射至目标虚拟地址后,可以表明控制器已经将第一地址空间分配给操作系统,此时控制器不具有对该第一地址空间的管理权。
在一种可能的实现方式中,该控制器可以将具有映射关系的目标虚拟地址发送给操作系统,由操作系统对具有映射关系的目标虚拟地址进行管理,该过程请参见步骤506-508。
506、控制器向操作系统发送请求完成响应,该请求完成响应用于指示控制器已经将第一地址空间提供给操作系统。
该请求完成响应可以包括该至少一个第一地址空间所对应的目标虚拟地址以及成功标识,该成功标识用于指示控制器已经将第一地址空间提供给操作系统。
507、操作系统接收该请求完成响应。
508、该操作系统基于该请求完成响应,对控制器提供的第一地址空间进行管理和使用。
当该操作系统接收到该请求完成响应后,该操作系统可以将该请求完成响应携带的至少一个第一地址空间所对应的目标虚拟地址进行存储,以便后续该操作系统可以对该至少一个第一地址空间所对应的目标虚拟地址进行管理,例如,操作系统可以基于至少一个第一地址空间所对应的目标虚拟地址,将该至少一个第一地址空间作为高速IO缓存。
操作系统可以将控制器提供的目标虚拟地址呈现给操作系统的内核,内核再将操作系统呈现的目标虚拟地址分配给特定的应用,由特定的应用来通过目标虚拟地址来使用该第一地址空间。该特定的应用可以是向操作系统提出属性要求的应用。特定的应用使用第一地址空间的过程可以是:当该第一地址空间为非易失性地址空间时,特定的应用可以基于第一地址空间对应的目标虚拟地址,直接访问第一地址空间,也可以基于该第一地址空间对应的目标虚拟地址,并通过内核间接访问该第一地址空间。当该第一地址空间为易失性地址空间时,特定的应用可以基于第一地址空间对应的目标虚拟地址,并通过内核间接访问第一地址空间。其中特定的应用基于第一地址空间对应的目标虚拟地址,并通过内核间接访问第一地址空间,也即是由内核代替应用来访问第一地址空间。
本申请实施例提供的方法,通过控制器接收地址空间请求,并将地址空间请求所请求的第一地址空间提供给操作系统,从而使得第一地址空间直接由操作系统管理,而无须人工配置或重启电子设备,提高了管理存储介质的灵活性。并且,当第一地址空间为易失性地址空间时,通过无效第一地址空间,可以触发第一地址空间存储的数据写回非易失性存储介质,以避免第一地址空间存储的数据丢失。并且,当第一地址空间为非易失性地址空间时,通过将第一地址空间存储的数据转移至易失性存储介质,以避免第一地址空间存储的数据丢失。并且,控制器将第一地址空间提供给操作系统,相当于该第一地址空间工作在应用直接访问模式,从而可以使得应用直接访问模式和内存模式可以同时存在于电子设备中,能够在电子设备中同时保持这两种工作模式各自的优势。并且控制器将第一地址空间提供给操作系统后,该第一地址空间相当于工作在应用直接访问模式下,使得CPU可以直接访问该第一地址空间,而无需先访问缓存,从而CPU每一次访问该第一地址空间的访问时延稳定且可以预期。
该电子设备还可以将操作系统管理的地址空间中部分或全部地址空间,退回至由控制器管理,这个过程也可以由电子设备中的操作系统、控制器以及第二控制器协同完成,为了进一步说明该过程,参见如图8所示的本申请实施例提供的一种存储介质管理方法的流程图,该方法应用于电子设备,该电子设备包括控制器以及两种不同类型的存储介质,其中该两种不同类型的存储介质可以视混合内存。
801、操作系统向控制器发送退回请求,该退回请求用于指示将该操作系统管理的第一目标虚拟地址对应的地址空间退回至由该控制器管理。
该第一目标虚拟地址为待退回的地址空间所对应的目标虚拟地址,操作系统请求退回的地址空间可以是该操作系统管理的部分或全部地址空间,在此,本申请实施例仅以请求退回对第一目标虚拟地址对应的地址空间的管理权为例进行说明。
当该操作系统内的任一应用所进行的任一业务完成,该操作系统不再使用该第一目标虚拟地址对应的地址空间存储该业务的业务数据时,或者是操作系统不频繁使用第一目标虚拟地址所对应的地址空间时,则该操作系统可以向控制器发送该退回请求,以请求退回对该第一目标虚拟地址对应的地址空间的管理权。
802、控制器接收该退回请求。
803、控制器基于目标虚拟地址与地址空间的物理地址之间的映射关系,以及该退回请求,确定该第一目标虚拟地址对应的目标物理地址。
该目标物理地址为待退回的地址空间的物理地址。该控制器可以从退回请求中获取该第一目标虚拟地址,并从第二映射表中确定该第一目标虚拟地址对应的目标物理地址。
804、控制器对该目标物理地址对应的第三地址空间进行去锁定处理或去无效处理。
该第三地址空间为该目标物理地址对应的地址空间,也即是本次请求待退回的地址空间。
当该第三地址空间为易失性地址空间时,该控制器对该第三地址空间进行去无效处理,其中,控制器对该第三地址空间进行去无效处理的过程也即是该控制器对该第三地址空间进行去无效操作。在一种可能的实现方式中,该控制器对易失性地址空间进行去无效操作可以是对该易失性地址空间的状态标签进行去无效操作。在一种可能的实现方式中,控制器可以向状态控制器发送去无效请求,该去无效请求携带该易失性地址空间的空间标识,该状态控制器接收该去无效请求,并根据该去无效请求携带的空间标识,在状态表中查询该易失性地址空间的状态标签,将该易失性地址空间的无效标识修改有效标识,则此时该易失性地址空间可以作为缓存空间来使用。
当无效标识由目标无效标识和锁标识来共同指示时,控制器可以向状态控制器发送去锁请求,该去锁请求携带该易失性地址空间的空间标识,该状态控制器接收该去锁请求,并根据该去锁请求携带的空间标识,在状态表中查询该易失性地址空间的状态标签,并将该状态标签中锁标识修改无锁标识,从而使得该易失性地址空间的状态标签仅包括目标无效标识,而目标无效标识仅能指示该易失性地址空间内的数据无效,并不能指示该易失性地址空间不能作为缓存空间,从而达到对易失性地址空间进行去无效目的。
当该第三地址空间为非易失性存储地址空间时,控制器对该第三地址空间进行去锁定处理,其中,该控制器对第三地址空间进行去锁定处理的过程可以由下述步骤8041-8042来实现。
步骤8041、当该第三地址空间为非易失性地址空间时,该控制器基于该第三地址空间的物理地址,确定该第三地址空间所对应的第四地址空间,该第四地址空间属于该第三地址空间所在的存储介质的缓存。
该控制器可以根据易失性存储介质和非易失性内之间的地址映像以及该第三地址空间的物理地址,确定该第三地址空间所在的存储介质的缓存中该第三地址空间对应的第四地址空间。其中,控制器根据易失性存储介质和非易失性存储介质之间的地址映像以及该非易失性地址空间的物理地址,确定该非易失性地址空间所对应的易失性地址空间的过程在步骤504A中有相关描述,在此,本申请实施例对本步骤8041不做赘述。
步骤8042、该控制器对该第四地址空间去锁。
控制器对任一易失性地址空间去锁的过程可以是:控制器可以向状态控制器发送去锁请求,该去锁请求携带该易失性地址空间的空间标识,该状态控制器接收该去锁请求,并根据该去锁请求携带的空间标识,在状态表中查询该易失性地址空间的状态标签,该状态控制器将该状态标签中的锁标识修改为无锁标识,以完成去锁。当该易失性地址空间去锁完成后,该易失性地址空间中的数据可以被换出,也可以将易失性地址空间数据写回该易失性地址空间对应的非易失性地址空间,从而可以解除对该易失性地址空间的锁定。
805、控制器删除该第三地址空间与该第一目标虚拟地址之间的映射关系。
该控制器可以删除第二映射表中该第三地址空间与该第一目标虚拟地址之间的映射关系,以表明该第三地址空间已退回至由控制器管理,则此时该第三地址空间可以由控制器管理而不能由操作系统管理。
806、控制器向操作系统发送退回完成响应,该退回完成响应用于指示已将第一目标虚拟地址对应的地址空间退回至由控制器管理。
807、操作系统接收该退回完成响应。
当该操作系统接收到该退回完成响应时,可以删除存储的第一目标虚拟地址,从而使得操作系统对第一目标虚拟地址对应的第三地址空间不可见,以避免后续操作系统对该第三地址空间进行管理和使用。
本申请实施例所提供的方法,通过控制器接收退回请求,并基于退回请求,删除目标物理地址与第一目标虚拟地址之间的映射关系,从而将目标物理地址所对应的地址空间退回至由控制器管理,而无须人工配置或重启电子设备,提高了管理存储介质的灵活性。
图9是本申请实施例提供的一种存储介质管理装置的结构示意图,所述装置900包括:
接收模块901,用于接收地址空间请求,所述地址空间请求用于指示将目标存储介质中的地址空间提供给操作系统,所述目标存储介质为两种不同类型中与所述地址空间请求匹配的存储介质;
确定模块902,用于基于所述地址空间请求,确定所述目标存储介质中的第一地址空间;
映射模块903,用于将所述第一地址空间的物理地址映射至目标虚拟地址,所述目标虚拟地址由所述操作系统管理。
可选地,所述装置900还包括:
锁定模块904,用于锁定或无效所述第一地址空间。
可选地,所述锁定模块904用于:
当所述第一地址空间为易失性地址空间时,对所述第一地址空间进行无效操作。
可选地,所述锁定模块904用于:
当所述第一地址空间为非易失性地址空间时,基于所述第一地址空间的物理地址,确定所述第一地址空间所对应的第二地址空间,所述第二地址空间属于所述目标存储介质的缓存;
将所述第一地址空间中已存储的数据转移至所述第二地址空间;
当转移完成后,对所述第二地址空间加锁。
可选地,所述映射模块903用于:
建立所述第一地址空间的物理地址、所述目标虚拟地址、目标标识之间的映射关系,所述目标标识用于指示所述目标虚拟地址由所述操作系统管理。
可选地,所述装置900还包括:
生成模块905,用于生成目标虚拟地址区间,所述目标虚拟地址区间包括多个目标虚拟地址。
可选地,所述装置900还包括删除模块906:
所述接收模块901,还用于接收退回请求,所述退回请求用于指示将所述操作系统管理的第一目标虚拟地址对应的地址空间退回至由所述控制器管理,所述地址空间位于所述不同类型的存储介质中至少一种类型的存储介质;
所述确定模块902,还用于基于目标虚拟地址与地址空间的物理地址之间的映射关系,以及所述退回请求,确定所述第一目标虚拟地址对应的目标物理地址;
所述删除模块906,用于删除所述目标物理地址与所述第一目标虚拟地址之间的映射关系。
可选地,所述装置900还包括:
去锁模块907,用于对所述目标物理地址对应的第三地址空间进行去锁定处理或去无效处理。
可选地,所述去锁模块907用于:
当所述第三地址空间为易失性地址空间时,对所述第三地址空间进行去无效操作。
可选地,所述去锁模块907用于:
当所述第三地址空间为非易失性地址空间时,基于所述第三地址空间的物理地址,确定所述第三地址空间所对应的第四地址空间,所述第四地址空间属于所述第三地址空间所在的存储介质的缓存;
对所述第四地址空间去锁。
可选地,所述地址空间请求包括所述操作系统对待提供的地址空间的属性要求和/或数据量要求;当所述目标存储介质符合所述地址空间请求中的要求时,所述目标存储介质与所述地址空间请求匹配。
该装置通过控制器接收地址空间请求,并将地址空间请求所请求的第一地址空间提供给操作系统,从而使得第一地址空间直接由操作系统管理,而无须人工配置或重启电子设备,提高了管理存储介质的灵活性。
图10是本申请实施例提供的一种存储介质管理装置的结构示意图,所述装置1000包括:
接收模块1001,用于接收退回请求,所述退回请求用于指示将所述操作系统管理的第一目标虚拟地址对应的地址空间退回至由所述控制器管理,所述地址空间位于所述不同类型的存储介质中至少一种类型的存储介质;
确定模块1002,用于基于目标虚拟地址与地址空间的物理地址之间的映射关系,以及所述退回请求,确定第一目标虚拟地址对应的目标物理地址;
删除模块1003,用于删除所述目标物理地址与所述第一目标虚拟地址之间的映射关系。
可选地,所述控制模块还包括:
去锁模块置1004,用于对所述目标物理地址对应的第三地址空间进行去锁定处理或去无效处理。
可选地,所述去锁模块1004用于:
当所述第三地址空间为易失性地址空间时,对所述第三地址空间进行去无效操作。
在一种可能的实现方式中,所述去锁模块1004用于:
当所述第三地址空间为非易失性地址空间时,基于所述第三地址空间的物理地址,确定所述第三地址空间所对应的第四地址空间,所述第四地址空间属于所述第三地址空间所在的存储介质的缓存;
对所述第四地址空间去锁。
该装置通过控制器接收退回请求,并基于退回请求,删除目标物理地址与第一目标虚拟地址之间的映射关系,从而将目标物理地址所对应的地址空间退回至由控制器管理,而无须人工配置或重启电子设备,提高了管理存储介质的灵活性。
上述所有可选技术方案,可以采用任意结合形成本公开的可选实施例,在此不再一一赘述。
需要说明的是:上述实施例提供的存储介质管理装置在管理存储介质时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的存储介质管理方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本申请实施例的可选实施例,并不用以限制本申请实施例,凡在本申请实施例的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请实施例的保护范围之内。
Claims (10)
1.一种存储介质管理方法,其特征在于,应用于服务器,所述服务器包括控制器以及两种不同类型的存储介质,所述方法包括:
所述内存控制器接收操作系统发送的地址空间请求;
所述内存控制器基于接收到所述地址空间请求,确定所述目标存储介质中的第一地址空间;
所述内存控制器将所述第一地址空间的物理地址映射至目标虚拟地址,所述目标虚拟地址由所述操作系统管理。
2.根据权利要求1所述的方法,其特征在于,所述控制器将所述第一地址空间的物理地址映射至目标虚拟地址之前,所述方法还包括:
所述控制器锁定或无效所述第一地址空间。
3.根据权利要求2所述的方法,其特征在于,所述控制器无效所述第一地址空间包括:
当所述第一地址空间为易失性地址空间时,对所述第一地址空间进行无效操作。
4.根据权利要求2所述的方法,其特征在于,所述控制器锁定所述第一地址空间包括:
当所述第一地址空间为非易失性地址空间时,基于所述第一地址空间的物理地址,确定所述第一地址空间所对应的第二地址空间,所述第二地址空间属于所述目标存储介质的缓存;
将所述第一地址空间中已存储的数据转移至所述第二地址空间;
当转移完成后,对所述第二地址空间加锁。
5.根据权利要求1所述的方法,其特征在于,所述控制器将所述第一地址空间的物理地址映射至目标虚拟地址包括:
建立所述第一地址空间的物理地址、所述目标虚拟地址、目标标识之间的映射关系,所述目标标识用于指示所述目标虚拟地址由所述操作系统管理。
6.根据权利要求1-5任一项权利要求所述的方法,其特征在于,所述控制器接收地址空间请求之前,所述方法还包括:
所述控制器生成目标虚拟地址区间,所述目标虚拟地址区间包括多个目标虚拟地址。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述控制器接收退回请求,所述退回请求用于指示将所述操作系统管理的第一目标虚拟地址对应的地址空间退回至由所述控制器管理,所述地址空间位于所述不同类型的存储介质中至少一种类型的存储介质;
所述控制器基于目标虚拟地址与地址空间的物理地址之间的映射关系,以及所述退回请求,确定所述第一目标虚拟地址对应的目标物理地址;
所述控制器删除所述目标物理地址与所述第一目标虚拟地址之间的映射关系。
8.根据权利要求7所述的方法,其特征在于,所述控制器删除所述目标物理地址与所述第一目标虚拟地址之间的映射关系之前,所述方法还包括:
所述控制器对所述目标物理地址对应的第三地址空间进行去锁定处理或去无效处理。
9.根据权利要求1所述的方法,其特征在于,所述两种不同类型的存储介质为混合内存,所述内存控制器中具有虚拟地址区间,所述虚拟地址区间是所述内存控制器在内存模式下,用于管理所述混合内存中的非易失性存储介质内的非易失性地址空间所预设的虚拟地址区间。
10.一种服务器,其特征在于,所述服务器包括处理器和存储器,所述存储器中存储有至少一条指令,所述指令由所述处理器加载并执行以实现如权利要求1至权利要求9任一项所述的存储介质管理方法所执行的操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311232196.2A CN117472795A (zh) | 2020-05-29 | 2020-05-29 | 存储介质管理方法及服务器 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311232196.2A CN117472795A (zh) | 2020-05-29 | 2020-05-29 | 存储介质管理方法及服务器 |
CN202010477603.6A CN113742253B (zh) | 2020-05-29 | 2020-05-29 | 存储介质管理方法、装置、设备以及计算机可读存储介质 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010477603.6A Division CN113742253B (zh) | 2020-05-29 | 2020-05-29 | 存储介质管理方法、装置、设备以及计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117472795A true CN117472795A (zh) | 2024-01-30 |
Family
ID=78724821
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010477603.6A Active CN113742253B (zh) | 2020-05-29 | 2020-05-29 | 存储介质管理方法、装置、设备以及计算机可读存储介质 |
CN202311232196.2A Pending CN117472795A (zh) | 2020-05-29 | 2020-05-29 | 存储介质管理方法及服务器 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010477603.6A Active CN113742253B (zh) | 2020-05-29 | 2020-05-29 | 存储介质管理方法、装置、设备以及计算机可读存储介质 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20230088344A1 (zh) |
EP (1) | EP4137951A4 (zh) |
CN (2) | CN113742253B (zh) |
WO (1) | WO2021238594A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US12038836B2 (en) * | 2020-10-13 | 2024-07-16 | Dell Products L.P. | Dynamic memory allocation based on workload characterization and optimization |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3581291A (en) * | 1968-10-31 | 1971-05-25 | Hitachi Ltd | Memory control system in multiprocessing system |
US4225941A (en) * | 1978-10-30 | 1980-09-30 | Trw Inc. | Controller for bubble memories |
US7827381B2 (en) * | 2006-06-05 | 2010-11-02 | Oracle America, Inc. | Hybrid techniques for memory virtualization in a computer system |
CN101246460A (zh) * | 2008-03-10 | 2008-08-20 | 华为技术有限公司 | 缓存数据写入系统及方法和缓存数据读取系统及方法 |
CN101907978B (zh) * | 2010-07-27 | 2011-12-07 | 浙江大学 | 基于固态硬盘和磁性硬盘的混合存储系统及存储方法 |
CN102521163B (zh) * | 2011-12-08 | 2014-12-10 | 华为技术有限公司 | 目录替换方法及设备 |
CN103853665B (zh) * | 2012-12-03 | 2017-06-06 | 华为技术有限公司 | 存储空间分配方法及设备 |
CN103870333B (zh) * | 2012-12-17 | 2017-08-29 | 华为技术有限公司 | 一种全局内存共享方法、装置和一种通信系统 |
CN103226499B (zh) * | 2013-04-22 | 2016-02-24 | 华为技术有限公司 | 一种恢复内部存储器中的异常数据的方法及装置 |
US10248328B2 (en) * | 2013-11-07 | 2019-04-02 | Netlist, Inc. | Direct data move between DRAM and storage on a memory module |
CN103761988B (zh) * | 2013-12-27 | 2018-01-16 | 华为技术有限公司 | 固态硬盘及数据移动方法 |
CN105938447B (zh) * | 2015-03-06 | 2018-12-14 | 华为技术有限公司 | 数据备份装置及方法 |
US9740438B2 (en) * | 2015-08-20 | 2017-08-22 | Sap Se | Allocating memory on multiple types of main memory technologies from software application layer |
US10567538B2 (en) * | 2016-03-08 | 2020-02-18 | Huawei Technologies Co., Ltd | Distributed hierarchical cache management system and method |
JP2018049381A (ja) * | 2016-09-20 | 2018-03-29 | 東芝メモリ株式会社 | メモリ制御回路、メモリシステムおよびプロセッサシステム |
US10176108B2 (en) * | 2016-09-30 | 2019-01-08 | Intel Corporation | Accessing memory coupled to a target node from an initiator node |
CN108804350B (zh) * | 2017-04-27 | 2020-02-21 | 华为技术有限公司 | 一种内存访问方法及计算机系统 |
US20190042445A1 (en) * | 2017-08-07 | 2019-02-07 | Intel Corporation | Technologies for caching persistent two-level memory data |
CN108762671A (zh) * | 2018-05-23 | 2018-11-06 | 中国人民解放军陆军工程大学 | 基于pcm和dram的混合内存系统及其管理方法 |
CN116974458A (zh) * | 2022-04-22 | 2023-10-31 | 戴尔产品有限公司 | 用于处理数据的方法、电子设备和计算机程序产品 |
-
2020
- 2020-05-29 CN CN202010477603.6A patent/CN113742253B/zh active Active
- 2020-05-29 CN CN202311232196.2A patent/CN117472795A/zh active Pending
-
2021
- 2021-04-30 EP EP21812976.5A patent/EP4137951A4/en not_active Withdrawn
- 2021-04-30 WO PCT/CN2021/091768 patent/WO2021238594A1/zh unknown
-
2022
- 2022-11-28 US US17/994,474 patent/US20230088344A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
CN113742253A (zh) | 2021-12-03 |
EP4137951A1 (en) | 2023-02-22 |
CN113742253B (zh) | 2023-09-01 |
US20230088344A1 (en) | 2023-03-23 |
EP4137951A4 (en) | 2023-10-04 |
WO2021238594A1 (zh) | 2021-12-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US12038834B2 (en) | Memory system and method for controlling nonvolatile memory during command processing without replacing defective blocks | |
US12072796B2 (en) | Computing system and method for controlling storage device | |
US11954043B2 (en) | Memory system and method for controlling nonvolatile memory | |
US11797436B2 (en) | Memory system and method for controlling nonvolatile memory | |
JP6982468B2 (ja) | メモリシステムおよび制御方法 | |
JP3264319B2 (ja) | バスブリッジ | |
KR20120068454A (ko) | 원격 페이지 폴트 처리 장치 및 그 방법 | |
US9208088B2 (en) | Shared virtual memory management apparatus for providing cache-coherence | |
CN110928803B (zh) | 一种内存管理方法及装置 | |
US20230088344A1 (en) | Storage medium management method and apparatus, device, and computer-readable storage medium | |
US11875152B2 (en) | Methods and systems for optimizing file system usage | |
WO2024082702A1 (zh) | 数据处理方法、装置、芯片以及计算机可读存储介质 | |
WO2023241655A1 (zh) | 数据处理方法、装置、电子设备以及计算机可读存储介质 | |
JP7204020B2 (ja) | 制御方法 | |
CN115357593A (zh) | 数据传输方法及装置、存储介质及电子设备 | |
JP2023021450A (ja) | メモリシステム | |
JP2023166013A (ja) | メモリシステムおよび制御方法 | |
JP2022121655A (ja) | メモリシステムおよび制御方法 | |
JP2022019787A (ja) | メモリシステムおよび制御方法 | |
CN117271107A (zh) | 数据处理方法、装置、电子设备以及计算机可读存储介质 | |
CN118796766A (zh) | 适用于微内核操作系统的文件映射方法、装置及电子设备 | |
JPH11219311A (ja) | ファイルアクセス方法 |
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 |