队列管理方法和队列管理器、队列消息的处理方法和系统技术方案

技术编号:2911749 阅读:268 留言:0更新日期:2012-04-11 18:40
一种队列管理方法,包括:初始设置队列指针和队列计数器,所述队列指针包括头指针、虚尾指针和实尾指针;发送对应于接收到的队列消息的写请求,并根据发送的写请求的数量累加虚尾指针;根据接收到的写结束确认更新队列计数器,并根据所述写结束确认所包含的元素空间的地址和更新后的队列计数器更新实尾指针,所述头指针和实尾指针之间的元素空间为可消费的队列空间。本发明专利技术还公开了一种队列管理器、队列消息的处理方法和系统,不需要顺序执行写请求也能保证队列尾指针的更新和数据写入队列的元素空间的同步,可适用于在大规模并行计算机系统上实现高效的基于队列消息的传送机制,扩大了队列消息的应用范围。

【技术实现步骤摘要】

本专利技术涉及计算机技术,特别是涉及一种队列管理方法和队列管理器、队列消息的处理方法和系统
技术介绍
在大规模并行计算机网络系统中,共享存储和消息传递是并行计算的两个主要编程模型。通常,系统包含有多个节点,每个节点内有多个处理器(CPU),节点内存储器为分布共享存储器结构,因此,节点内的CPU可以直接读写本节点内的所有存储器(即共享存储)的数据;而当一个节点的CPU要访问另一个节点的存储器时,需要通过消息传递来实现。采用队列消息是实现一个节点的CPU向另一个节点的存储器写入数据的一种方式,队列消息是将源存储空间上的数据发送到目的方指定的队列上,队列是预先分配(一般是由软件配置)的一段连续的存储器的物理空间或虚空间,队列的基本单位即用于存放一个队列元素的存储空间称为元素空间。通常来说,队列消息的目的方(即接收方)的队列采用的是循环队列,接收方通过队列管理器和软件管理队列:队列的基地址、队列容量、队列属性等信息可以由软件初始化配置;在队列元素的生产(即写入数据)后通过队列管理器修改队列尾指针;在队列元素的消费(即读取数据)后通过软件修改队列头指针。在申请号为200610057353.0的中国专利技术专利申请中可以找到有关队列及其数据存储方法的信息。在队列消息传递时,发送方并不知道目的队列的地址,只需要知道一个队列号,并发送包含有队列号和队列元素的队列消息;当接收方的队列管理器接收到队列消息时,根据队列的初始化配置和发送方发送的队列号,向队-->列所在的存储器发送对应的包含有待写入的数据和待写入数据的元素空间的地址的写请求,收到存储器返回的写结束确认后将队列尾指针加一,以指示队列最新空闲的元素空间;进程在队列头指针的指示下消费队列,每次取走队列的一部分队列元素后,根据消费的队列元素的数量更新队列头指针,以指示队列中下一个可消费的元素空间。进程可使用中断或查询方式消费队列,无论采用哪种方式,都要先读取队列管理器中相应队列的头指针和尾指针,判断队列中有多少队列元素可以消费以及队列头元素的位置(可消费的数据的首地址),然后读取相应元素空间的队列元素。这就存在队列尾指针的更新和消息数据写入队列的元素空间两者之间的同步问题,在队列管理中,必须保证消息数据已写入队列的元素空间后,才能修改队列尾指针,以确保头指针和尾指针之间的队列元素可以消费,即进程能够访问到有效的数据。然而,在采用多处理器和分布共享存储器的并行计算机网络系统中,由于存储器的分布特性,或者,由于要支持置无效、写更新等缓存(CACHE)一致性协议,写结束确认的返回顺序一般和写请求的发送顺序不一致,也就是说,写请求不是顺序执行,而是乱序执行,这样就限制了队列消息的应用,队列管理器无法根据收到的写结束确认所包含的元素空间的地址来按序对队列尾指针加一。为了使队列管理器根据收到的写结束确认所包含的元素空间的地址来按序对队列尾指针加一,就需要保证队列的写请求是顺序执行。一种解决方法是串行执行写请求,队列管理器要收到上一个写请求的写结束确认后,才开始处理新的写请求,这种方法降低了队列消息的传送效率。另一种解决方法由硬件和软件共同保证写请求的顺序执行,例如硬件确保写请求和写结束确认在通路上按序流动(即写结束确认的返回顺序和写请求的发送顺序一致),软件则限制队列的存储空间为不可缓存空间,确保队-->列的存储空间无缓存一致性问题。采用硬件和软件结合的方法不仅不利于编程,也限制了硬件的实现。
技术实现思路
本专利技术解决的问题是,提供一种队列管理方法和队列管理器、队列消息的处理方法和系统,不需要顺序执行写请求就能保证队列尾指针的更新和数据写入队列的元素空间的同步,因而扩大了队列消息的应用范围。为解决上述问题,本专利技术提供一种队列管理方法,包括下述步骤:初始设置队列指针和队列计数器,所述队列指针包括头指针、虚尾指针和实尾指针,所述头指针和实尾指针之间的元素空间为可消费的队列空间;发送对应于接收到的队列消息的写请求,并根据发送的写请求的数量累加虚尾指针;根据接收到的写结束确认更新队列计数器,并根据所述写结束确认所包含的元素空间的地址和更新后的队列计数器更新实尾指针。可选的,所述初始设置队列指针和队列计数器包括:在系统初始状态时,将队列指针指向队列的第一个元素空间的位置,将队列计数器清零。在本专利技术的一种实施方式中,所述队列指针还包括最大捕获尾指针,指向已写入数据的最后一个元素空间的后一元素空间的位置;所述队列计数器为最大捕获写结束计数器,对所述最大捕获尾指针和实尾指针之间已写入数据的元素空间的数量进行计数。所述根据接收到的写结束确认更新队列计数器,并根据所述写结束确认所包含的元素空间的地址和更新后的队列计数器更新实尾指针,包括下述步骤:根据接收到的写结束确认的数量,累加最大捕获写结束计数器的计数值;从接收到的写结束确认中获取已写入数据的元素空间的地址;在所述获取的元素空间的地址大于或等于最大捕获尾指针的值时,将最-->大捕获尾指针指向所述已写入数据的元素空间的后一元素空间的位置;在所述最大捕获尾指针与实尾指针的差值等于最大捕获写结束计数器的计数值时,将实尾指针指向最大捕获尾指针所指向的位置,并将最大捕获写结束计数器清零。所述队列管理方法还包括:在虚尾指针和实尾指针的差值大于或等于预设的最大消息处理量时,阻塞新的队列消息直到实尾指针被更新,或者,丢弃新的队列消息并发送队列消息的失败确认给所述新的队列消息的发送方。在本专利技术的另一种实施方式中,所述队列指针还包括第一捕获尾指针和最大捕获尾指针,所述最大捕获尾指针指向已写入数据的最后一个元素空间的后一元素空间的位置,所述第一捕获尾指针在收到写结束确认并且实尾指针的值等于第一捕获尾指针的值时指向对应于所述写结束确认的元素空间的后一元素空间的位置;所述队列计数器包括对最大捕获尾指针和第一捕获尾指针之间已写入数据的元素空间的数量进行计数的最大捕获写结束计数器和对第一捕获尾指针和实尾指针之间已写入数据的元素空间的数量进行计数的第一捕获写结束计数器。所述根据所述写结束确认更新队列计数器,并根据所述写结束确认所包含的元素空间的地址和更新后的队列计数器更新实尾指针,包括下述步骤:从接收到的写结束确认中获取已写入数据的元素空间的地址;在实尾指针的值等于第一捕获尾指针的值时,将第一捕获尾指针、最大捕获尾指针指向所述已写入数据的元素空间的后一元素空间的位置,并将第一捕获写结束计数器加一;在实尾指针的值不等于第一捕获尾指针的值并且所述获取的元素空间的地址大于或等于第一捕获尾指针的值时,将最大捕获写结束计数器加一;在实尾指针的值不等于第一捕获尾指针的值并且所述获取的元素空间的地址小于第一捕获尾指针的值时,将第一捕获写结束计数器加一;-->在实尾指针的值不等于第一捕获尾指针的值并且在所述获取的元素空间的地址大于或等于最大捕获尾指针的值时,将最大捕获尾指针指向所述已写入数据的元素空间的后一元素空间的位置;在第一捕获写结束计数器更新后并且第一捕获尾指针与实尾指针的差值等于第一捕获写结束计数器的计数值时,将实尾指针指向第一捕获尾指针所指向的位置,再将第一捕获尾指针指向最大捕获尾指针所指向的位置,将第一捕获写结束计数器的计数值设为最大捕获写结束计数器的计数值,再将最大捕获写本文档来自技高网
...

【技术保护点】
一种队列管理方法,其特征在于,包括下述步骤: 初始设置队列指针和队列计数器,所述队列指针包括头指针、虚尾指针和实尾指针,所述头指针和实尾指针之间的元素空间为可消费的队列空间; 发送对应于接收到的队列消息的写请求,并根据发送的写请求的数量累加虚尾指针; 根据接收到的写结束确认更新队列计数器,并根据所述写结束确认所包含的元素空间的地址和更新后的队列计数器更新实尾指针。

【技术特征摘要】
1.一种队列管理方法,其特征在于,包括下述步骤:初始设置队列指针和队列计数器,所述队列指针包括头指针、虚尾指针和实尾指针,所述头指针和实尾指针之间的元素空间为可消费的队列空间;发送对应于接收到的队列消息的写请求,并根据发送的写请求的数量累加虚尾指针;根据接收到的写结束确认更新队列计数器,并根据所述写结束确认所包含的元素空间的地址和更新后的队列计数器更新实尾指针。2.根据权利要求1所述的队列管理方法,其特征在于,所述初始设置队列指针和队列计数器包括:在系统初始状态时,将队列指针指向队列的第一个元素空间的位置,将队列计数器清零。3.根据权利要求1所述的队列管理方法,其特征在于,所述队列指针还包括最大捕获尾指针,指向已写入数据的最后一个元素空间的后一元素空间的位置;所述队列计数器为最大捕获写结束计数器,对所述最大捕获尾指针和实尾指针之间已写入数据的元素空间的数量进行计数。4.根据权利要求3所述的队列管理方法,其特征在于,所述根据接收到的写结束确认更新队列计数器,并根据所述写结束确认所包含的元素空间的地址和更新后的队列计数器更新实尾指针,包括下述步骤:根据接收到的写结束确认的数量,累加最大捕获写结束计数器的计数值;从接收到的写结束确认中获取已写入数据的元素空间的地址;在所述获取的元素空间的地址大于或等于最大捕获尾指针的值时,将最大捕获尾指针指向已写入数据的元素空间的后一元素空间的位置;在所述最大捕获尾指针与实尾指针的差值等于最大捕获写结束计数器的计数值时,将实尾指针指向最大捕获尾指针所指向的位置,并将最大捕获写结束计数器清零。5.根据权利要求4所述的队列管理方法,其特征在于,还包括:在虚尾指针和实尾指针的差值大于或等于预设的最大消息处理量时,阻塞新的队列消息直到实尾指针被更新,或者,丢弃新的队列消息并发送队列消息的失败确认给所述新的队列消息的发送方。6.根据权利要求1所述的队列管理方法,其特征在于,所述队列指针还包括第一捕获尾指针和最大捕获尾指针,所述最大捕获尾指针指向已写入数据的最后一个元素空间的后一元素空间的位置,所述第一捕获尾指针在收到写结束确认并且实尾指针的值等于第一捕获尾指针的值时指向对应于所述写结束确认的元素空间的后一元素空间的位置;所述队列计数器包括对最大捕获尾指针和第一捕获尾指针之间已写入数据的元素空间的数量进行计数的最大捕获写结束计数器和对第一捕获尾指针和实尾指针之间已写入数据的元素空间的数量进行计数的第一捕获写结束计数器。7.根据权利要求6所述的队列管理方法,其特征在于,所述根据接收到的写结束确认更新队列计数器,并根据所述写结束确认所包含的元素空间的地址和更新后的队列计数器更新实尾指针,包括下述步骤:从接收到的写结束确认中获取已写入数据的元素空间的地址;在实尾指针的值等于第一捕获尾指针的值时,将第一捕获尾指针、最大捕获尾指针指向所述已写入数据的元素空间的后一元素空间的位置,并将第一捕获写结束计数器加一;在实尾指针的值不等于第一捕获尾指针的值并且所述获取的元素空间的地址大于或等于第一捕获尾指针的值时,将最大捕获写结束计数器加一;在实尾指针的值不等于第一捕获尾指针的值并且所述获取的元素空间的地址小于第一捕获尾指针的值时,将第一捕获写结束计数器加一;在实尾指针的值不等于第一捕获尾指针的值并且所述获取的元素空间的地址大于或等于最大捕获尾指针的值时,将最大捕获尾指针指向所述已写入数据的元素空间的后一元素空间的位置;在第一捕获写结束计数器更新后并且第一捕获尾指针与实尾指针的差值等于第一捕获写结束计数器的计数值时,将实尾指针指向第一捕获尾指针所指向的位置,再将第一捕获尾指针指向最大捕获尾指针所指向的位置,将第一捕获写结束计数器的计数值设为最大捕获写结束计数器的计数值,再将最大捕获写结束计数器清零。8.一种队列管理器,其特征在于,包括:队列指针寄存器,储存队列指针,所述队列指针包括头指针、虚尾指针和实尾指针,所述头指针和实尾指针之间的元素空间为可消费的队列空间;队列计数器,对已写入数据的元素空间的数量进行计数;设置单元,初始设置队列指针寄存器和队列计数器;发送单元,发送对应于接收到的队列消息的写请求,并根据发送的写请求的数量累加虚尾指针;更新单元,根据接收到的写结束确认更新队列计数器,并根据所述写结束确认所包含的元素空间的地址和更新后的队列计数器更新实尾指针。9.根据权利要求8所述的队列管理器,其特征在于,所述设置单元在系统初始状态时,将队列指针指向队列的第一个元素空间的位置,将队列计数器清零。10.根据权利要求8所述的队列管理器,其特征在于,所述队列指针还包括最大捕获尾指针,指向已写入数据的最后一个元素空间的后一元素空间的位置;所述队列计数器为最大捕获写结束计数器,对所述最大捕获尾指针和实尾指针之间已写入数据的元素空间的数量进行计数。11.根据权利要求10所述的队列管理器,其特征在于,所述更新单元包括:累加单元,根据接收到的写结束确认的数量,累加最大捕获写结束计数器的计数值;获取单元,从接收到的写结束确认中获取已写入数据的元素空间的地址;第一更新单元,在所述获取的元素空间的地址大于或等于最大捕获尾指针的值时,将最大捕获尾指针指向所述已写入数据的元素空间的后一元素空间的位置;第二更新单元,在所述最大捕获尾指针与实尾指针的差值等于最大捕获写结束计数器的计数值时,将实尾指针指向最大捕获尾指针所指向的位置,并将最大捕获写结束计数器清零。12.根据权利要求11所述的队列管理器,其特征在于,还包括:阻止单元,在虚尾指针和实尾指针的差值大于或等于预设的最大消息处理量时,阻塞新的队列消息直到实尾指针被更新,或者,丢弃新的队列消息并发送队列消息的失败确认给所述新的队列消息的发送方。13.根据权利要求8所述的队列管理器,其特征在于,所述队列指针还包...

【专利技术属性】
技术研发人员:卢宏生许勇郑为华李媛范正兵汪崇学朱巍陈健
申请(专利权)人:无锡江南计算技术研究所
类型:发明
国别省市:32[中国|江苏]

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

1
相关领域技术
  • 暂无相关专利