CN112486703B - 基于多核多处理器并行系统的全局数据存储器管理方法 - Google Patents
基于多核多处理器并行系统的全局数据存储器管理方法 Download PDFInfo
- Publication number
- CN112486703B CN112486703B CN202011360415.1A CN202011360415A CN112486703B CN 112486703 B CN112486703 B CN 112486703B CN 202011360415 A CN202011360415 A CN 202011360415A CN 112486703 B CN112486703 B CN 112486703B
- Authority
- CN
- China
- Prior art keywords
- global data
- data memory
- global
- core
- buffer pool
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 230000015654 memory Effects 0.000 title claims abstract description 177
- 238000007726 management method Methods 0.000 title claims abstract description 19
- 238000000034 method Methods 0.000 claims abstract description 5
- 238000003860 storage Methods 0.000 claims description 12
- 238000013500 data storage Methods 0.000 claims description 8
- 238000013507 mapping Methods 0.000 claims description 4
- 230000002457 bidirectional effect Effects 0.000 claims description 3
- 230000007717 exclusion Effects 0.000 abstract description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 230000033772 system development Effects 0.000 description 1
Classifications
-
- 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/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/177—Initialisation or configuration control
-
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5022—Mechanisms to release resources
-
- 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
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5011—Pool
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5018—Thread allocation
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Multi Processors (AREA)
Abstract
本发明公开了一种基于多核多处理器并行系统的全局数据存储器管理方法,其包括:各处理核心系统初始化;各处理核心创建线程,从线程所属处理核心对应的用户堆缓冲池和数据缓冲池中创建用户堆,将用户堆信息填入全局数据存储器名表;从线程所属处理核心对应的全局数据存储器缓冲池和用户堆中创建全局数据存储器,将全局数据存储器信息填入全局数据存储器名表;通过全局信号量管理全局数据存储器的互斥访问,从而获取或释放全局数据存储器的访问权。该方法利用全局信号量,控制全局数据存储器的互斥访问,从而获取或释放全局数据存储器的访问权,规避了多核多处理器并行系统中多个线程同时访问同一全局资源造成的数据错误问题。
Description
技术领域
本发明涉及一种存储器管理方法,具体为一种基于多核多处理器并行系统的全局数据存储器管理方法,属于嵌入式计算机领域。
背景技术
随着计算机系统的发展以及领域应用对实时性、并行性需求的日益增长,多核多处理器并行系统己成为嵌入式计算机系统发展的重要趋势。
随着多核处理器并行系统核心数和处理器节点的增多,系统需要提供一整套高效可靠的多核间线程交互机制才能完成多核处理器之间的协同工作,实现资源的共享访问与线程的分配。
当多核多处理器并行系统中多个线程同时访问同一全局资源时,若不对该全局资源加以访问控制,容易出现数据错误,导致线程交互失败甚至系统崩溃。
发明内容
本发明的目的就在于为了解决上述问题而提供一种基于多核多处理器并行系统的全局数据存储器管理方法,利用全局信号量,管理全局数据存储器的互斥访问,从而规避了多核多处理器并行系统中多个线程同时访问同一全局资源造成的数据错误问题,保证系统正常安全运行,具有安全、高效的特点。
本发明通过以下技术方案来实现上述目的:一种基于多核多处理器并行系统的全局数据存储器管理方法,该全局数据存储器管理方法包括:
S1)多核多处理器并行系统的各处理核心进行系统初始化,通过SRIO映射一段共享存储空间用于存储全局数据存储器、用户堆与全局数据存储器名表;
S2)所述各处理核心创建线程,从线程所属处理核心对应的用户堆缓冲池和数据缓冲池中创建用户堆,将用户堆信息填入全局数据存储器名表;
S3)从线程所属处理核心对应的全局数据存储器缓冲池和用户堆中创建全局数据存储器,将全局数据存储器信息填入全局数据存储器名表;
S4)线程申请获取或释放全局数据存储器,通过全局信号量管理全局数据存储器的互斥访问,从而获取或释放全局数据存储器的访问权。
优选地,所述多核多处理器并行系统的处理器节点数至少有1个;所述处理器节点的处理核心至少有1个;并且所述处理器节点间或处理核心支持SRIO总线互连。
优选地,步骤S1)中,所述系统初始化的过程包括:
S11)各处理核心均初始化SRIO,通过SRIO映射一段共享存储空间用于存储全局数据存储器、用户堆与全局数据存储器名表;
S12)选取任一处理核心为主处理核心,创建并初始化一张共享的全局数据存储器名表,用于记录所有已创建的用户堆和全局数据存储器;
S13)在各处理核心映射出的共享存储空间中,创建用户堆缓冲池、数据缓冲池和全局数据存储器缓冲池。
优选地,步骤S12)中,所述全局数据存储器名表的内容包括控制名表互斥访问的全局信号量、所有已创建的用户堆数目、所有已创建的用户堆信息、所有已创建的全局数据存储器数目,以及所有已创建的全局数据存储器信息。
优选地,步骤S13)中,所述用户堆缓冲池、数据缓冲池和全局数据存储器缓冲池,为带表头指针的双向链表,链表表头均放置在各自所属的处理核心上,可用自旋锁或者全局信号量管理互斥访问。
优选地,步骤S2)中,所述用户堆是一块可以用于创建全局数据存储器的存储区域,从用户堆缓冲池和数据缓冲池中创建;
其中,所述用户堆的信息,包括名称、类型、所属处理核心号、控制用户堆访问的全局信号量、打开用户堆的次数、空闲区的首地址、空闲区的大小以及前和后空闲区的指针;
并且,用户堆的空闲区从数据缓冲池分配。
优选地,步骤S3)中,所述全局数据存储器的信息,包括名称、类型、所属处理核心号、控制全局数据存储器访问的全局信号量、打开全局数据存储器的次数、数据区的首地址、数据区的大小以及所属用户堆;
其中,多核多处理器并行系统线程通过全局数据存储器的名称来获得该全局数据存储器的句柄,并通过控制全局数据存储器访问的全局信号量,互斥访问该全局数据存储器;
并且,全局数据存储器的数据区从用户堆中分配。
优选地,步骤S4)中,线程申请获取全局数据存储器的访问权具体操作包括:
S41)获取控制全局数据存储器的全局信号量;
S42)若获得控制全局数据存储器的全局信号量,则说明全局数据存储器未被其它线程占用,返回该全局数据存储器的地址;
S43)若未获得控制全局数据存储器的全局信号量,则说明全局数据存储器被其它线程占用,通过该全局信号量将线程阻塞,直至获得该全局信号量。
优选地,步骤S4)中,线程申请释放全局数据存储器的访问权具体操作包括:
S44)校验全局数据存储器的地址是否正确;
S45)若全局数据存储器的地址正确,则释放控制全局数据存储器的全局信号量,使得其它线程可访问该全局数据存储器。
本发明的有益效果是:该全局数据存储器管理方法利用全局信号量,控制全局数据存储器的互斥访问,从而获取或释放全局数据存储器的访问权,规避了多核多处理器并行系统中多个线程同时访问同一全局资源造成的数据错误问题,具有安全、高效的特点。
附图说明
图1为本发明实施例应用的一种多核多处理器并行系统的结构框图;
图2为本发明实施例应用的一种多核多处理器并行系统全局数据存储器管理方法原理;
图3为本发明实施例应用的系统初始化流程图;
图4为本发明实施例应用的全局数据存储器名表结构;
图5为本发明实施例应用的线程获取全局数据存储器访问权流程图;
图6为本发明实施例应用的线程释放全局数据存储器访问权流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
一种基于多核多处理器并行系统的全局数据存储器管理方法,该全局数据存储器管理方法包括:
S1)多核多处理器并行系统的各处理核心进行系统初始化,通过SRIO映射一段共享存储空间用于存储全局数据存储器、用户堆与全局数据存储器名表。
其中,所述系统初始化的过程包括:
S11)各处理核心均初始化SRIO,通过SRIO映射一段共享存储空间用于存储全局数据存储器、用户堆与全局数据存储器名表;
S12)选取任一处理核心为主处理核心,创建并初始化一张共享的全局数据存储器名表,用于记录所有已创建的用户堆和全局数据存储器;
所述全局数据存储器名表的内容包括控制名表互斥访问的全局信号量、所有已创建的用户堆数目、所有已创建的用户堆信息、所有已创建的全局数据存储器数目,以及所有已创建的全局数据存储器信息;
S13)在各处理核心映射出的共享存储空间中,创建用户堆缓冲池、数据缓冲池和全局数据存储器缓冲池。
所述用户堆缓冲池、数据缓冲池和全局数据存储器缓冲池,为带表头指针的双向链表,链表表头均放置在各自所属的处理核心上,可用自旋锁或者全局信号量管理互斥访问。
S2)所述各处理核心创建线程,从线程所属处理核心对应的用户堆缓冲池和数据缓冲池中创建用户堆,将用户堆信息填入全局数据存储器名表。
所述用户堆是一块可以用于创建全局数据存储器的存储区域,从用户堆缓冲池和数据缓冲池中创建;
其中,所述用户堆的信息,包括名称、类型、所属处理核心号、控制用户堆访问的全局信号量、打开用户堆的次数、空闲区的首地址、空闲区的大小以及前和后空闲区的指针;
并且,用户堆的空闲区从数据缓冲池分配。
S3)从线程所属处理核心对应的全局数据存储器缓冲池和用户堆中创建全局数据存储器,将全局数据存储器信息填入全局数据存储器名表。
所述全局数据存储器的信息,包括名称、类型、所属处理核心号、控制全局数据存储器访问的全局信号量、打开全局数据存储器的次数、数据区的首地址、数据区的大小以及所属用户堆;
其中,多核多处理器并行系统线程通过全局数据存储器的名称来获得该全局数据存储器的句柄,并通过控制全局数据存储器访问的全局信号量,互斥访问该全局数据存储器;
并且,全局数据存储器的数据区从用户堆中分配。
S4)线程申请获取全局数据存储器或线程申请释放全局数据存储器,通过全局信号量管理全局数据存储器的互斥访问,从而获取或释放全局数据存储器的访问权。
其中,线程申请获取全局数据存储器的访问权具体操作包括:
S41)获取控制全局数据存储器的全局信号量;
S42)若获得控制全局数据存储器的全局信号量,则说明全局数据存储器未被其它线程占用,返回该全局数据存储器的地址;
S43)若未获得控制全局数据存储器的全局信号量,则说明全局数据存储器被其它线程占用,通过该全局信号量将线程阻塞,直至获得该全局信号量。
其中,线程申请释放全局数据存储器的访问权具体操作包括:
S44)校验全局数据存储器的地址是否正确;
S45)若全局数据存储器的地址正确,则释放控制全局数据存储器的全局信号量,使得其它线程可访问该全局数据存储器。
所述多核多处理器并行系统的处理器节点数至少有1个;所述处理器节点的处理核心至少有1个;并且所述处理器节点间或处理核心支持SRIO总线互连。
实施例
需要说明的是:
1)如图1所示,本实施例是在一个嵌入式多核多处理器并行系统上实施的实施例;
2)本实施例应用的嵌入式多核多处理器并行系统,包含四块处理板,分别为S0,S1,S2,S3,其中处理板S0、S1、S2包含两片MPC8641D双核处理器和一个SRIO交换设备,处理板S3包含一片MPC8641D双核处理器和一个SRIO交换设备,其中每片MPC8641D处理器包含两个e600处理核心,处理核心分别为C0,C1,……,Ci,……,C13,选定处理核心C0为主处理核心;
3)处理核心C0上有一个线程A,用于申请获取全局数据存储器访问权;处理核心C13上有一个线程B,用于申请释放全局数据存储器访问权;
4)本实施例应用的MPC8641D处理器均支持SRIO总线互连,每片MPC8641D双核处理器之间通过SRIO交换设备连接;
5)本实施例是基于SRIO的多核多处理器并行系统。
如图2所示,本实施例是基于多核多处理器并行系统的全局数据存储器管理方法,其包括以下步骤:
S1)MPC8641D多核多处理器并行系统的各处理核心进行系统初始化,通过SRIO映射一段共享存储空间用于存储全局数据存储器、用户堆与全局数据存储器名表。
S2)各e600处理核心创建线程,从线程所属处理核心对应的用户堆缓冲池和数据缓冲池中创建用户堆,将用户堆信息填入全局数据存储器名表。
S3)从线程所属处理核心对应的全局数据存储器缓冲池和用户堆中创建全局数据存储器,将全局数据存储器信息填入全局数据存储器名表。
S4)线程申请获取或释放全局数据存储器,通过全局信号量管理全局资源互斥访问,从而获取或释放全局数据的访问权。
如图3所示,步骤S1)所述系统初始化过程具体包括:
S11)各e600处理核心均初始化SRIO,通过SRIO映射一段共享存储空间用于存储全局数据存储器、用户堆和全局数据存储器名表;
S12)选取处理核心C0为主处理核心,创建并初始化一张共享的全局数据存储器名表,用于记录所有已创建的用户堆和全局数据存储器;
S13)在各e600处理核心映射出的共享存储空间中,创建用户堆缓冲池、数据缓冲池和全局数据存储器缓冲池。
其中,步骤S11)中,各e600处理核心均从本地地址空间映射长度为4M字节的空间到SRIO地址空间作为共享内存,供MPC8641D多核多处理器并行系统所有处理核心访问,共享内存的空间首地址依次为0xA4000000,0xA4400000,……,0xA4000000+i*0x400000,……,0xA4000000+13*0x400000。
如图4所示,步骤S12)中,所述全局数据存储器名表的内容包括控制名表互斥访问的全局信号量、所有已创建的用户堆数目、所有已创建的用户堆信息、所有已创建的全局数据存储器数目、以及所有已创建的全局数据存储器信息。
其中,步骤S13)中,所述用户堆缓冲池、数据缓冲池和全局数据存储器缓冲池,为带表头指针的双向链表,链表表头均放置在各自所属的处理核心上,可用自旋锁或者全局信号量管理互斥访问。
如图4所示,步骤S2)中,所述用户堆是一块可以用于创建全局数据存储器的存储区域,从用户堆缓冲池和数据缓冲池创建。
其中,所述用户堆的信息,包括名称、类型、所属处理核心号、控制用户堆访问的全局信号量、打开用户堆的次数、空闲区的首地址、空闲区的大小以及前、后空闲区的指针。
其中,用户堆的空闲区从数据缓冲池分配。
如图4所示,步骤S3)中,所述全局数据存储器的信息包括名称、类型、所属处理核心号、控制全局数据存储器访问的全局信号量、打开全局数据存储器的次数、数据区的首地址、数据区的大小以及所属用户堆。
其中,多核多处理器并行系统线程通过全局数据存储器的名称来获得该全局数据存储器的句柄,并通过控制全局数据存储器访问的全局信号量,互斥访问该全局数据存储器。
其中,全局数据存储器的数据区从用户堆中分配。
如图5所示,步骤S4)中,线程A申请获取全局数据存储器访问权的操作具体包括:
S41)获取控制全局数据存储器的全局信号量;
S42)若获得控制全局数据存储器的全局信号量,则说明全局数据存储器未被其它线程占用,返回该全局数据存储器的地址;
S43)若未获得控制全局数据存储器的全局信号量,则说明全局数据存储器被其它线程占用,通过该全局信号量将线程阻塞,直至获得该全局信号量。
如图6所示,步骤S4)中,线程B申请释放全局数据存储器访问权的操作具体包括:
S44)校验全局数据存储器的地址是否正确;
S45)若全局数据存储器的地址正确,则释放控制全局数据存储器的全局信号量,使得其它线程可访问该全局数据存储器。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。
此外,应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施例中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。
Claims (6)
1.一种基于多核多处理器并行系统的全局数据存储器管理方法,其特征在于,该全局数据存储器管理方法包括:
S1)多核多处理器并行系统的各处理核心进行系统初始化,通过SRIO映射一段共享存储空间用于存储全局数据存储器、用户堆与全局数据存储器名表;
步骤S1)中,所述系统初始化的过程包括:
S11)各处理核心均初始化SRIO,通过SRIO映射一段共享存储空间用于存储全局数据存储器、用户堆与全局数据存储器名表;
S12)选取任一处理核心为主处理核心,创建并初始化一张共享的全局数据存储器名表,用于记录所有已创建的用户堆和全局数据存储器;
步骤S12)中,所述全局数据存储器名表的内容包括控制名表互斥访问的全局信号量、所有已创建的用户堆数目、所有已创建的用户堆信息、所有已创建的全局数据存储器数目,以及所有已创建的全局数据存储器信息;
S13)在各处理核心映射出的共享存储空间中,创建用户堆缓冲池、数据缓冲池和全局数据存储器缓冲池;
步骤S13)中,所述用户堆缓冲池、数据缓冲池和全局数据存储器缓冲池,为带表头指针的双向链表,链表表头均放置在各自所属的处理核心上,可用自旋锁或者全局信号量管理互斥访问;
S2)所述各处理核心创建线程,从线程所属处理核心对应的用户堆缓冲池和数据缓冲池中创建用户堆,将用户堆信息填入全局数据存储器名表;
S3)从线程所属处理核心对应的全局数据存储器缓冲池和用户堆中创建全局数据存储器,将全局数据存储器信息填入全局数据存储器名表;
S4)线程申请获取或释放全局数据存储器,通过全局信号量管理全局数据存储器的互斥访问,从而获取或释放全局数据存储器的访问权。
2.根据权利要求1所述的基于多核多处理器并行系统的全局数据存储器管理方法,其特征在于:所述多核多处理器并行系统的处理器节点数至少有1个;所述处理器节点的处理核心至少有1个;并且所述处理器节点间或处理核心支持SRIO总线互连。
3.根据权利要求1所述的基于多核多处理器并行系统的全局数据存储器管理方法,其特征在于:步骤S2)中,所述用户堆是一块用于创建全局数据存储器的存储区域,从用户堆缓冲池和数据缓冲池中创建;
其中,所述用户堆的信息,包括名称、类型、所属处理核心号、控制用户堆访问的全局信号量、打开用户堆的次数、空闲区的首地址、空闲区的大小以及前和后空闲区的指针;
并且,用户堆的空闲区从数据缓冲池分配。
4.根据权利要求1所述的基于多核多处理器并行系统的全局数据存储器管理方法,其特征在于:步骤S3)中,所述全局数据存储器的信息,包括名称、类型、所属处理核心号、控制全局数据存储器访问的全局信号量、打开全局数据存储器的次数、数据区的首地址、数据区的大小以及所属用户堆;
其中,多核多处理器并行系统线程通过全局数据存储器的名称来获得该全局数据存储器的句柄,并通过控制全局数据存储器访问的全局信号量,互斥访问该全局数据存储器;
并且,全局数据存储器的数据区从用户堆中分配。
5.根据权利要求1所述的基于多核多处理器并行系统的全局数据存储器管理方法,其特征在于,步骤S4)中,线程申请获取全局数据存储器的访问权具体操作包括:
S41)获取控制全局数据存储器的全局信号量;
S42)若获得控制全局数据存储器的全局信号量,则说明全局数据存储器未被其它线程占用,返回该全局数据存储器的地址;
S43)若未获得控制全局数据存储器的全局信号量,则说明全局数据存储器被其它线程占用,通过该全局信号量将线程阻塞,直至获得该全局信号量。
6.根据权利要求1所述的基于多核多处理器并行系统的全局数据存储器管理方法,其特征在于:步骤S4)中,线程申请释放全局数据存储器的访问权具体操作包括:
S44)校验全局数据存储器的地址是否正确;
S45)若全局数据存储器的地址正确,则释放控制全局数据存储器的全局信号量,使得其它线程可访问该全局数据存储器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011360415.1A CN112486703B (zh) | 2020-11-27 | 2020-11-27 | 基于多核多处理器并行系统的全局数据存储器管理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011360415.1A CN112486703B (zh) | 2020-11-27 | 2020-11-27 | 基于多核多处理器并行系统的全局数据存储器管理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112486703A CN112486703A (zh) | 2021-03-12 |
CN112486703B true CN112486703B (zh) | 2024-02-06 |
Family
ID=74936255
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011360415.1A Active CN112486703B (zh) | 2020-11-27 | 2020-11-27 | 基于多核多处理器并行系统的全局数据存储器管理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112486703B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1818874A (zh) * | 2004-12-29 | 2006-08-16 | 英特尔公司 | 高效同步多线程 |
CN104063295A (zh) * | 2014-06-26 | 2014-09-24 | 北京控制工程研究所 | 一种多核操作系统可重构容错启动方法 |
CN104750624A (zh) * | 2013-12-27 | 2015-07-01 | 英特尔公司 | 群集级数据一致性模型和协议 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012136766A1 (en) * | 2011-04-06 | 2012-10-11 | Telefonaktiebolaget L M Ericsson (Publ) | Multi-core processors |
US9081628B2 (en) * | 2011-05-27 | 2015-07-14 | Intel Corporation | Detecting potential access errors in a multi-threaded application |
US9513886B2 (en) * | 2013-01-28 | 2016-12-06 | Arizona Board Of Regents On Behalf Of Arizona State University | Heap data management for limited local memory(LLM) multi-core processors |
US9658794B2 (en) * | 2015-05-08 | 2017-05-23 | Sonicwall Inc. | Two stage memory allocation using a cache |
-
2020
- 2020-11-27 CN CN202011360415.1A patent/CN112486703B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1818874A (zh) * | 2004-12-29 | 2006-08-16 | 英特尔公司 | 高效同步多线程 |
CN104750624A (zh) * | 2013-12-27 | 2015-07-01 | 英特尔公司 | 群集级数据一致性模型和协议 |
CN104063295A (zh) * | 2014-06-26 | 2014-09-24 | 北京控制工程研究所 | 一种多核操作系统可重构容错启动方法 |
Also Published As
Publication number | Publication date |
---|---|
CN112486703A (zh) | 2021-03-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8301717B2 (en) | Extended virtual memory system and method in a computer cluster | |
US6823472B1 (en) | Shared resource manager for multiprocessor computer system | |
US9183156B2 (en) | Read-copy update implementation for non-cache-coherent systems | |
US20130091331A1 (en) | Methods, apparatus, and articles of manufacture to manage memory | |
US7809918B1 (en) | Method, apparatus, and computer-readable medium for providing physical memory management functions | |
ES2581597T3 (es) | Método para crear una máquina virtual, monitor de máquinas virtuales y sistema de máquinas virtuales | |
KR101355105B1 (ko) | 캐시 일관성 보장을 위한 공유 가상 메모리 관리 장치 | |
JPH10240707A (ja) | 主記憶共有型マルチプロセッサ | |
BRPI1003466A2 (pt) | Método, dispositivo e sistema de suporte de hardware para o compartilhamento de memória virtual entre memória física local e remota | |
CN113674133A (zh) | Gpu集群共享显存系统、方法、装置及设备 | |
JP2004054933A (ja) | メモリ割当ての延期方法及び装置 | |
US8006064B2 (en) | Lock-free vector utilizing a resource allocator for assigning memory exclusively to a thread | |
Keeton et al. | The OpenFAM API: a programming model for disaggregated persistent memory | |
CN112486704B (zh) | 一种基于共享存储的多核多处理器同步与通信系统 | |
US10331570B2 (en) | Real time memory address translation device | |
CN112486702B (zh) | 基于多核多处理器并行系统的全局消息队列实现方法 | |
Luchangco et al. | On the uncontended complexity of consensus | |
CN115543952A (zh) | 用于分布式系统中的共享存储器访问api的方法和系统 | |
CN112486703B (zh) | 基于多核多处理器并行系统的全局数据存储器管理方法 | |
US10417121B1 (en) | Monitoring memory usage in computing devices | |
WO2017142525A1 (en) | Allocating a zone of a shared memory region | |
US7209920B2 (en) | Low-overhead consistency check for shared resource using flux indicator | |
Chen et al. | Lock-free high-performance hashing for persistent memory via PM-aware holistic optimization | |
Newhall et al. | Nswap2L: Transparently managing heterogeneous cluster storage resources for fast swapping | |
US6446182B1 (en) | Method for a memory organization by physical zones in a computerized or data processing machine or arrangement and the computerized or data processing machine or arrangement for using the method |
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 |