基于多核多处理器并行系统的全局数据存储器管理方法技术方案

技术编号:27655541 阅读:25 留言:0更新日期:2021-03-12 14:17
本发明专利技术公开了一种基于多核多处理器并行系统的全局数据存储器管理方法,其包括:各处理核心系统初始化;各处理核心创建线程,从线程所属处理核心对应的用户堆缓冲池和数据缓冲池中创建用户堆,将用户堆信息填入全局数据存储器名表;从线程所属处理核心对应的全局数据存储器缓冲池和用户堆中创建全局数据存储器,将全局数据存储器信息填入全局数据存储器名表;通过全局信号量管理全局数据存储器的互斥访问,从而获取或释放全局数据存储器的访问权。该方法利用全局信号量,控制全局数据存储器的互斥访问,从而获取或释放全局数据存储器的访问权,规避了多核多处理器并行系统中多个线程同时访问同一全局资源造成的数据错误问题。

【技术实现步骤摘要】
基于多核多处理器并行系统的全局数据存储器管理方法
本专利技术涉及一种存储器管理方法,具体为一种基于多核多处理器并行系统的全局数据存储器管理方法,属于嵌入式计算机领域。
技术介绍
随着计算机系统的发展以及领域应用对实时性、并行性需求的日益增长,多核多处理器并行系统己成为嵌入式计算机系统发展的重要趋势。随着多核处理器并行系统核心数和处理器节点的增多,系统需要提供一整套高效可靠的多核间线程交互机制才能完成多核处理器之间的协同工作,实现资源的共享访问与线程的分配。当多核多处理器并行系统中多个线程同时访问同一全局资源时,若不对该全局资源加以访问控制,容易出现数据错误,导致线程交互失败甚至系统崩溃。
技术实现思路
本专利技术的目的就在于为了解决上述问题而提供一种基于多核多处理器并行系统的全局数据存储器管理方法,利用全局信号量,管理全局数据存储器的互斥访问,从而规避了多核多处理器并行系统中多个线程同时访问同一全局资源造成的数据错误问题,保证系统正常安全运行,具有安全、高效的特点。本专利技术通过以下技术方案来实现上述目的:一种基于多核多处理器并行系统的全局数据存储器管理方法,该全局数据存储器管理方法包括: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)所述各处理核心创建线程,从线程所属处理核心对应的用户堆缓冲池和数据缓冲池中创建用户堆,将用户本文档来自技高网...

【技术保护点】
1.一种基于多核多处理器并行系统的全局数据存储器管理方法,其特征在于,该全局数据存储器管理方法包括:/nS1)多核多处理器并行系统的各处理核心进行系统初始化,通过SRIO映射一段共享存储空间用于存储全局数据存储器、用户堆与全局数据存储器名表;/nS2)所述各处理核心创建线程,从线程所属处理核心对应的用户堆缓冲池和数据缓冲池中创建用户堆,将用户堆信息填入全局数据存储器名表;/nS3)从线程所属处理核心对应的全局数据存储器缓冲池和用户堆中创建全局数据存储器,将全局数据存储器信息填入全局数据存储器名表;/nS4)线程申请获取或释放全局数据存储器,通过全局信号量管理全局数据存储器的互斥访问,从而获取或释放全局数据存储器的访问权。/n

【技术特征摘要】
1.一种基于多核多处理器并行系统的全局数据存储器管理方法,其特征在于,该全局数据存储器管理方法包括:
S1)多核多处理器并行系统的各处理核心进行系统初始化,通过SRIO映射一段共享存储空间用于存储全局数据存储器、用户堆与全局数据存储器名表;
S2)所述各处理核心创建线程,从线程所属处理核心对应的用户堆缓冲池和数据缓冲池中创建用户堆,将用户堆信息填入全局数据存储器名表;
S3)从线程所属处理核心对应的全局数据存储器缓冲池和用户堆中创建全局数据存储器,将全局数据存储器信息填入全局数据存储器名表;
S4)线程申请获取或释放全局数据存储器,通过全局信号量管理全局数据存储器的互斥访问,从而获取或释放全局数据存储器的访问权。


2.根据权利要求1所述的基于多核多处理器并行系统的全局数据存储器管理方法,其特征在于:所述多核多处理器并行系统的处理器节点数至少有1个;所述处理器节点的处理核心至少有1个;并且所述处理器节点间或处理核心支持SRIO总线互连。


3.根据权利要求1所述的基于多核多处理器并行系统的全局数据存储器管理方法,其特征在于:步骤S1)中,所述系统初始化的过程包括:
S11)各处理核心均初始化SRIO,通过SRIO映射一段共享存储空间用于存储全局数据存储器、用户堆与全局数据存储器名表;
S12)选取任一处理核心为主处理核心,创建并初始化一张共享的全局数据存储器名表,用于记录所有已创建的用户堆和全局数据存储器;
S13)在各处理核心映射出的共享存储空间中,创建用户堆缓冲池、数据缓冲池和全局数据存储器缓冲池。


4.根据权利要求3所述的基于多核多处理器并行系统的全局数据存储器管理方法,其特征在于:步骤S12)中,所述全局数据存储器名表的内容包括控制名表互斥访问的全局信号量、所有已创建的用户堆数目、所有已创建的用户堆信息、所有已创建的全局数据存储器数目,以及所有已创建的全局数据存储器信息。


5.根据权利要求3所述的基于多核多处理器并行系统的全局数据存储器管理方法,其特征在于:步骤S13)中,所述用户堆缓冲池、数据缓冲池和...

【专利技术属性】
技术研发人员:舒红霞胡舒婷常轩
申请(专利权)人:中船重工武汉凌久电子有限责任公司
类型:发明
国别省市:湖北;42

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1