CN111159056A - 一种针对非易失性内存的可伸缩内存分配方法及系统 - Google Patents
一种针对非易失性内存的可伸缩内存分配方法及系统 Download PDFInfo
- Publication number
- CN111159056A CN111159056A CN201911268753.XA CN201911268753A CN111159056A CN 111159056 A CN111159056 A CN 111159056A CN 201911268753 A CN201911268753 A CN 201911268753A CN 111159056 A CN111159056 A CN 111159056A
- Authority
- CN
- China
- Prior art keywords
- memory
- thread
- nonvolatile memory
- local
- distributor
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
- G06F9/526—Mutual exclusion algorithms
-
- 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
Abstract
本发明提供了一种针对非易失性内存的可伸缩内存分配方法及系统,包括:步骤M1:双层内存管理包括一个全局分配器和多个本地分配器;步骤M2:全局分配器管理操作系统所有非易失性内存;步骤M3:本地分配器从全局分配器中批量分配或释放非易失性内存,然后本地分配器再进行线程内分配和释放。本发明提出的基于非易失性内存的内存分配方法,利用线程本地存储,为每个线程分配一定量的空闲非易失性内存,可以降低并发分配时的竞争,提高系统的并发性能。
Description
技术领域
本发明涉及计算机领域,具体地,涉及一种针对非易失性内存的可伸缩内存分配方法及系统。
背景技术
非易失性内存是一种同时拥有传统内存的低延迟、高吞吐特征和传统存储设备的断电后内容不易失特征的新型存储介质。它可以以字节粒度寻址,从而允许处理器像操作传统内存一样通过load/store指令直接访问非易失内存中的内容。
随着单核处理器的性能提升越来越困难,多核处理器已经成为计算机系统的标准配置。多核环境下的程序利用计算机的多个CPU并行地执行指令,线程在需要对一些公共资源进行操作时(例如内存、IO设备等)往往通过加锁的方式来获得对设备的独占权以防止其他线程同时修改公共数据而导致错误发生。内存分配器,作为内存资源的管理和分配单元,在并行执行时需要拥有低延迟、高吞吐等特征,并且要尽可能减少多个线程之间的竞争,避免由于频繁的锁操作造成的性能损失。
为了减少并行环境下的多线程竞争,常用的一个技术是使用线程本地存储(ThreadLocalStorage)技术。线程本地存储是每个线程私有的一块存储空间,一个线程对自身的线程本地存储进行读写时不会影响到其他线程,因此也不需要加锁等操作,从而可以大大提升程序并行执行的效率。
由于非易失性内存的新特征和程序在多核环境下的需求,非易失性内存需要一种适用于多核场景下的高性能的内存分配方法,使得其既能满足低延迟和高吞吐的要求,又要防止用户态进程意外终止可能造成的内存泄漏问题。
专利文献CN109388581A(申请号:201811165952.3)公开了一种非易失性内存储器管理方法与装置,包括:接收命令行参数,从命令行参数中解析出管理请求;创建套接字,根据管理请求使用套接字操作链表,生成反馈信息;将反馈消息作为命令行参数的响应而封装和输出。
发明内容
针对现有技术中的缺陷,本发明的目的是提供一种一种针对非易失性内存的可伸缩内存分配方法及系统。
根据本发明提供的一种针对非易失性内存的可伸缩内存分配方法,包括:
步骤M1:双层内存管理包括一个全局分配器和多个本地分配器;
步骤M2:全局分配器管理操作系统所有非易失性内存;
步骤M3:本地分配器从全局分配器中批量分配或释放非易失性内存,然后本地分配器再进行线程内分配和释放。
优选地,所述步骤M3包括:全局内存管理和各个线程的本地内存管理相分离,各个线程的本地分配器批量从全局内存分配器中获得非易失内存后再在本地内存分配器中分配。
优选地,所述步骤M3包括:线程从全局分配器分配的非易失性内存的地址存放在线程本地存储中,每个线程所拥有的非易失性内存相互独立。
优选地,所述步骤M3包括:
本地分配器使用两级链表组织空闲内存,第一级链表节点中存储进程号、租约锁和指向第二级链表的指针,第二级链表是分配使用的非易失性内存;每个线程先获得第一级链表中的租约锁才能从第二级链表中分配或释放非易失性内存,每个线程使用线程本地存储指向本线程占有的空闲非易失性内存。
优选地,所述租约锁包括:使用租约锁在本地分配器中的空闲非易失性内存加锁,线程在分配或释放非易失性内存时需要首先获得线程本地存储指向的非易失性内存的租约锁;
当租约锁过期或已经被占用,则继续寻找空闲的租约锁及租约锁对应的非易失性内存;当租约锁没有过期或被占用,则使用租约锁对应的非易失性内存;
当线程获得的租约锁到期,则除本线程以外的线程抢占本租约锁和本租约锁对应的空闲非易失内存。
根据本发明提供的一种针对非易失性内存的可伸缩内存分配系统,包括:
模块M1:双层内存管理包括一个全局分配器和多个本地分配器;
模块M2:全局分配器管理操作系统所有非易失性内存;
模块M3:本地分配器从全局分配器中批量分配或释放非易失性内存,然后本地分配器再进行线程内分配和释放。
优选地,所述模块M3包括:全局分配器和各个线程的本地内存管理相分离,各个线程的本地内存分配器批量从全局内存分配器中获得非易失内存后再在本地内存分配器中分配。
优选地,所述模块M3包括:线程从全局分配器分配的非易失性内存的地址存放在线程本地存储中,每个线程所拥有的非易失性内存相互独立。
优选地,所述模块M3包括:
本地分配器使用两级链表组织空闲内存,第一级链表节点中存储进程号、租约锁和指向第二级链表的指针,第二级链表是分配使用的非易失性内存;每个线程先获得第一级链表中的租约锁才能从第二级链表中分配或释放非易失性内存,每个线程使用线程本地存储指向本线程占有的空闲非易失性内存。
优选地,所述租约锁包括:使用租约锁在本地分配器中的空闲非易失性内存加锁,线程在分配或释放非易失性内存时需要首先获得线程本地存储指向的非易失性内存的租约锁;
当租约锁过期或已经被占用,则继续寻找空闲的租约锁及租约锁对应的非易失性内存;当租约锁没有过期或被占用,则使用租约锁对应的非易失性内存;
当线程获得的租约锁到期,则除本线程以外的线程抢占本租约锁和本租约锁对应的空闲非易失内存。
与现有技术相比,本发明具有如下的有益效果:
1、本发明提出的基于非易失性内存的内存分配方法,利用线程本地存储,为每个线程分配一定量的空闲非易失性内存,可以降低并发分配时的竞争,降低了分配延迟,提高系统的并发性能。
2、对每个线程占用的内存使用租约锁,可以保证在线程终止后使其占有的非易失性内存能自动释放,可以在线程意外终止后过一段时间自动释放锁,解决了潜在的内存泄漏问题。
3、本发明提出的针对非易失性内存的可伸缩内存分配方法,充分考虑非易失性内存的优势和特点,利用线程本地存储和租约锁技术,降低了内存分配的延迟,提高了分配的并发性能,并解决了用户进程意外终止锁可能带来的内存泄漏问题,从而提升了整个系统的伸缩性、可用性、可靠性和鲁棒性。
附图说明
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1为本发明中对于非易失性内存在全局和本地分层管理方式的举例;
图2为本发明中对于非易失性内存在线程本地存储中管理方式的举例;
图3为本发明中对于多个线程对非易失性内存上的租约锁操作方式的举例。
具体实施方式
下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。
针对非易失性内存的对于内存分配的需求,本发明的目的是提供一种针对非易失性内存的可伸缩内存分配方法,其充分考虑非易失性内存的优势和特点,结合用户态程序的需求,利用线程本地存储和租约锁技术,降低内存分配的延迟,提高分配的并发性能,并解决用户态进程意外终止可能带来的内存泄漏问题,从而提升整个系统的伸缩性、可用性、可靠性和鲁棒性。
根据本发明提供的一种针对非易失性内存的可伸缩内存分配方法,包括:
步骤M1:双层内存管理包括一个全局分配器和多个本地分配器;
步骤M2:如图1所示,全局分配器管理操作系统所有非易失性内存;
步骤M3:本地分配器从全局分配器中批量分配或释放非易失性内存并对这些内存细化管理,然后本地分配器再进行线程内分配和释放。
具体地,所述步骤M3包括:全局内存管理和各个线程的本地内存管理相分离,各个线程的本地分配器批量从全局内存分配器中获得非易失内存后再在本地内存分配器中分配。
具体地,所述步骤M3包括:线程从全局分配器分配的非易失性内存的地址存放在线程本地存储中,每个线程所拥有的非易失性内存相互独立。在使用时不会发生相互的竞争,从而提高了系统的并发性能。
具体地,所述步骤M3包括:
本地分配器使用两级链表组织空闲内存,第一级链表节点中存储进程号、租约锁和指向第二级链表的指针,第二级链表是分配使用的非易失性内存;每个线程先获得第一级链表中的租约锁才能从第二级链表中分配或释放非易失性内存,每个线程使用线程本地存储指向本线程占有的空闲非易失性内存。
具体地,所述租约锁包括:使用租约锁在本地分配器中的空闲非易失性内存加锁,用户线程在分配或释放非易失性内存时需要首先获得其线程本地存储指向的非易失性内存的租约锁;
当租约锁过期或已经被其他线程占用,则继续寻找空闲的租约锁及租约锁对应的非易失性内存;当租约锁没有过期或被占用,则使用租约锁对应的非易失性内存;使用租约锁的好处是如果线程意外终止,那么它占有的空闲内存会在一段时间后(租约到期时)自动释放从而被其他线程继续使用,避免了内存泄漏问题。
当线程获得的租约锁到期,则除本线程以外的线程抢占本租约锁和本租约锁对应的空闲非易失内存。
根据本发明提供的一种针对非易失性内存的可伸缩内存分配系统,包括:
模块M1:双层内存管理包括一个全局分配器和多个本地分配器;
模块M2:如图1所示,全局分配器管理操作系统所有非易失性内存;
模块M3:本地分配器从全局分配器中批量分配或释放非易失性内存,然后本地分配器再进行线程内分配和释放。
具体地,所述模块M3包括:全局内存管理和各个线程的本地内存管理相分离,各个线程的本地分配器批量从全局内存分配器中获得非易失内存后再在本地内存分配器中分配。
具体地,所述模块M3包括:线程从全局分配器分配的非易失性内存的地址存放在线程本地存储中,每个线程所拥有的非易失性内存相互独立。在使用时不会发生相互的竞争,从而提高了系统的并发性能。
具体地,所述模块M3包括:
本地分配器使用两级链表组织空闲内存,第一级链表节点中存储进程号、租约锁和指向第二级链表的指针,第二级链表是分配使用的非易失性内存;每个线程先获得第一级链表中的租约锁才能从第二级链表中分配或释放非易失性内存,每个线程使用线程本地存储指向本线程占有的空闲非易失性内存。
具体地,所述租约锁包括:使用租约锁在本地分配器中的空闲非易失性内存加锁,用户线程在分配或释放非易失性内存时需要首先获得其线程本地存储指向的非易失性内存的租约锁;
当租约锁过期或已经被其他线程占用,则继续寻找空闲的租约锁及租约锁对应的非易失性内存;当租约锁没有过期或被占用,则使用租约锁对应的非易失性内存;使用租约锁的好处是如果线程意外终止,那么它占有的空闲内存会在一段时间后(租约到期时)自动释放从而被其他线程继续使用,避免了内存泄漏问题。
当线程获得的租约锁到期,则除本线程以外的线程抢占本租约锁和本租约锁对应的空闲非易失内存。
以下优选例对本发明作进一步详细说明:
双层内存管理:内存管理由一个全局分配器和多个本地分配器组成。全局分配器管理系统所有非易失内存,各个应用线程中的本地分配器从全局分配器中批量分配或释放内存,然后再进行线程内分配和使用。如图1所示,全局分配器管理着整个系统的所有非易失性内存,用户进程中的线程各自拥有自己缓存在本地分配器中的非易失性内存(例如用户进程1中的线程缓存了Region1中的非易失性内存),线程本地分配器中的非易失性内存用完以后将会向全局分配器批量申请新的内存。类似地,如果线程本地分配器中的空闲非易失性内存过多,也会将部分内存返还给全局分配器。
使用线程本地存储(ThreadLocalStorage)减少竞争:线程将从全局分配器拿来的非易失内存的地址存放在线程本地存储中,每个线程所拥有的非易失内存相互独立,在使用时不会发生相互的竞争,从而提高了系统的并发性能。如图2所示,本地分配器中有两个链表,第一级链表中的节点保存着占用该节点的线程id(pid)、租约锁和指向该节点下的空闲的非易失性内存的指针,这些数据结构也是保存在非易失性内存上的,因此在断电后内容也不会丢失;第二级链表就是空闲的非易失性内存,这些空闲空间按照页(page)大小依次串联起来。每个线程有各自的线程本地存储,它们指向某一个第一级链表的节点。当线程需要分配内存时,将遍历第一级链表获得一个未被占用的节点,将其中的pid设置成自己的线程id,并且给租约锁上锁,然后再从该节点指向的第二级链表中分配空闲页。这样每个线程就可以在租约有效期内独占线程缓存的非易失性内存而不会与其他线程发生竞争,大大提高了并行分配的效率。
使用租约锁(LeaseLock)对本地分配器中的空闲非易失内存加锁:用户线程在分配或释放非易失内存时需要首先获得其线程本地存储指向的内存的租约锁,如果租约锁过期或已经被其他线程占用,则要接着寻找空闲的租约锁及其对应的非易失内存。使用租约锁的好处是如果线程意外终止,那么它占有的空闲内存会在一段时间后(租约到期时)自动释放从而被其他线程继续使用,避免了内存泄漏问题。如图3所示,假设现在有两块非易失性内存——内存1和内存2,有三个线程需要分配非易失性内存,每个线程首先设置10毫秒的租约(浅色条)然后执行分配或释放内存操作(深色条)。根据图3中的描述,线程1首先在0毫秒时给内存1加了锁,然后执行了分配操作,在7毫秒第一次租约还没有到期时由于需要再次进行分配操作,因此直接延长在内存1上的租约到17毫秒即可。线程2在2毫秒时也需要分配内存,它在内存2上加了锁并进行了分配操作,不过在租约到期前它就被意外终止了。然后在19毫秒时线程3需要分配内存,它发现内存1中的租约已经到期了,因此它占用了内存1并设置租约。当线程1在22毫秒又需要分配内存时它发现自己原来占用的内存1上的租约已经过期了,因此重新寻找空闲的内存页,此时虽然线程2在之前意外终止了,不过它在内存2上的租约锁已经到期自动释放,因此线程1拿到内存2上的租约锁并进行分配操作,内存2没有发生内存泄漏。
综上所述,本发明提出的针对非易失性内存的可伸缩内存分配方法,充分考虑非易失性内存的优势和特点,利用线程本地存储和租约锁技术,降低了内存分配的延迟,提高了分配的并发性能,并解决了用户进程意外终止锁可能带来的内存泄漏问题,从而提升了整个系统的伸缩性、可用性、可靠性和鲁棒性。
本领域技术人员知道,除了以纯计算机可读程序代码方式实现本发明提供的系统、装置及其各个模块以外,完全可以通过将方法步骤进行逻辑编程来使得本发明提供的系统、装置及其各个模块以逻辑门、开关、专用集成电路、可编程逻辑控制器以及嵌入式微控制器等的形式来实现相同程序。所以,本发明提供的系统、装置及其各个模块可以被认为是一种硬件部件,而对其内包括的用于实现各种程序的模块也可以视为硬件部件内的结构;也可以将用于实现各种功能的模块视为既可以是实现方法的软件程序又可以是硬件部件内的结构。
以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本申请的实施例和实施例中的特征可以任意相互组合。
Claims (10)
1.一种针对非易失性内存的可伸缩内存分配方法,其特征在于,包括:
步骤M1:双层内存管理包括一个全局分配器和多个本地分配器;
步骤M2:全局分配器管理操作系统所有非易失性内存;
步骤M3:本地分配器从全局分配器中批量分配或释放非易失性内存,然后本地分配器再进行线程内分配和释放。
2.根据权利要求1所述的一种针对非易失性内存的可伸缩内存分配方法,其特征在于,所述步骤M3包括:全局内存管理和各个线程的本地内存管理相分离,各个线程的本地分配器批量从全局内存分配器中获得非易失内存后再在本地内存分配器中分配。
3.根据权利要求1所述的一种针对非易失性内存的可伸缩内存分配方法,其特征在于,所述步骤M3包括:线程从全局分配器分配的非易失性内存的地址存放在线程本地存储中,每个线程所拥有的非易失性内存相互独立。
4.根据权利要求1所述的一种针对非易失性内存的可伸缩内存分配方法,其特征在于,所述步骤M3包括:
本地分配器使用两级链表组织空闲内存,第一级链表节点中存储进程号、租约锁和指向第二级链表的指针,第二级链表是分配使用的非易失性内存;每个线程先获得第一级链表中的租约锁才能从第二级链表中分配或释放非易失性内存,每个线程使用线程本地存储指向本线程占有的空闲非易失性内存。
5.根据权利要求4所述的一种针对非易失性内存的可伸缩内存分配方法,其特征在于,所述租约锁包括:使用租约锁在本地分配器中的空闲非易失性内存加锁,线程在分配或释放非易失性内存时需要首先获得线程本地存储指向的非易失性内存的租约锁;
当租约锁过期或已经被占用,则继续寻找空闲的租约锁及租约锁对应的非易失性内存;当租约锁没有过期或被占用,则使用租约锁对应的非易失性内存;
当线程获得的租约锁到期,则除本线程以外的线程抢占本租约锁和本租约锁对应的空闲非易失内存。
6.一种针对非易失性内存的可伸缩内存分配系统,其特征在于,包括:
模块M1:双层内存管理包括一个全局分配器和多个本地分配器;
模块M2:全局分配器管理操作系统所有非易失性内存;
模块M3:本地分配器从全局分配器中批量分配或释放非易失性内存,然后本地分配器再进行线程内分配和释放。
7.根据权利要求6所述的一种针对非易失性内存的可伸缩内存分配系统,其特征在于,所述模块M3包括:全局内存管理和各个线程的本地内存管理相分离,各个线程的本地内存分配器批量从全局内存分配器中获得非易失内存后再在本地内存分配器中分配。
8.根据权利要求6所述的一种针对非易失性内存的可伸缩内存分配系统,其特征在于,所述模块M3包括:线程从全局分配器分配的非易失性内存的地址存放在线程本地存储中,每个线程所拥有的非易失性内存相互独立。
9.根据权利要求6所述的一种针对非易失性内存的可伸缩内存分配系统,其特征在于,所述模块M3包括:
本地分配器使用两级链表组织空闲内存,第一级链表节点中存储进程号、租约锁和指向第二级链表的指针,第二级链表是分配使用的非易失性内存;每个线程先获得第一级链表中的租约锁才能从第二级链表中分配或释放非易失性内存,每个线程使用线程本地存储指向本线程占有的空闲非易失性内存。
10.根据权利要求9所述的一种针对非易失性内存的可伸缩内存分配系统,其特征在于,所述租约锁包括:使用租约锁在本地分配器中的空闲非易失性内存加锁,线程在分配或释放非易失性内存时需要首先获得线程本地存储指向的非易失性内存的租约锁;
当租约锁过期或已经被占用,则继续寻找空闲的租约锁及租约锁对应的非易失性内存;当租约锁没有过期或被占用,则使用租约锁对应的非易失性内存;
当线程获得的租约锁到期,则除本线程以外的线程抢占本租约锁和本租约锁对应的空闲非易失内存。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911268753.XA CN111159056A (zh) | 2019-12-11 | 2019-12-11 | 一种针对非易失性内存的可伸缩内存分配方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911268753.XA CN111159056A (zh) | 2019-12-11 | 2019-12-11 | 一种针对非易失性内存的可伸缩内存分配方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111159056A true CN111159056A (zh) | 2020-05-15 |
Family
ID=70557088
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911268753.XA Pending CN111159056A (zh) | 2019-12-11 | 2019-12-11 | 一种针对非易失性内存的可伸缩内存分配方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111159056A (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105260336A (zh) * | 2015-11-17 | 2016-01-20 | 上海交通大学 | 可字节寻址的非易失性存储器热插拔方法及装置 |
CN105930280A (zh) * | 2016-05-27 | 2016-09-07 | 诸葛晴凤 | 一种面向非易失性内存的高效的页面组织和管理方法 |
CN109407979A (zh) * | 2018-09-27 | 2019-03-01 | 清华大学 | 多线程持久性b+树数据结构设计与实现方法 |
CN110287127A (zh) * | 2019-05-14 | 2019-09-27 | 江苏大学 | 一种多粒度多核可扩展的非易失性内存管理方法及系统 |
-
2019
- 2019-12-11 CN CN201911268753.XA patent/CN111159056A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105260336A (zh) * | 2015-11-17 | 2016-01-20 | 上海交通大学 | 可字节寻址的非易失性存储器热插拔方法及装置 |
CN105930280A (zh) * | 2016-05-27 | 2016-09-07 | 诸葛晴凤 | 一种面向非易失性内存的高效的页面组织和管理方法 |
CN109407979A (zh) * | 2018-09-27 | 2019-03-01 | 清华大学 | 多线程持久性b+树数据结构设计与实现方法 |
CN110287127A (zh) * | 2019-05-14 | 2019-09-27 | 江苏大学 | 一种多粒度多核可扩展的非易失性内存管理方法及系统 |
Non-Patent Citations (1)
Title |
---|
MINGKAI DONG等: "Performance and Protection in the ZoFS User-space NVM File System" * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9619430B2 (en) | Active non-volatile memory post-processing | |
CN100530107C (zh) | 基于io事件通知机制的单进程内容服务器装置及方法 | |
US20110161540A1 (en) | Hardware supported high performance lock schema | |
CN106844048B (zh) | 基于硬件特性的分布式共享内存方法及系统 | |
KR20180007374A (ko) | 메모리 채널의 소프트웨어 트레이닝을 수행하는 전자 장치 및 그것의 메모리 채널 트레이닝 방법 | |
US20140115291A1 (en) | Numa optimization for garbage collection of multi-threaded applications | |
CN101216781B (zh) | 一种多处理器系统、装置及方法 | |
US20070094529A1 (en) | Method and apparatus for increasing throughput in a storage server | |
US10521371B2 (en) | Cache system and associated method | |
US9304946B2 (en) | Hardware-base accelerator for managing copy-on-write of multi-level caches utilizing block copy-on-write differential update table | |
CN111708638A (zh) | 内存分配方法、装置、设备及存储介质 | |
CN115080277A (zh) | 一种多核系统的核间通信系统 | |
CN110659248A (zh) | 基于非易失性内存的用户态文件系统设计方法及系统 | |
US20180373573A1 (en) | Lock manager | |
US9250976B2 (en) | Tiered locking of resources | |
CN112948136A (zh) | 一种嵌入式操作系统异步日志记录的实现方法 | |
CN111159056A (zh) | 一种针对非易失性内存的可伸缩内存分配方法及系统 | |
US20190079807A1 (en) | Scalable spinlocks for non-uniform memory access | |
CN112948336B (zh) | 数据加速方法及缓存单元、电子设备及存储介质 | |
US20060041882A1 (en) | Replication of firmware | |
US11474938B2 (en) | Data storage system with multiple-size object allocator for disk cache | |
CN113282407B (zh) | 基于持久性内存的用户层异步io方法与系统 | |
US20180173630A1 (en) | Target cache line arbitration within a processor cluster | |
TWI381315B (zh) | Synchronization elements for multi-core embedded systems | |
US10783291B2 (en) | Hybrid performance of electronic design automation (EDA) procedures with delayed acquisition of remote resources |
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 | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20220624 Address after: 200240 No. 800, Dongchuan Road, Shanghai, Minhang District Applicant after: SHANGHAI JIAO TONG University Applicant after: National University of Defense Technology Address before: 200240 No. 800, Dongchuan Road, Shanghai, Minhang District Applicant before: SHANGHAI JIAO TONG University |
|
TA01 | Transfer of patent application right |