CN105260336A - 可字节寻址的非易失性存储器热插拔方法及装置 - Google Patents
可字节寻址的非易失性存储器热插拔方法及装置 Download PDFInfo
- Publication number
- CN105260336A CN105260336A CN201510790111.1A CN201510790111A CN105260336A CN 105260336 A CN105260336 A CN 105260336A CN 201510790111 A CN201510790111 A CN 201510790111A CN 105260336 A CN105260336 A CN 105260336A
- Authority
- CN
- China
- Prior art keywords
- space
- directorial area
- module
- block device
- computer system
- 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.)
- Granted
Links
Classifications
-
- 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/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4027—Coupling between buses using bus bridges
- G06F13/404—Coupling between buses using bus bridges with address mapping
-
- 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/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4063—Device-to-bus coupling
- G06F13/4068—Electrical coupling
- G06F13/4081—Live connection to bus, e.g. hot-plugging
-
- 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/10—Program control for peripheral devices
- G06F13/102—Program control for peripheral devices where the programme performs an interfacing function, e.g. device driver
-
- 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
- G06F13/36—Handling requests for interconnection or transfer for access to common bus or bus system
-
- 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/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
Abstract
本发明公开了一种可字节寻址的非易失性存储器的热插拔方法,包括所述存储器的热添加和热移除;热添加包括物理添加和逻辑添加,热移除包括逻辑移除和物理移除;物理添加用于将所述存储器由不带电的裸设备转化为操作系统可管理的块设备;逻辑添加用于将所述存储器从操作系统可管理的块设备转换为可映射虚拟地址的内存设备;逻辑移除用于将可映射虚拟地址的内存设备转换为操作系统可管理的块设备;物理移除用于将所述存储器从操作系统可管理的块设备转化为不带电的裸设备。本发明提供的方法及装置适合在各种体系架构的计算机系统上对可字节寻址的非易失性存储器资源进行调度和扩展,具有良好的市场前景和应用价值。
Description
技术领域
本发明涉及PersistentMemory的热插拔,具体涉及PersistentMemory热添加和热移除的方法并提供一种热插拔的装置,属于计算机系统结构领域。
背景技术
NV_register:非易失性寄存器
STTRAM:SpinTorqueTransferRandomAccessMemory,旋转转矩传递随机存取存储器
PCM:PhaseChangeMemory相变存储器
PersistentMemory:非易失性存储器
RRAM:ResistiveRandomAccessMemory,阻变式存储器
DRAM:DynamicRandomAccessMemory,动态随机存储器,即现阶段广泛使用的内存,其特点是断电电后信息丢失,理论上读写寿命不受限制。
DIMM:DualinlineMemoryModule,双列直插式内存模块,是DRAM在主板上的插槽。
PM:PersistentMemory,非易失性内存或持久性内存,STTRAM,PCM,RRAM都属于PM,其特点是断电后信息不丢失,可字节寻找;但读写次数受限制,并且读写不均衡,根据材料的不同,PM写耗费时间大概是其读耗费时间的4到10倍,PM读的时间比DRAM慢1到4倍。
sys文件系统:用于查看和设定基于某种体系结构计算机系统的操作系统内核的参数,并且能够作为统一驱动模型的管理文件系统。
ACPI:AdvancedconfigurationandPowerInterfaceSpecification,高级配置与电源接口规范
BIOS:BasicInputOutputSystem,基本输入输出系统
SRAT:SystemResourceAffinityTable,是ACPI规范中的一种描述内存资源属性的表。
热插拔技术是计算机系统结构领域系统软件技术方向的热点课题,热插拔技术在不断电的情况下对计算机系统的各种器件进行插拔,现有技术已经实现了中央处理器的热插拔,内存的热插拔以及绝大部分输入输出设备的热插拔。当前,热插拔技术为调整数据中心服务器的资源利用率,虚拟机迁移,节约能耗等诸多方面提供了技术支撑,所以说,高效的热插拔技术对于数据中心的服务器系统的容灾性,扩展性和灵活性有重要价值。
PersistentMemory在近期发展迅速,因其可字节寻找,非易失,能耗低,密度高的优点逐渐成为DRAM的重要补充或替代,但其也存在读写不对称、读写速度较DRAM慢、寿命有限、一致性等问题制约着其发展,随着技术的进步,所述一些问题取得了一些进展。但是,如何对PersistentMemory进行热插拔的问题还没有完备可靠的方案,本发明主要针对PersistentMemory的热插拔问题,提出了热添加和热移除的方法,并提供了一种热插拔的装置,进一步对热插拔问题进行了阐述。
发明内容
本发明的目的在于针对现有技术中的不足,提供一种易于使用的PesistentMemory的热插拔方法及装置,,以解决上述问题。
本发明所解决的技术问题可以采用以下技术方案来实现:
一种可字节寻址的非易失性存储器的热插拔方法,包括可字节寻址的非易失性存储器的热添加和热移除;所述存储器的热添加包括物理添加和逻辑添加,所述存储器的热移除包括逻辑移除和物理移除;总体步骤如下:
1)物理添加,其用于将可字节寻址的非易失性存储器由不带电的裸设备转化为操作系统可管理的块设备;
2)逻辑添加,其用于将可字节寻址的非易失性存储器从操作系统可管理的块设备转换为可映射虚拟地址的内存设备;
3)逻辑移除,其用于将可映射虚拟地址的内存设备转换为操作系统可管理的块设备;
4)物理移除,其用于将可字节寻址的非易失性存储器从操作系统可管理的块设备转化为不带电的裸设备。
进一步的,所述步骤1)中物理添加的具体步骤如下:
步骤A1:在基于某种体系架构的计算机系统固件中完成对可字节寻址的非易失性存储器可热插拔属性及地址范围的描述;
步骤A2:BIOS对PM上电检测,使其置为可读写状态;
步骤A3:将标志“5aa5a55a”写入地址为PM_address的空间,所述PM_address的值由某个非易失性寄存器NV_register传递,PM_address的更新方式为:
(PM_address+8)mod1M→NV_register,NV_register→PM_address;符号→表示传递,符号mod表示取模运算,符号1M表示地址空间的大小,符号→、符号mod、符号1M是本领域专业技术人员的通用符号;
步骤A4:将PM置于D3off状态,延时与PM物理属性相适应的时间后重新将PM置于D0状态,即刻检测步骤A3中PM_address处的标识“5aa5a55a”是否存在,若存在,继续步骤A5,否则,宕机;所述的D3off最主要的特点是PM设备完全断电的状态,所述的D0最主要的特点是PM设备正常供电工作的状态,所述的D3off和D0是本领域的专业技术人员都熟悉的对设备电源状态的描述符;
步骤A5:在在基于某种体系架构的计算机系统的操作系统中,增加探测PM的功能,在所述PM上增加内存节点PM_node,并将所述的PM_node划分为三个管理区,三个管理区的大小按照用户预先设定的阈值定制;若用户定制为首次添加PM,则第一管理区和第二管理区采用buddy方式管理物理空间,第三管理区使用双端队列管理物理空间,若用户定制为非首次添加PM,则将所添加的PM全部空间在第三管理区的双端队列管理;
步骤A6:从步骤A5所述的PM_node的第三管理区的队列头分配空间,同时锁定所述空间,并将其按照块设备的管理方法纳入到某种体系架构计算机系统的操作系统管理中;
步骤A7:在基于某种体系架构的计算机系统的操作系统的用户层更新PM块设备添加的信息,并将所述的添加信息按照更新系统文件的方式显式的呈现给用户。
进一步的,所述步骤2)中逻辑添加的具体步骤如下:
步骤A8:将步骤A6中按照块设备管理的PM的部分空间或全部空间从某种体系架构的计算机系统的操作系统的块设备管理中分离,所述操作系统的第三管理区将所述PM的部分空间或全部空间纳入到自己的管理体系中;
步骤A9:按照步骤A8的结果和预先设定的阈值调整所述PM_node中三个管理区的大小,使其保持合理的比例;
步骤A10:在基于某种体系架构计算机系统的操作系统的用户层更新PM内存空间添加的信息,并将所述的添加信息按照更新系统文件的方式显式的呈现给用户。
进一步的,所述步骤3)中逻辑移除的具体步骤如下:
步骤B1:在基于某种体系架构计算机系统的操作系统的内核层,在所述PM_node上映射页表的每个进程产生一个PM_page_forbid消息,进而内核层分配新页给所述进程,将数据从老页拷贝到新页,直到所有进程迁移完成;
步骤B2:隔离并锁定步骤B1所述的老页占用的空间,并将这些空间移除到步骤A5所述的某种体系架构计算机系统的操作系统的第三管理区队列的末端;
步骤B3:在基于某种体系架构的计算机系统的操作系统的用户层更新PM内存空间移除的信息,并将所述的移除信息按照更新系统文件的方式显式的呈现给用户;
步骤B4:将步骤B2中移除到某种体系架构计算机系统的操作系统的第三管理区队列的末端的PM空间按照块设备的方式管理;
步骤B5:在基于某种体系架构的计算机系统的操作系统的用户层更新PM块设备添加的信息,并将所述的添加信息按照更新系统文件的方式显式的呈现给用户。
进一步的,所述步骤4)中物理移除的具体步骤如下:
步骤B6:当产生PM物理移除的事件PM_remove后,在基于某种体系架构的计算机系统的操作系统内核层解除以块设备方式管理的PM空间;
步骤B7:在基于某种体系架构的计算机系统的操作系统的用户层更新PM块设备移除的信息,并将所述的移除信息按照更新系统文件的方式显式的呈现给用户;
步骤B8:将步骤B7中移除块设备管理信息的PM置于D30ff状态。
一种非易失性存储器的热插拔装置,包括
PM页迁移模块,用于PM逻辑移除时,用于控制进程从请求移除的PM页面上迁移;
PM资源属性描述模块,用于向基于某种体系架构的计算机提供关于内存模式的PM三种主要信息,一种是PM节点与其临近节点的所属关系以及所述,第二种是PM节点可热添加和可热移除标志,第三种是所述PM节点的基地址与所述PM节点预留区域的地址范围,所述的预留区域从所述PM内存节点的基地址开始的一段较小区域,这个区域的大小根据基于某种体系架构的计算机可配置;
PM识别检验模块,用于从所有的DIMM插槽上辨别内存模式的PM,即能够将DIMM插槽上的DRAM和PM区别开来,进而对所述PM进行电源管理,即在物理添加时,控制给所述PM按照既定的规程加电,在物理移除时,控制给所述PM按照既定的规程断电;
内存模式的PM管理模块,用于建立以内存的视角管理PM的方法;
块设备模式的PM管理模块,用于建立以块设备的视角管理PM的方法;
sysfs文件系统更新模块,用于将块设备模式管理的PM空间和内存模式管模的PM空间添加和移除的信息更新到统一驱动模型的相应组件,并将更新的结果显式的展现在基于某种体系架构的计算机系统的操作系统的用户层。
进一步的,所述内存模式的PM管理模块的原理如下:
C1:当基于某种体系架构的计算机系统首次启动时,所述模块通过BIOS中断的方式获得PM空间的页帧总量及其保留区域的大小和范围;
C2:所述模块将所述PM节点区分为第一管理区,第二管理区,第三管理区,第一管理区位于PM资源属性描述模块中描述的PM节点预留区域之后,第二管理区位于第一管理区之后,第三管理区位于第二管理区之后;
C3:所述模块的三个所述管理区的物理地址以PM节点预留区域末端为基地址依次递增,并且可以方便计算每个管理区的起始物理地址及大小;
C4:所述模块的第一管理区以小粒度的页帧管理,第二管理区以中粒度的页帧管理,第三管理区以大粒度的页帧管理,所述的小,中,大的具体数量由基于某种体系架构的计算机系统的实际情况进行配置,同时支持用户根据应用的需求进行定制;
C5:所述模块的第一管理区和第二管理区以改进的buddy方式组织管理,第三管理区以双端队列管理;所述的改进的buddy方式主要是指第一管理区最大块链的大小和第二管理区的最小块链大小相同,第二管理区的最大块链的大小和第三管理区的所有块的大小相同;
C6:所述模块的所述三个管理区的大小根据预先设定的阈值设置,当基于某种体系架构的计算机系统在运行过程中,大小偏离预先设定的阈值时,第一管理区和第二管理区之间,第二管理区和第三管理区之间由守护进程控制进行页帧数量的增加或减少;
C7:当逻辑删除PM时,所述模块将所述第三管理区的空间移除到块设备模式的PM管理模块;
C8:当物理添加PM时,所述模块将整条PM的空间初始化到所述第三管理区队列管理中。
进一步的,所述块设备模式的PM管理模块的原理如下:
D1:当基于某种体系架构的计算机系统首次启动时,所述模块向所述的内存模式的PM管理模块的第三管理区申请空间,进而构建并初始化一定数量及大小的PM块设备,所述的PM块设备的数量和大小由基于某种体系架构的计算机系统的实际情况进行配置,同时支持用户根据应用的需求进行定制;
D2:当物理添加PM时,所述模块将初始化到所述内存模式的PM管理模块第三管理区的整条PM的空间按照块设备的管理方式组织起来;
D3:当逻辑添加PM时,所述模块将某个块设备占用的PM空间添加到所述的内存模式的PM管理模块的第三管理区;
D4:当物理移除PM时,所述模块将其管理的整条PM空间解除块设备管理结构,通知PM资源属性描述模块更新PM资源信息,通知PM识别检验模块对所述的整条PM空间断电,使其变为裸设备。
进一步的,工作过程如下:
E:基于某种体系架构的计算机系统首次启动时的工作流程
E1:基于某种体系架构的计算机系统加电后,PM识别检验模块按照PM资源属性描述模块对PM进行检验和探测,并将探测的结果传送到内存模式的PM管理模块;
E2:内存模式的PM管理模块按照预先设定的阈值初始化第一管理区,第二管理区和第三管理区,然后从第三管理区分配既定大小和数量的空间给块设备模式PM管理模块,空间的大小与基于某种体系架构的计算机系统配置的PM逻辑热插拔块的大小相同,空间的数量由所述体系架构的计算机系统的系统软件参数进行配置;
E3:块设备模式的PM管理模块把从内存模式的PM管理模块获得的空间锁定,并通知块设备模式的PM管理模块对所述空间按照块设备的模式进行初始化和配置,配置结束后,通知sysfs文件系统更新模块在用户层更新相应的统一驱动模型组件;
F:物理添加PM的工作流程:
F1:某种体系架构的计算机系统运行中,在对应的DIMM插槽上添加一条PM后,产生一个PM_add_purpose的硬件事件,PM识别检验模块捕捉到这个事件后,填充PM资源属性描述模块的对应信息,同时按照既定模式对PM进行检验和探测,并将探测的结果传送到内存模式的PM管理模块;
F2:内存模式的PM管理模块将整条PM的空间添加给第三管理区,进而将所述整条PM空间划分为既定大小和数量的空间,然后传递给块设备模式的PM管理模块,空间的大小与基于某种体系架构的计算机系统配置的PM逻辑热插拔块的大小相同,空间的数量由PM块的总容量和PM逻辑热插拔块的大小决定;
F3:块设备模式的PM管理模块把从内存模式的PM管理模块获得的空间锁定,并将所述空间按照块设备的模式进行初始化和配置,配置结束后,通知sysfs文件系统更新模块在用户层更新相应的统一驱动模型组件;
G:逻辑添加PM的工作流程:
G1:某种体系架构的计算机系统运行中,在块设备模式的PM管理模块中选择相应的PM逻辑块设备,解除其作为块设备的管理结构,释放其作为块设备占用的PM空间,并将所述空间传递给内存模式的PM管理模块,空间的大小与基于某种体系架构的计算机系统配置的PM逻辑热插拔块的大小相同;
G2:内存模式的PM管理模块将所述空间添加到第三管理区的队列头部进行管理,进一步地,将所述空间按照内存的模式进行页表映射和配置,配置结束后,通知sysfs文件系统更新模块在用户层更新相应的统一驱动模型组件;
H:逻辑移除PM的工作流程:
H1:某种体系架构的计算机系统运行中,在内存模式的PM管理模块的第三管理区队列尾部将既定大小和数量的PM空间移除到块设备模式的PM管理模块;
H2:块设备模式的PM管理模块把从内存模式的PM管理模块获得的空间锁定,并将所述空间按照块设备的模式进行初始化和配置,配置结束后,通知sysfs文件系统更新模块在用户层更新相应的统一驱动模型组件;
I:物理移除PM的工作流程:
I1:块设备模式的PM管理模块,将其管理的整条PM空间解除块设备管理结构,并通知sysfs文件系统更新模块在用户层更新相应的统一驱动模型组件;
I2:在某个对应的DIMM插槽上移除所述对应PM后,产生一个PM_remove_purpose的硬件事件,PM识别检验模块捕捉到这个事件后,更新PM资源属性描述模块的可插拔属性和地址域范围,同时将所述的整条PM空间断电,使其变为裸设备。
与现有技术相比,本发明的有益效果如下:
本发明提供了一种易于使用的PersistentMemory的热插拔方法及装置,适合在各种体系架构的计算机系统上对PersistentMemory资源进行调度和扩展,具有良好的市场前景和应用价值。
附图说明
图1为本发明所述非易失性存储器的热添加示意图。
图2为本发明所述非易失性存储器的热移除示意图。
图3为本发明所述PersistentMemory的热插拔方法的装置示意图。
图4为图3的具体模块示意图。
图5为本发明所述热插拔装置的物理添加流程图。
图6为本发明所述热插拔装置的逻辑添加流程图。
图7为本发明所述热插拔装置的逻辑移除流程图。
图8为本发明所述热插拔装置的物理移除流程图。
图9为本发明所述内存模式的PM管理模块工作原理。
具体实施方式
为使本发明实现的技术手段、创作特征、达成目的与功效易于明白了解,下面结合具体实施方式,进一步阐述本发明。
下面结合附图,以X86_64为体系架构,以Linux-2.6.32以上版本操作系统内核为例,对本发明做进一步阐述,显而易见地,附图是本发明的一些实施例,对本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些图获得其他附图。
附图3是本发明提供的PersistentMemory热插拔的装置结构示意图。
1)如附图3所示,本实施装置的PM资源属性描述模块进一步描述为:本模块实施时可以按照ACPI规范在BIOS中添加PM_SRAT表,在该表中设置三个段,第一个段描述PM条的可热添加和可热移除标志,第二个段描述PM空间的地址信息,第三个段描述其他保留信息;
2)如附图3所示,本实施装置的PM识别校验模块进一步描述为:本模块实施时可以结合ACPI规范要求和PM本身的物理特性对PM条进行加电和断电工作;识别PM时,在PM的某个区域写入固定信息,然后对PM断电,重新加电后去检测所述某个区域的信息是否保留,若保留,则可以断定操作对象是PM条而非DRAM条;校验时,可以将物理表现为高低电平翻转的信息写入PM的某个区域,过一段时间后,重复去检测写入某个区域的信息是否和先前写入的信息一致,若一致,则可以断定所写的PM正常。
3)如附图3所示,本实施装置的块设备模式的PM管理模块、内存模式的PM管理模块、sysfs文件系统更新模块在附图3装置结构的基础上,进一步描述如附图4的结构。所述的附图4的结构包括:
内存模式的PM管理模块:PM页帧探测单元,第一管理区,第二管理区,第三管理单元,PM页帧分配单元;
块设备模式的PM管理模块:PM空间申请单元,PM空间单元,PM块设备管理单元;
sysfs文件系统更新模块:内存设备sys文件更新单元,块设备sys文件更新单元;
在计算机系统首次启动时,附图4所述结构的工作流程如附图5所示:
①第三管理区从PM页帧探测单元获得本第三管理区所管理的PM页帧的总数量及地址范围,并按照预先设置大小和数量以双端队列的形式将这些PM页帧组织起来;
②PM空间申请单元向第三管理区请求既定数量的PM页帧;
③第三管理区在其队列的头部取出既定数量的PM页帧给PM页帧分配单元;
④PM页帧分配单元将得到既定数量的PM页帧后,建立页表,映射虚拟地址,并将这些页帧的信息传递到内存设备sys文件更新单元,后者更新统一驱动模型中内存设备对应的组件;
⑤PM空间锁定单元将从PM页帧分配单元获得的PM页帧锁定,防止其交换到外存设备上;
⑥PM设备管理单元将锁定的PM页帧按照块设备的管理方法初始化;
⑦块设备sys文件更新单元在接收到PM设备管理单元完成初始化的消息后,更新统一驱动模型中块设备对应的组件;
在物理添加时,附图4所述结构的工作流程也如附图5所示:
在逻辑添加时,附图4所述结构的工作流程如附图6所示:其工作流程已经显而易见,不再赘述。
在逻辑移除时,附图4所述结构的工作流程如附图7所示:其工作流程已经显而易见,不再赘述。
在物理移除时,附图4所述结构的工作流程如附图8所示:其工作流程已经显而易见,不再赘述。
4)如附图4所示,本实施装置的内存模式的PM管理模块在附图4装置结构的基础上,进一步细化为如附图9的结构。所述的附图9的结构包括:
第一管理区:将大小为20*S,21*S,···,2m*S(m=2)的PM空间组织为(m+1)个链表块,S为第1个链的PM空间块大小,2m*S为第(m+1)个链的PM空间块大小且其可以迁移到第二管理区;第二管理区:将大小为20*2m*S,21*2m*S,2n*2m*S(n=2)的PM空间组织为(n+1)个链表块,20*2m*S为第1个链的PM空间块大小且其可以迁移到第一管理区,2n*2m*S为第(n+1)个链的PM空间块大小且其可以迁移到第三管理区;第三管理区:将大小为2n*2m*S的PM空间组织为具有k(k=3)个队列元素的双端队列,队列尾的PM空间块可以迁移到第二管理区。
需要说明的是,附图9中S,m,n,k参数的大小仅仅是为了说明内存模式的PM管理模块工作原理,在Linux-2.6.32以上版本操作系统内核中设置S=4KB,m=9,n=7,k=10,则第一管理区第(9+1)个链的链表块大小为512*4KB=2048KB,第二管理区第(7+1)个链表块的大小为128*2048KB=256MB,第三管理区中队列中每个PM空间块的大小也为256MB,第三管理区总的PM空间为2560MB;若选择S=2MB,其他参数不变,则第一管理区第(9+1)个链的链表块大小为512*2MB=1024MB,第二管理区第(7+1)个链表块的大小为128*1024MB=128GB,第三管理区中队列中每个PM空间块的大小也为128GB,第三管理区总的PM空间为1280GB,所以,从大数据发展要求和PM本身高密度大容量的特性来说,选择S=2MB更加合理。
以上显示和描述了本发明的基本原理和主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等效物界定。
Claims (9)
1.一种可字节寻址的非易失性存储器的热插拔方法,其特征在于:包括所述存储器的热添加和热移除;所述存储器的热添加包括物理添加和逻辑添加,所述存储器的热移除包括逻辑移除和物理移除;总体步骤如下:
1)物理添加,其用于将可字节寻址的非易失性存储器由不带电的裸设备转化为操作系统可管理的块设备;
2)逻辑添加,其用于将可字节寻址的非易失性存储器从操作系统可管理的块设备转换为可映射虚拟地址的内存设备;
3)逻辑移除,其用于将可映射虚拟地址的内存设备转换为操作系统可管理的块设备;
4)物理移除,其用于将可字节寻址的非易失性存储器从操作系统可管理的块设备转化为不带电的裸设备。
2.根据权利要求1所述的可字节寻址的非易失性存储器的热插拔方法,其特征在于:所述步骤1)中物理添加的具体步骤如下:
步骤A1:在基于某种体系架构的计算机系统固件中完成对所述存储器的可热插拔属性及地址范围的描述;
步骤A2:BIOS对所述存储器上电检测,使其置为可读写状态;
步骤A3:将标志“5aa5a55a”写入地址为PM_address的空间,所述PM_address的值由某个非易失性寄存器NV_register传递,PM_address的更新方式为:
(PM_address+8)mod1M→NV_register,NV_register→PM_address;符号→表示传递,符号mod表示取模运算,符号1M表示地址空间的大小,符号→、符号mod、符号1M是本领域专业技术人员的通用符号;
步骤A4:将所述存储器置于D3off状态,延时与所述存储器物理属性相适应的时间后重新将所述存储器置于D0状态,即刻检测步骤A3中PM_address处的标识“5aa5a55a”是否存在,若存在,继续步骤A5,否则,宕机;所述的D3off最主要的特点是所述存储器设备完全断电的状态,所述的D0最主要的特点是所述存储器设备正常供电工作的状态,所述的D3off和D0是本领域的专业技术人员都熟悉的对设备电源状态的描述符;
步骤A5:在基于某种体系架构的计算机系统的操作系统中,增加探测所述存储器的功能,在所述存储器上增加内存节点PM_node,并将所述的PM_node划分为三个管理区,三个管理区的大小按照用户预先设定的阈值定制;若用户定制为首次添加所述存储器,则第一管理区和第二管理区采用buddy方式管理物理空间,第三管理区使用双端队列管理物理空间,若用户定制为非首次添加所述存储器,则将所添加的PM全部空间在第三管理区的双端队列管理;
步骤A6:从步骤A5所述的PM_node的第三管理区的队列头分配空间,同时锁定所述空间,并将其按照块设备的管理方法纳入到某种体系架构计算机系统的操作系统管理中;
步骤A7:在基于某种体系架构的计算机系统的操作系统的用户层更新所述存储器的块设备添加的信息,并将所述的添加信息按照更新系统文件的方式显式的呈现给用户。
3.根据权利要求2所述的存储器的热插拔方法,其特征在于:所述步骤2)中逻辑添加的具体步骤如下:
步骤A8:将步骤A6中按照块设备管理的所述存储器的部分空间或全部空间从某种体系架构的计算机系统的操作系统的块设备管理中分离,所述操作系统的第三管理区将所述存储器的部分空间或全部空间纳入到自己的管理体系中;
步骤A9:按照步骤A8的结果和预先设定的阈值调整所述PM_node中三个管理区的大小,使其保持合理的比例;
步骤A10:在基于某种体系架构计算机系统的操作系统的用户层更新所述存储器内存空间添加的信息,并将所述的添加信息按照更新系统文件的方式显式的呈现给用户。
4.根据权利要求3所述的非易失性存储器的热插拔方法,其特征在于:所述步骤3)中逻辑移除的具体步骤如下:
步骤B1:在基于某种体系架构计算机系统的操作系统的内核层,在所述PM_node上映射页表的每个进程产生一个PM_page_forbid消息,进而内核层分配新页给所述进程,将数据从老页拷贝到新页,直到所有进程迁移完成;
步骤B2:隔离并锁定步骤B1所述的老页占用的空间,并将这些空间移除到步骤A5所述的某种体系架构计算机系统的操作系统的第三管理区队列的末端;
步骤B3:在基于某种体系架构的计算机系统的操作系统的用户层更新所述存储器存储空间移除的信息,并将所述的移除信息按照更新系统文件的方式显式的呈现给用户;
步骤B4:将步骤B2中移除到某种体系架构计算机系统的操作系统的第三管理区队列的末端的所述存储器存储空间按照块设备的方式管理;
步骤B5:在基于某种体系架构的计算机系统的操作系统的用户层更新所述存储空间块设备添加的信息,并将所述的添加信息按照更新系统文件的方式显式的呈现给用户。
5.根据权利要求4所述存储器的热插拔方法,其特征在于:所述步骤4)中物理移除的具体步骤如下:
步骤B6:当产生所述存储器物理移除的事件PM_remove后,在基于某种体系架构的计算机系统的操作系统内核层解除以块设备方式管理的所述存储器的空间;
步骤B7:在基于某种体系架构的计算机系统的操作系统的用户层更新所述存储器的块设备移除信息,并将所述的移除信息按照更新系统文件的方式显式的呈现给用户;
步骤B8:将步骤B7中移除块设备管理信息的所述存储器置于D30ff状态。
6.可字节寻址的非易失性存储器的热插拔装置,其特征在于:包括
PM页迁移模块,用于PM逻辑移除时,控制进程从请求移除的PM页面上迁移;
PM资源属性描述模块,用于向基于某种体系架构的计算机系统提供关于内存模式的PM三种主要信息,一种是PM节点与其临近节点的所属关系以及所述,第二种是PM节点可热添加和可热移除标志,第三种是所述PM节点的基地址与所述PM节点预留区域的地址范围,所述的预留区域从所述PM内存节点的基地址开始的一段较小区域,这个区域的大小根据基于某种体系架构的计算机可配置;
PM识别检验模块,用于从某种体系架构的计算机系统的全部DIMM插槽上辨别内存模式的PM,即能够将DIMM插槽上的DRAM和PM区别开来,进而对所述PM进行电源管理,即在物理添加时,控制给所述PM按照既定的规程加电,在物理移除时,控制给所述PM按照既定的规程断电;
内存模式的PM管理模块,用于建立以内存的视角管理PM的方法;
块设备模式的PM管理模块,用于建立以块设备的视角管理PM的方法;
sysfs文件系统更新模块,用于将块设备模式管理的PM空间和内存模式管理的PM空间添加和移除的信息更新到统一驱动模型的相应组件,并将更新的结果显式的展现在基于某种体系架构的计算机系统的操作系统的用户层。
7.根据权利要求6所述的可字节寻址的非易失性存储器的热插拔装置,其特征在于:所述内存模式的PM管理模块的原理如下:
C1:当基于某种体系架构的计算机系统首次启动时,所述模块通过BIOS中断的方式获得PM空间的页帧总量及其保留区域的大小和范围;
C2:所述模块将所述PM节点区分为第一管理区,第二管理区,第三管理区,第一管理区位于PM资源属性描述模块中描述的PM节点预留区域之后,第二管理区位于第一管理区之后,第三管理区位于第二管理区之后;
C3:所述模块的三个所述管理区的物理地址以PM节点预留区域末端为基地址依次递增,并且可以方便计算每个管理区的起始物理地址及大小;
C4:所述模块的第一管理区以小粒度的页帧管理,第二管理区以中粒度的页帧管理,第三管理区以大粒度的页帧管理,所述的小,中,大的具体数量由基于某种体系架构的计算机系统的实际情况进行配置,同时支持用户根据应用的需求进行定制;
C5:所述模块的第一管理区和第二管理区以改进的buddy方式组织管理,第三管理区以双端队列管理;所述的改进的buddy方式主要是指第一管理区最大链块的大小和第二管理区的最小链块大小相同,第二管理区的最大链块的大小和第三管理区的所有块的大小相同;
C6:所述模块的所述三个管理区的大小根据预先设定的阈值设置,当基于某种体系架构的计算机系统在运行过程中,大小偏离预先设定的阈值时,第一管理区和第二管理区之间,第二管理区和第三管理区之间由守护进程控制进行页帧数量的增加或减少;
C7:当逻辑删除PM时,所述模块将所述第三管理区的空间移除到块设备模式的PM管理模块;
C8:当物理添加PM时,所述模块将整条PM的空间初始化到所述第三管理区队列管理中。
8.根据权利要求6所述存储器的热插拔装置,其特征在于:
所述块设备模式的PM管理模块的原理如下:
D1:当基于某种体系架构的计算机系统首次启动时,所述模块向所述的内存模式的PM管理模块的第三管理区申请空间,进而构建并初始化一定数量及大小的PM块设备,所述的PM块设备的数量和大小由基于某种体系架构的计算机系统的实际情况进行配置,同时支持用户根据应用的需求进行定制;
D2:当物理添加PM时,所述模块将初始化到所述内存模式的PM管理模块第三管理区的整条PM的空间按照块设备的管理方式组织起来;
D3:当逻辑添加PM时,所述模块将某个块设备占用的PM空间添加到所述的内存模式的PM管理模块的第三管理区;
D4:当物理移除PM时,所述模块将其管理的整条PM空间解除块设备管理结构,通知PM资源属性描述模块更新PM资源信息,通知PM识别检验模块对所述的整条PM空间断电,使其变为裸设备。
9.根据权利要求6所述存储器的热插拔装置,其特征在于:工作过程如下:
E:基于某种体系架构的计算机系统首次启动时的工作流程
E1:基于某种体系架构的计算机系统加电后,PM识别检验模块按照PM资源属性描述模块对PM进行检验和探测,并将探测的结果传送到内存模式的PM管理模块;
E2:内存模式的PM管理模块按照预先设定的阈值初始化第一管理区,第二管理区和第三管理区,然后从第三管理区分配既定大小和数量的空间给块设备模式PM管理模块,空间的大小与基于某种体系架构的计算机系统配置的PM逻辑热插拔块的大小相同,空间的数量由所述体系架构的计算机系统的系统软件参数进行配置;
E3:块设备模式的PM管理模块把从内存模式的PM管理模块获得的空间锁定,并通知块设备模式的PM管理模块对所述空间按照块设备的模式进行初始化和配置,配置结束后,通知sysfs文件系统更新模块在用户层更新相应的统一驱动模型组件;
F:物理添加PM的工作流程:
F1:某种体系架构的计算机系统运行中,在对应的DIMM插槽上添加一条PM后,产生一个PM_add_purpose的硬件事件,PM识别检验模块捕捉到这个事件后,填充PM资源属性描述模块的对应信息,同时按照既定模式对PM进行检验和探测,并将探测的结果传送到内存模式的PM管理模块;
F2:内存模式的PM管理模块将整条PM的空间添加给第三管理区,进而将所述整条PM空间划分为既定大小和数量的空间,然后传递给块设备模式的PM管理模块,空间的大小与基于某种体系架构的计算机系统配置的PM逻辑热插拔块的大小相同,空间的数量由PM块的总容量和PM逻辑热插拔块的大小决定;
F3:块设备模式的PM管理模块把从内存模式的PM管理模块获得的空间锁定,并将所述空间按照块设备的模式进行初始化和配置,配置结束后,通知sysfs文件系统更新模块在用户层更新相应的统一驱动模型组件;
G:逻辑添加PM的工作流程:
G1:某种体系架构的计算机系统运行中,在块设备模式的PM管理模块中选择相应的PM逻辑块设备,解除其作为块设备的管理结构,释放其作为块设备占用的PM空间,并将所述空间传递给内存模式的PM管理模块,空间的大小与基于某种体系架构的计算机系统配置的PM逻辑热插拔块的大小相同;
G2:内存模式的PM管理模块将所述空间添加到第三管理区的队列头部进行管理,进一步地,将所述空间按照内存的模式进行页表映射和配置,配置结束后,通知sysfs文件系统更新模块在用户层更新相应的统一驱动模型组件;
H:逻辑移除PM的工作流程:
H1:某种体系架构的计算机系统运行中,在内存模式的PM管理模块的第三管理区队列尾部将既定大小和数量的PM空间移除到块设备模式的PM管理模块;
H2:块设备模式的PM管理模块把从内存模式的PM管理模块获得的空间锁定,并将所述空间按照块设备的模式进行初始化和配置,配置结束后,通知sysfs文件系统更新模块在用户层更新相应的统一驱动模型组件;
I:物理移除PM的工作流程:
I1:块设备模式的PM管理模块,将其管理的整条PM空间解除块设备管理结构,并通知sysfs文件系统更新模块在用户层更新相应的统一驱动模型组件;
I2:在某个对应的DIMM插槽上移除所述对应PM后,产生一个PM_remove_purpose的硬件事件,PM识别检验模块捕捉到这个事件后,更新PM资源属性描述模块的可插拔属性和地址域范围,同时将所述的整条PM空间断电,使其变为裸设备。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510790111.1A CN105260336B (zh) | 2015-11-17 | 2015-11-17 | 可字节寻址的非易失性存储器热插拔方法及装置 |
US15/516,403 US10552359B2 (en) | 2015-11-17 | 2015-12-15 | Hot plug method and device for byte addressable persistent memory |
PCT/CN2015/097525 WO2017084139A1 (zh) | 2015-11-17 | 2015-12-15 | 可字节寻址的非易失性存储器热插拔方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510790111.1A CN105260336B (zh) | 2015-11-17 | 2015-11-17 | 可字节寻址的非易失性存储器热插拔方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105260336A true CN105260336A (zh) | 2016-01-20 |
CN105260336B CN105260336B (zh) | 2018-12-18 |
Family
ID=55100033
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510790111.1A Active CN105260336B (zh) | 2015-11-17 | 2015-11-17 | 可字节寻址的非易失性存储器热插拔方法及装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10552359B2 (zh) |
CN (1) | CN105260336B (zh) |
WO (1) | WO2017084139A1 (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105739982A (zh) * | 2016-01-29 | 2016-07-06 | 浪潮(北京)电子信息产业有限公司 | 一种系统休眠的方法及装置 |
CN108604215A (zh) * | 2016-02-19 | 2018-09-28 | 三星电子株式会社 | 软件保护器装置和控制该软件保护器装置的方法 |
CN111159056A (zh) * | 2019-12-11 | 2020-05-15 | 上海交通大学 | 一种针对非易失性内存的可伸缩内存分配方法及系统 |
CN112947863A (zh) * | 2021-03-25 | 2021-06-11 | 北京计算机技术及应用研究所 | 一种飞腾服务器平台下存储空间合并成的方法 |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10853299B2 (en) * | 2017-09-15 | 2020-12-01 | Dell Products L.P. | Hot-plugged PCIe device configuration system |
CN110633130B (zh) * | 2019-08-29 | 2023-10-31 | 上海仪电(集团)有限公司中央研究院 | 一种基于内存热插拔技术的虚拟内存管理方法和装置 |
US11249804B2 (en) | 2019-10-07 | 2022-02-15 | International Business Machines Corporation | Affinity based optimization of virtual persistent memory volumes |
US11461281B2 (en) * | 2020-04-20 | 2022-10-04 | Netapp Inc. | Freeing pages within persistent memory |
US20220114025A1 (en) * | 2020-10-13 | 2022-04-14 | Dell Products L.P. | Dynamic memory allocation based on workload characterization and optimization |
US11397545B1 (en) | 2021-01-20 | 2022-07-26 | Pure Storage, Inc. | Emulating persistent reservations in a cloud-based storage system |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040215865A1 (en) * | 2003-04-28 | 2004-10-28 | International Business Machines Corporation | Non-disruptive, dynamic hot-plug and hot-remove of server nodes in an SMP |
CN1639702A (zh) * | 2001-12-19 | 2005-07-13 | 英特尔公司 | 热插拔接口控制方法和装置 |
CN102323899A (zh) * | 2011-09-05 | 2012-01-18 | 浪潮电子信息产业股份有限公司 | Numa体系结构下面向容错的操作系统内存管理方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100362503C (zh) * | 2006-03-10 | 2008-01-16 | 华为技术有限公司 | 一种热插拔的实现方法及装置 |
CN100462954C (zh) * | 2007-03-14 | 2009-02-18 | 杭州华三通信技术有限公司 | 支持热插拔的spi4总线接口卡、及相应的主机和方法 |
US8392915B2 (en) * | 2008-11-19 | 2013-03-05 | Oracle International Corporation | Efficient volume manager hot swapping |
CN102819447B (zh) * | 2012-05-29 | 2015-06-03 | 中国科学院计算技术研究所 | 一种用于多根共享系统的直接i/o虚拟化方法和装置 |
JP2014071917A (ja) * | 2012-09-27 | 2014-04-21 | Sony Corp | ファイル記録装置、フィルシステム管理方法、ファイル修復方法およびチェンジャドライブ |
-
2015
- 2015-11-17 CN CN201510790111.1A patent/CN105260336B/zh active Active
- 2015-12-15 WO PCT/CN2015/097525 patent/WO2017084139A1/zh active Application Filing
- 2015-12-15 US US15/516,403 patent/US10552359B2/en not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1639702A (zh) * | 2001-12-19 | 2005-07-13 | 英特尔公司 | 热插拔接口控制方法和装置 |
US20040215865A1 (en) * | 2003-04-28 | 2004-10-28 | International Business Machines Corporation | Non-disruptive, dynamic hot-plug and hot-remove of server nodes in an SMP |
CN102323899A (zh) * | 2011-09-05 | 2012-01-18 | 浪潮电子信息产业股份有限公司 | Numa体系结构下面向容错的操作系统内存管理方法 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105739982A (zh) * | 2016-01-29 | 2016-07-06 | 浪潮(北京)电子信息产业有限公司 | 一种系统休眠的方法及装置 |
CN105739982B (zh) * | 2016-01-29 | 2019-05-10 | 浪潮(北京)电子信息产业有限公司 | 一种系统休眠的方法及装置 |
CN108604215A (zh) * | 2016-02-19 | 2018-09-28 | 三星电子株式会社 | 软件保护器装置和控制该软件保护器装置的方法 |
CN111159056A (zh) * | 2019-12-11 | 2020-05-15 | 上海交通大学 | 一种针对非易失性内存的可伸缩内存分配方法及系统 |
CN112947863A (zh) * | 2021-03-25 | 2021-06-11 | 北京计算机技术及应用研究所 | 一种飞腾服务器平台下存储空间合并成的方法 |
CN112947863B (zh) * | 2021-03-25 | 2024-01-30 | 北京计算机技术及应用研究所 | 一种飞腾服务器平台下存储空间合并成的方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2017084139A1 (zh) | 2017-05-26 |
US20170300442A1 (en) | 2017-10-19 |
US10552359B2 (en) | 2020-02-04 |
CN105260336B (zh) | 2018-12-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105260336A (zh) | 可字节寻址的非易失性存储器热插拔方法及装置 | |
US8671241B2 (en) | Systems and methods for using reserved solid state nonvolatile memory storage capacity for system reduced power state | |
TWI691839B (zh) | 資料管理方法 | |
CN104423894B (zh) | 数据储存装置以及快闪存储器控制方法 | |
JP2004295885A (ja) | メイン・メモリの動的再割当てが可能なコンピュータ・システム | |
CN103455379A (zh) | 资源分配方法及系统 | |
US11010079B2 (en) | Concept for storing file system metadata within solid-stage storage devices | |
CN107908571B (zh) | 一种数据写入方法、闪存装置及存储设备 | |
EP4002132A1 (en) | Adaptive device behavior based on available energy | |
TWI556110B (zh) | 用於提供存取裝置函數的設備、系統及方法 | |
TWI498899B (zh) | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 | |
CN103064792A (zh) | 数据写入方法及装置 | |
TW201721356A (zh) | 針對關於記憶體裝置進入低功率態的技術 | |
US20180095693A1 (en) | Information processing apparatus, information processing system, and method for controlling information processing apparatus | |
WO2018217405A1 (en) | Core mapping | |
TWI454922B (zh) | 記憶體儲存裝置及其記憶體控制器與資料寫入方法 | |
CN112015341A (zh) | 一种数据存储方法、存储系统及存储介质 | |
CN108062201A (zh) | 用于固态驱动器的自虚拟化闪速存储器 | |
CN102725746B (zh) | 对分布式计算机系统中内存的管理方法和装置 | |
TW201732635A (zh) | 資料傳輸方法及伺服器 | |
US20160378151A1 (en) | Rack scale architecture (rsa) and shared memory controller (smc) techniques of fast zeroing | |
US20180293187A1 (en) | Systems and devices having a scalable basic input/output system (bios) footprint and associated methods | |
CN103677745A (zh) | 一种在龙芯主板中写入和读取设备标识的方法 | |
US11861219B2 (en) | Buffer to reduce write amplification of misaligned write operations | |
CN205983448U (zh) | 用于固态硬盘的控制芯片及固态硬盘 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |