【技术实现步骤摘要】
本专利技术涉及计算机技术,特别是涉及一种队列管理方法和队列管理器、队列消息的处理方法和系统。
技术介绍
在大规模并行计算机网络系统中,共享存储和消息传递是并行计算的两个主要编程模型。通常,系统包含有多个节点,每个节点内有多个处理器(CPU),节点内存储器为分布共享存储器结构,因此,节点内的CPU可以直接读写本节点内的所有存储器(即共享存储)的数据;而当一个节点的CPU要访问另一个节点的存储器时,需要通过消息传递来实现。采用队列消息是实现一个节点的CPU向另一个节点的存储器写入数据的一种方式,队列消息是将源存储空间上的数据发送到目的方指定的队列上,队列是预先分配(一般是由软件配置)的一段连续的存储器的物理空间或虚空间,队列的基本单位即用于存放一个队列元素的存储空间称为元素空间。通常来说,队列消息的目的方(即接收方)的队列采用的是循环队列,接收方通过队列管理器和软件管理队列:队列的基地址、队列容量、队列属性等信息可以由软件初始化配置;在队列元素的生产(即写入数据)后通过队列管理器修改队列尾指针;在队列元素的消费(即读取数据)后通过软件修改队列头指针。在申请号为200610057353.0的中国专利技术专利申请中可以找到有关队列及其数据存储方法的信息。在队列消息传递时,发送方并不知道目的队列的地址,只需要知道一个队列号,并发送包含有队列号和队列元素的队列消息;当接收方的队列管理器接收到队列消息时,根据队列的初始化配置和发送方发送的队列号,向队-->列所在的存储器发送对应的包含有待写入的数据和待写入数据的元素空间的地址的写请求,收到存储器返回的写结束确认后将队列 ...
【技术保护点】
一种队列管理方法,其特征在于,包括下述步骤: 初始设置队列指针和队列计数器,所述队列指针包括头指针、虚尾指针和实尾指针,所述头指针和实尾指针之间的元素空间为可消费的队列空间; 发送对应于接收到的队列消息的写请求,并根据发送的写请求的数量累加虚尾指针; 根据接收到的写结束确认更新队列计数器,并根据所述写结束确认所包含的元素空间的地址和更新后的队列计数器更新实尾指针。
【技术特征摘要】
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[中国|江苏]
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。