CN103353851A - 一种管理任务的方法和设备 - Google Patents

一种管理任务的方法和设备 Download PDF

Info

Publication number
CN103353851A
CN103353851A CN2013102723918A CN201310272391A CN103353851A CN 103353851 A CN103353851 A CN 103353851A CN 2013102723918 A CN2013102723918 A CN 2013102723918A CN 201310272391 A CN201310272391 A CN 201310272391A CN 103353851 A CN103353851 A CN 103353851A
Authority
CN
China
Prior art keywords
queue
task
priority
mode
processing unit
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
Application number
CN2013102723918A
Other languages
English (en)
Inventor
高素月
王渝
张晓飞
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN2013102723918A priority Critical patent/CN103353851A/zh
Publication of CN103353851A publication Critical patent/CN103353851A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Computer And Data Communications (AREA)

Abstract

本发明的至少两个方面公开一种管理任务的方法、任务处理装置和通信设备,所述方法包括:存储器接收发起访问核或接收访问核配置的任务;所述存储器以至少一个队列queue的方式存储所有任务,其中,每个队列queue采用先进先出FIFO方式或堆栈方式或随机方式存储任务。上述技术方案,可以提高任务的处理速率,减少逻辑面积,降低成本,而且扩展性较好。

Description

一种管理任务的方法和设备
技术领域
本发明涉及通信领域,尤其涉及一种管理任务的方法和设备。
背景技术
为减轻中央处理机(CPU,Central Processing Unit)的负担,提高CPU的利用率,平衡CPU、内存、总线性能以达到高吞吐率,一种完全由硬件执行数据搬移的工作方式是迫切需求。现有技术中,通过一个独立于处理器的总线主控制器执行数据搬移操作,不需要经过CPU,数据被直接在存储器之间进行搬移,减少处理器的开销。
高级可扩展接口(AXI,Advanced eXtensible Interface)是一种总线协议,该协议是ARM公司提出的高级微控制器总线结构(AMBA,Advanced Microcontroller Bus Architecture)3.0协议中最重要的部分,是一种面向高性能、高带宽、低延迟的片内总线。它的地址/控制和数据相位是分离的,支持不对齐的数据传输,同时在突发传输中,只需要首地址,同时分离的读写数据通道、并支持显著传输访问和乱序访问。AXI是AMBA中一个新的高性能协议。AXI技术丰富了现有的AMBA标准内容,满足超高性能和复杂的片上系统(SoC,System on a Chip)设计的需求。
AXI总线是一种多通道传输总线,将地址、读数据、写数据、握手信号在不同的通道中发送,不同的访问之间顺序可以打乱,用总线号(BUSID)来表示各个访问的归属。主设备在没有得到返回数据的情况下可发出至少两个读写操作。读回的数据顺序可以被打乱,同时还支持非对齐数据访问。
AXI总线还定义了在进出低功耗节电模式前后的握手协议。规定如何通知进入低功耗模式,何时关断时钟,何时开启时钟,如何退出低功耗模式。这使得所有IP Core(Intellectual Property core,知识产权核或IP核)在进行功耗控制的设计时,有据可依,容易集成在统一的系统中。
AXI特点:单向通道体系结构。信息流只以单方向传输,简化时钟域间的桥接,减少门数量。当信号经过复杂的片上系统时,减少延时。支持多项数据交换。通过并行执行猝发操作,极大地提高了数据吞吐能力,可在更短的时间内完成任务,在满足高性能要求的同时,又减少了功耗。独立的地址和数据通道。地址和数据通道分开,能对每一个通道进行单独优化,可以根据需要控制时序通道,将时钟频率提到最高,并将延时降到最低。
AXI直接存储器存取通道(DMAC,Direct Memory Access Channel)就是基于AMBA AXI协议,面向SoC系统芯片应用而开发的低成本高性能IP。DMAC接收到传输请求后根据CPU的配置启动总线主控制器,向内存发出地址和读写控制信号,数据搬移完成以后通过中断的方式向CPU报告传送操作的完成。
现有技术中,直接内存存取(DMA,Direct Memory Access)进行数据搬移时,需要CPU配置任务;而目前DMA管理任务的方式都是采用通道的方式,如图1所示,为现有技术中一种通信设备的结构示意图。
如图1,所述通信设备包括至少两个CPU,至少两个数字信号处理器(DSP,Digital Signal Processor),至少一个硬件加速器(HAC,HardwareAccelerator),至少一个DMA,至少一个双倍速率同步动态随机存储器(DDR,Double Data Rate),至少一个层二存储器(L2M,Level2Memory),其中,一侧的CPU,DSP,HAC和DMA通过交叉开关矩阵或交叉开关(Crossbar)与另一侧的CPU,DDR,L2M和DSP通过X个通道(Ch,channel)交互,其中X为正整数。交叉开关互连由交叉开关(crossbar)以及crossbar接口逻辑构成,每个crossbar由一些地址线、数据线构成,crossbar接口逻辑主要由一些加载队列构成。交叉开关能够使连接在开关结构上的节点同时进行数据交换,保证了多核处理器在空间上处理数据的并行性,极大地提高了总线的带宽。
一个通道存储一个任务,如果配置通道个数为X,则最多可以存储X个任务。每个任务都采用逻辑寄存器的方式存储在通道中。至少两个通道采用仲裁的方式进行任务的处理。
但是,如果一个通道只能配置一个任务的信息,当通道忙时,不能配置下一个任务,只有当通道空闲时,才能配置下一个任务,所以一个通道中2个任务间有间隙,处理效率比较低,即硬件进行数据搬移时的效率较低,且至少两个通道的任务不能并行执行。进一步地,通道的配置信息全部通过逻辑寄存器的方式,配置在通道里面,面积比较大,可扩展性比较差。
因此,如何解决硬件进行数据搬移时的低效率,成为必须考虑的现实问题。
发明内容
本发明的多个方面提供一种管理任务的方法、任务处理装置和通信设备,能提高硬件进行数据搬移时的效率。
本发明的第一方面,提供了一种管理任务的方法,包括:存储器接收发起访问核或接收访问核配置的任务;所述存储器以至少一个队列queue的方式存储所有任务,其中,每个队列queue采用先进先出FIFO方式或堆栈方式或随机方式存储任务。
在第一种可能的实现方式中,根据第一方面,所述存储器中每个queue对应所述发起访问核或接收访问核内的一个存储单元,所述方法还包括:当所述发起访问核或接收访问核内的一个存储单元存储任务满时,所述存储器将多余的任务存储于所述存储单元对应的queue中;或,当所述发起访问核或接收访问核内的一个存储单元存储任务不满时,所述存储器将所述存储单元对应的queue内的任务发送给所述存储单元直到所述存储单元存满任务。
在第二种可能的实现方式中,结合第一方面或第一种可能的实现方式,每个所述queue的大小根据需求动态分配。
在第三种可能的实现方式中,结合第一方面或第一种可能的实现方式或第二种可能的实现方式,每个所述queue中的每个任务被设置一个标识位,用于标识该任务是否有效。
在第四种可能的实现方式中,结合第一方面或第一种可能的实现方式至第三种可能的实现方式的任意一种,所述标识位由所述发起访问核或接收访问核根据所述标识位的任务是否需要处理确定是否需要进行修改。
在第五种可能的实现方式中,结合第一方面或第一种可能的实现方式至第四种可能的实现方式的任意一种,每个所述queue中每个任务被配置优先级,用于标示各个任务进行处理的顺序。
在第六种可能的实现方式中,结合第一方面或第一种可能的实现方式至第五种可能的实现方式的任意一种,所述任务被要求处理时,采用优先级结合公平轮询的方式对各个任务进行仲裁。
在第七种可能的实现方式中,结合第一方面或第一种可能的实现方式至第六种可能的实现方式的任意一种,每个queue被配置优先级,用于标示各个queue进行处理的顺序;且每个所述queue中每个任务被配置优先级,用于标示各个任务进行处理的顺序。
在第八种可能的实现方式中,结合第一方面或第一种可能的实现方式至第七种可能的实现方式的任意一种,所述任务被要求处理时,先采用优先级结合公平轮询的方式对各个queue进行仲裁选出一个queue,然后采用优先级结合公平轮询的方式对所述选出的queue内的各个任务进行仲裁。
在第九种可能的实现方式中,结合第一方面或第一种可能的实现方式至第八种可能的实现方式的任意一种,至少两个queue被分组为至少两queue组,每个queue组被配置优先级,用于标示各个queue组进行处理的顺序;每个queue组内的每个queue被配置优先级,用于标示各个queue进行处理的顺序;每个所述queue中每个任务被配置优先级,用于标示各个任务进行处理的顺序。
在第十种可能的实现方式中,结合第一方面或第一种可能的实现方式至第九种可能的实现方式的任意一种,所述任务被要求处理时,先采用优先级结合公平轮询的方式对各个queue组进行仲裁选出一queue组;然后采用优先级结合公平轮询的方式对所述选出的queue组内的各个queue进行仲裁选出一个queue,再然后采用优先级结合公平轮询的方式对所述选出的queue内的各个任务进行仲裁。
本发明的第二方面,提供了一种存储器,包括:接收模块,用于接收发起访问核或接收访问核配置的任务;存储模块,用于以至少一个队列queue的方式存储所有任务,其中,每个队列queue采用先进先出FIFO方式或堆栈方式或随机方式存储任务。
在第一种可能的实现方式中,根据第二方面,所述存储单元中每个queue对应所述发起访问核或接收访问核内的一个存储单元,其中,所述存储模块,用于当所述发起访问核或接收访问核内的一个存储单元存储任务满时,将多余的任务存储于所述存储单元对应的queue中;或,所述存储器还包括发送模块,用于当所述发起访问核或接收访问核内的一个存储单元存储任务不满时,将所述存储单元对应的queue内的任务发送给所述存储单元直到所述存储单元存满任务。
在第二种可能的实现方式中,结合第二方面或第一种可能的实现方式,每个所述queue的大小根据需求动态分配。
在第三种可能的实现方式中,结合第二方面或第一种可能的实现方式或第二种可能的实现方式,所述queue中的每个任务被设置一个标识位,用于标识该任务是否有效。
在第四种可能的实现方式中,结合第二方面或第一种可能的实现方式至第三种可能的实现方式的任意一种,所述标识位由所述发起访问核或接收访问核根据所述标识位是否需要处理确定是否需要进行修改。
在第五种可能的实现方式中,结合第二方面或第一种可能的实现方式至第四种可能的实现方式的任意一种,每个所述queue中每个任务被配置优先级,用于标示各个任务进行处理的顺序。
在第六种可能的实现方式中,结合第二方面或第一种可能的实现方式至第五种可能的实现方式的任意一种,所述存储器还包括发送模块,用于将经过优先级结合公平轮询的方式仲裁后的任务发送给所述发起访问核或接收访问核进行处理。
在第七种可能的实现方式中,结合第二方面或第一种可能的实现方式至第六种可能的实现方式的任意一种,每个queue被配置优先级,用于标示各个queue进行处理的顺序;且每个所述queue中每个任务被配置优先级,用于标示各个任务进行处理的顺序。
在第八种可能的实现方式中,结合第二方面或第一种可能的实现方式至第七种可能的实现方式的任意一种,所述存储器还包括发送模块,用于将先采用优先级结合公平轮询的方式对各个queue进行仲裁选出一个queue,然后采用优先级结合公平轮询的方式对所述选出的queue内的各个任务进行仲裁得出的任务发送给所述发起访问核或接收访问核进行处理。
在第九种可能的实现方式中,结合第二方面或第一种可能的实现方式至第八种可能的实现方式的任意一种,至少两个queue被分组为至少两queue组,每个queue组被配置优先级,用于标示各个queue组进行处理的顺序;每个queue组内的每个queue被配置优先级,用于标示各个queue进行处理的顺序;每个所述queue中每个任务被配置优先级,用于标示各个任务进行处理的顺序。
在第十种可能的实现方式中,结合第二方面或第一种可能的实现方式至第九种可能的实现方式的任意一种,所述存储器还包括发送模块,还用于将经过先采用优先级结合公平轮询的方式对各个queue组进行仲裁选出一queue组;然后采用优先级结合公平轮询的方式对所述选出的queue组内的各个queue进行仲裁选出一个queue,再然后采用优先级结合公平轮询的方式对所述选出的queue内的各个任务进行仲裁得出的任务发送给所述发起访问核或接收访问核进行处理。
本发明的第三方面,提供一种管理任务的方法,包括:任务处理装置配置任务;所述任务处理装置将所配置的任务发送给存储器,其中,所述存储器以至少一个队列queue的方式存储所有任务,其中,每个队列queue采用先进先出FIFO方式或堆栈方式或随机方式存储任务。
在第一种可能的实现方式中,根据第三方面,所述存储器中每个queue对应所述任务处理装置内的一个存储单元,所述方法还包括:当所述任务处理装置内的一个存储单元存储任务满时,所述任务处理装置将该存储单元多余的任务发送给存储器,以便所述存储器将该多余的任务存储于所述存储单元对应的queue中;或,当所述任务处理装置内的一个存储单元存储任务不满时,所述任务处理装置接收所述存储器发送的所述存储单元对应的queue内的任务,并存储到所述存储单元直到所述存储单元存满任务。
在第二种可能的实现方式中,结合第三方面或第一种可能的实现方式,所述方法还包括:所述任务处理装置根据需求动态分配每个所述queue的大小。
在第三种可能的实现方式中,结合第三方面或第一种可能的实现方式或第二种可能的实现方式,所述方法还包括:所述任务处理装置为每个所述queue中的每个任务设置一个标识位,用于标识该任务是否有效。
在第四种可能的实现方式中,结合第三方面或第一种可能的实现方式至第三种可能的实现方式的任意一种,所述方法还包括:所述任务处理装置根据任务是否需要处理确定是否修改所述任务的标识位。
在第五种可能的实现方式中,结合第三方面或第一种可能的实现方式至第四种可能的实现方式的任意一种,所述方法还包括:所述任务处理装置为每个所述queue中每个任务配置优先级,用于标示各个任务进行处理的顺序。
在第六种可能的实现方式中,结合第三方面或第一种可能的实现方式至第五种可能的实现方式的任意一种,所述方法还包括:所述任务处理装置处理经过优先级结合公平轮询的方式进行仲裁后选择的任务。
在第七种可能的实现方式中,结合第三方面或第一种可能的实现方式至第六种可能的实现方式的任意一种,所述方法还包括:所述任务处理装置为每个queue配置优先级,用于标示各个queue进行处理的顺序;且为每个所述queue中每个任务配置优先级,用于标示各个任务进行处理的顺序。
在第八种可能的实现方式中,结合第三方面或第一种可能的实现方式至第七种可能的实现方式的任意一种,所述方法还包括:所述任务处理装置处理经过先采用优先级结合公平轮询的方式对各个queue进行仲裁选出一个queue,然后采用优先级结合公平轮询的方式对所述选出的queue内的各个任务进行仲裁后选择的任务。
在第九种可能的实现方式中,结合第三方面或第一种可能的实现方式至第八种可能的实现方式的任意一种,至少两个queue被分组为至少两queue组,所述方法还包括:所述任务处理装置为每个queue组配置优先级,用于标示各个queue组进行处理的顺序;为每个queue组内的每个queue配置优先级,用于标示各个queue进行处理的顺序;为每个所述queue中每个任务配置优先级,用于标示各个任务进行处理的顺序。
在第十种可能的实现方式中,结合第三方面或第一种可能的实现方式至第九种可能的实现方式的任意一种,所述方法还包括:所述任务处理装置处理经过先采用优先级结合公平轮询的方式对各个queue组进行仲裁选出一queue组;然后采用优先级结合公平轮询的方式对所述选出的queue组内的各个queue进行仲裁选出一个queue,再然后采用优先级结合公平轮询的方式对所述选出的queue内的各个任务进行仲裁后选择的任务。
本发明的第四方面,提供一种任务处理装置,包括:配置模块,用于配置任务;发送模块,用于将所配置的任务发送给存储器,其中,所述存储器以至少一个队列queue的方式存储所有任务,其中,每个队列queue采用先进先出FIFO方式或堆栈方式或随机方式存储任务。
在第一种可能的实现方式中,根据第四方面,所述任务处理装置还包括至少一个存储单元,所述存储器中每个queue对应所述任务处理装置内的一个存储单元,所述发送模块,还用于当一个存储单元存储任务满时,将所述存储单元多余的任务发送给存储器,由所述存储器将该多余的任务存储于所述存储单元对应的queue中;或,所述任务处理装置还包括接收模块,用于当一个存储单元存储任务不满时,接收所述存储器发送的所述存储单元对应的queue内的任务,所述存储单元,还用于存储所述接收单元接收的任务直到存满任务。
在第二种可能的实现方式中,结合第四方面或第一种可能的实现方式,所述配置模块,还用于根据需求动态分配每个所述queue的大小。
在第三种可能的实现方式中,结合第四方面或第一种可能的实现方式或第二种可能的实现方式,所述配置模块,还用于为每个所述queue中的每个任务设置一个标识位,用于标识该任务是否有效。
在第四种可能的实现方式中,结合第四方面或第一种可能的实现方式至第三种可能的实现方式的任意一种,所述配置模块,还用于根据任务是否需要处理确定是否修改所述任务的标识位。
在第五种可能的实现方式中,结合第四方面或第一种可能的实现方式至第四种可能的实现方式的任意一种,所述配置模块,还用于为每个所述queue中每个任务配置优先级,用于标示各个任务进行处理的顺序。
在第六种可能的实现方式中,结合第四方面或第一种可能的实现方式至第五种可能的实现方式的任意一种,所述任务处理装置还包括:处理模块,用于处理经过优先级结合公平轮询的方式进行仲裁后选择的任务。
在第七种可能的实现方式中,结合第四方面或第一种可能的实现方式至第六种可能的实现方式的任意一种,所述配置模块,还用于为每个queue配置优先级,用于标示各个queue进行处理的顺序;且为每个所述queue中每个任务配置优先级,用于标示各个任务进行处理的顺序。
在第八种可能的实现方式中,结合第四方面或第一种可能的实现方式至第七种可能的实现方式的任意一种,所述任务处理装置还包括:处理模块,用于处理经过先采用优先级结合公平轮询的方式对各个queue进行仲裁选出一个queue,然后采用优先级结合公平轮询的方式对所述选出的queue内的各个任务进行仲裁后选择的任务。
在第九种可能的实现方式中,结合第四方面或第一种可能的实现方式至第八种可能的实现方式的任意一种,至少两个queue被分组为至少两queue组,所述配置模块,还用于为每个queue组配置优先级,用于标示各个queue组进行处理的顺序;为每个queue组内的每个queue配置优先级,用于标示各个queue进行处理的顺序;为每个所述queue中每个任务配置优先级,用于标示各个任务进行处理的顺序。
在第十种可能的实现方式中,结合第四方面或第一种可能的实现方式至第九种可能的实现方式的任意一种,所述任务处理装置还包括:处理模块,用于处理经过先采用优先级结合公平轮询的方式对各个queue组进行仲裁选出一queue组;然后采用优先级结合公平轮询的方式对所述选出的queue组内的各个queue进行仲裁选出一个queue,再然后采用优先级结合公平轮询的方式对所述选出的queue内的各个任务进行仲裁后选择的任务。
本发明的第五方面,提供一种通信设备,包括任务处理装置,交叉开关和至少一个存储器,其中,所述任务处理装置通过所述交叉开关与所述存储器通信,其中,所述任务处理装置,用于配置任务并向所述存储器发送所述配置的任务;所述存储器,用于以至少一个队列queue的方式存储所有任务,其中,每个队列queue采用先进先出FIFO方式或堆栈方式或随机方式存储任务。
在第一种可能的实现方式中,根据第五方面,所述存储器中每个queue对应所述任务处理装置内的一个存储单元,其中,所述存储器,还用于当所述任务处理装置内的一个存储单元存储任务满时,将多余的任务存储于所述存储单元对应的queue中;或,所述存储器,用于当所述任务处理装置内的一个存储单元存储任务不满时,将所述存储单元对应的queue内的任务发送给所述存储单元直到所述存储单元存满任务。
在第二种可能的实现方式中,结合第五方面或第一种可能的实现方式,所述任务处理装置还用于根据需求动态分配每个所述queue的大小。
在第三种可能的实现方式中,结合第五方面或第一种可能的实现方式或第二种可能的实现方式,所述任务处理装置还用于为每个所述queue中的每个任务设置一个标识位,用于标识该任务是否有效。
在第四种可能的实现方式中,结合第五方面或第一种可能的实现方式至第三种可能的实现方式的任意一种,所述任务处理装置还用于根据所述任务是否需要处理确定是否需要修改所述任务的标识位。
在第五种可能的实现方式中,结合第五方面或第一种可能的实现方式至第四种可能的实现方式的任意一种,所述任务处理装置还用于为每个所述queue中每个任务配置优先级,用于标示各个任务进行处理的顺序。
在第六种可能的实现方式中,结合第五方面或第一种可能的实现方式至第五种可能的实现方式的任意一种,所述任务处理装置还用于处理经过优先级结合公平轮询的方式对各个任务进行仲裁后选择的任务。
在第七种可能的实现方式中,结合第五方面或第一种可能的实现方式至第六种可能的实现方式的任意一种,所述任务处理装置还用于为每个queue配置优先级,用于标示各个queue进行处理的顺序;还用于为每个所述queue中每个任务配置优先级,用于标示各个任务进行处理的顺序。
在第八种可能的实现方式中,结合第五方面或第一种可能的实现方式至第七种可能的实现方式的任意一种,所述任务处理装置还用于处理经过先采用优先级结合公平轮询的方式对各个queue进行仲裁选出一个queue,然后采用优先级结合公平轮询的方式对所述选出的queue内的各个任务进行仲裁后选择的任务。
在第九种可能的实现方式中,结合第五方面或第一种可能的实现方式至第八种可能的实现方式的任意一种,至少两个queue被分组为至少两queue组,所述任务处理装置还用于为每个queue组配置优先级,用于标示各个queue组进行处理的顺序;还用于为每个queue组内的每个queue配置优先级,用于标示各个queue进行处理的顺序;还用于每个所述queue中每个任务配置优先级,用于标示各个任务进行处理的顺序。
在第十种可能的实现方式中,结合第五方面或第一种可能的实现方式至第九种可能的实现方式的任意一种,所述任务处理装置还用于处理经过先采用优先级结合公平轮询的方式对各个queue组进行仲裁选出一queue组;然后采用优先级结合公平轮询的方式对所述选出的queue组内的各个queue进行仲裁选出一个queue,再然后采用优先级结合公平轮询的方式对所述选出的queue内的各个任务进行仲裁后选择的任务。
上述技术方案,发起访问核或接收访问核配置任务并向存储器发送所述配置的任务;所述存储器以至少一个队列(queue)的方式存储所有任务,其中,每个队列(queue)采用先进先出(FIFO)方式或堆栈方式或随机方式存储任务,每个queue可以同时存放至少一个任务(即N个),不需要等待前面的任务全部完成后再配置下一个任务,一个queue中至少两个任务间可以无间隙切换,即第一个任务完成以后,就可以直接执行第二个任务,不需要等待准备任务的时间,大大提高了任务的处理速率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为现有技术中一种通信设备的结构示意图;
图2为本发明一实施例的一种通信设备结构示意图;
图3为本发明另一实施例中的任务存储方式示意图;
图4为本发明另一实施例的一种队列组的任务仲裁结构示意图;
图5为本发明另一实施例的一种采用队列方式管理任务的装置结构示意图;
图6为本发明一实施例提供的一种管理任务的方法流程示意图;
图7为本发明另一实施例提供的另一种管理任务的方法的流程示意图;
图8为本发明另一实施例提供的一种存储器的结构示意图;
图9为本发明另一实施例提供的一种任务处理装置的结构示意图;
图10为本发明另一实施例提供的一种存储器的结构示意图;
图11为本发明另一实施例提供的一种任务处理装置的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本文中描述的技术可用于各种通信系统,例如当前2G,3G通信系统和下一代通信系统,例如全球移动通信系统(GSM,Global System forMobile communications),码分多址(CDMA,Code Division MultipleAccess)系统,时分多址(TDMA,Time Division Multiple Access)系统,宽带码分多址(WCDMA,Wideband Code Division Multiple AccessWireless),频分多址(FDMA,Frequency Division Multiple Addressing)系统,正交频分多址(OFDMA,Orthogonal Frequency-Division MultipleAccess)系统,单载波FDMA(SC-FDMA)系统,通用分组无线业务(GPRS,General Packet Radio Service)系统,长期演进(LTE,Long Term Evolution)系统,以及其他此类通信系统。
本文的技术方案,适用于通信系统的各种通信设备,例如用户设备(UE,user equipment),基站,基站控制器,核心网设备等等。
用户设备,可以是无线终端也可以是有线终端,无线终端可以是指向用户提供语音和/或数据连通性的设备,具有无线连接功能的手持式设备、或连接到无线调制解调器的其他处理设备。无线终端可以经无线接入网(例如,RAN,Radio Access Network)与一个或至少两个核心网进行通信,无线终端可以是移动终端,如移动电话(或称为“蜂窝”电话)和具有移动终端的计算机,例如,可以是便携式、袖珍式、手持式、计算机内置的或者车载的移动装置,它们与无线接入网交换语言和/或数据。例如,个人通信业务(PCS,Personal Communication Service)电话、无绳电话、会话发起协议(SIP)话机、无线本地环路(WLL,Wireless Local Loop)站、个人数字助理(PDA,Personal Digital Assistant)等设备。无线终端也可以称为系统、订户单元(Subscriber Unit)、订户站(Subscriber Station),移动站(Mobile Station)、移动台(Mobile)、远程站(Remote Station)、接入点(Access Point)、远程终端(Remote Terminal)、接入终端(AccessTerminal)、用户终端(User Terminal)、用户代理(User Agent)、用户设备(User Device)、或用户装备(User Equipment)。
基站(例如,接入点)可以是指接入网中在空中接口上通过一个或至少两个扇区与无线终端通信的设备。基站可用于将收到的空中帧与IP分组进行相互转换,作为无线终端与接入网的其余部分之间的路由器,其中接入网的其余部分可包括网际协议(IP)网络。基站还可协调对空中接口的属性管理。
例如,基站可以为2G网络中的基站控制器(Base Station Controller,BSC),或3G网络中的无线网络控制器(Radio Network Controller,RNC),或LTE网络中的演进型节点B(evolved Node B,eNodeB)。例如,基站可以是GSM或CDMA中的基站(BTS,Base Transceiver Station),也可以是WCDMA中的基站(NodeB),还可以是LTE中的演进型基站(NodeB或eNB或e-NodeB,evolutional Node B),本申请并不限定。
基站控制器,可以是GSM或CDMA中的基站控制器(BSC,base stationcontroller),也可以是WCDMA中的无线网络控制器(RNC,Radio NetworkController),本申请并不限定。
核心网设备,例如归属位置寄存器(HLR,Home Location Register),网关(GW,Gateway),GPRS业务支持节点(SGSN,Service GPRSSupporting Node),通用分组无线业务网关支持节点(GGSN,GatewayGPRS Support Node)等。
另外,本文中术语“系统”和“网络”在本文中常被可互换使用。本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
如图2所示,为本发明一实施例的一种通信设备结构示意图,所述通信设备可以是网络系统中任意网元,例如,用户设备,基站,基站控制器或核心网的一些网元,例如移动交互中心(MSC,Mobile SwitchingCenter),GPRS业务支持节点(SGSN,Service GPRS Supporting Node)或网关(GW,gateway)。所述通信设备包括任务处理装置,交叉开关和至少一个存储器(Memory)20,所述任务处理装置为发起访问核或接收访问核,所述发起访问核和接收访问核均分别通过所述交叉开关与所述存储器20通信。所述发起访问核为如下的至少一个:至少一个CPU22,至少一个数字信号处理器(DSP)24,至少一个HAC26,至少一个DMA28,为描述方便,下述实施例中发起访问核均以CPU22为例进行描述。所述接收访问核为如下的至少一个:至少一个CPU21,至少一个双倍速率同步动态随机存储器(DDR)23,至少一个L2M25和至少一个数字信号处理器(DSP)27,为描述方便,下述实施例中发起访问核均以CPU21为例进行描述。其中,发起访问的CPU22,DSP24,HAC26和DMA28通过交叉开关矩阵或纵横式交换矩阵(Crossbar)与接收访问的CPU21,DDR23,L2M25和DSP27交互,交互的方式为以X个队列(queue)的方式进行交互,其中X为正整数。其中,任务全部存储到所述存储器20中。
在本发明的另一实施例中,所述存储器20可以为存储单元,缓存器或寄存器(register),所述存储器20以至少一个队列(queue)的方式存储任务,每个队列(queue)采用先进先出(FIFO,first in first out)方式或堆栈方式或随机方式存储任务,每个任务均存储到存储器20中,如图3所示,为本发明另一实施例中的任务存储方式示意图,第X个队列quequex包括N个任务,其中X,N均为正整数,每个任务均存储到存储器20中。
在本发明的另一实施例中,所述存储器20中每个queue对应一个发起访问核或接收访问核内的一个存储单元,例如发起访问核或接收访问核内的缓存器,当所述发起访问核或接收访问核内的一个存储单元存储任务满时,所述存储器20将多余的任务存储于该存储单元对应的queue中,当所述发起访问核或接收访问核内的一个存储单元存储任务不满时,所述存储器20将该存储单元对应的queue内的任务发送给该发起访问核或接收访问核的存储单元直到该存储单元存满任务,在本发明的另一实施例中,所述存储器20中每个queue的大小可以动态配置。
由上述描述可知,每个queue可以同时存放至少一个任务(即N个),不需要等待前面的任务全部完成后再配置下一个任务,一个queue中至少两个任务间可以无间隙切换,即第一个任务完成以后,就可以直接执行第二个任务,不需要等待准备任务的时间,大大提高了任务的处理速率。进一步,queue的任务均存储到存储器20中,减少逻辑面积,降低成本;由于每个queue的面积得到大幅度降低,所以可以根据需求扩展queue的个数,因此扩展性较好。
每个queue的大小可以根据需求动态分配,即N的大小根据需要处理任务的多少进行动态分配。例如,CPU21或CPU22中最多可能有100个任务排队等待被处理,那么N分配为100就可以了。另假设CPU21或CPU22在这个系统中,最多可能出现500个任务等待处理,那么给CPU21或CPU22的N就分配500。依次类推,根据需求分配。
在本发明的另一实施例中,任意一个queue中的每个任务可以单独取消,在存储器20中,每个任务存储到queue中时,都有一个标识位,标识该任务是否有效,例如标识位标示为1表示任务有效,标识位标示为0表示任务无效,反之亦然。
在本发明的另一实施例中,所述发起访问核或接收访问核根据任务是否需要处理确定是否修改该任务的标识位,例如由CPU22进行修改。例如,当任务存储到queue0的第0个位置时,发起访问核将其标识位置为有效(例如标识位为1)。当某个时间点,CPU22确定该任务不需要处理,可以来修改标识位,将其置为无效(例如标识位为0),那么该任务就被取消了。被该任务被取消后,该任务在存储器20中的存储位置也可以被其它任务占用。在本发明的另一实施例,当某个时间点,发起访问的CPU22确定该任务需要处理,保持该标识位(即标识位为1),该任务在存储器20中的存储位置不可以被其它任务占用。上述标示位,为高电平表示有效,为低电平表示无效。
在本发明的另一实施例中,所述发起访问核或接收访问核可以为每个queue内的每个任务配置优先级,用于标示各个任务进行处理的顺序,所述任务被要求处理时采用优先级结合公平轮询的方式进行仲裁。
在本发明的另一实施例中,如果所述存储器20存储至少两个queue,所述发起访问核或接收访问核可以为每个queue配置优先级,用于标示各个queue进行处理的顺序;所述发起访问核或接收访问核还为每个所述queue中每个任务配置优先级,用于标示各个任务进行处理的顺序。所述任务被要求处理时,先采用优先级结合公平轮询的方式对各个queue进行仲裁选出一个queue,然后采用优先级结合公平轮询的方式对所述选出的queue内的各个任务进行仲裁。
例如,为每个所述queue分别配置优先级以及为每个queue内的每个任务配置优先级。如图4所示,为本发明另一实施例的一种队列组的任务仲裁结构示意图,该队列组的任务仲裁在一仲裁处理器中完成,该仲裁处理器的具体功能以及其与存储器的连接关系具体如图5所对应的实施例所述。该任务组包括标号依次为0-3的共4个队列:que0,que1,que2和que3,每个队列包括至少两个任务,即que0,que1,que2,que3各自均包括标号依次为0-31的共32个任务。任务被要求处理时采用优先级结合公平轮询的方式进行仲裁,即根据优先级对该que0,que1,que2和que3进行仲裁,例如两个两个queue进行优先级比较,最后选出优先级最高的queue,如果任务的优先级相同,则4个queue中的任务公平轮询,即处理顺序为:que0>que1>que2>que3>que0>que1>que2>que3>que0。经过仲裁后,如果que0的任务优先级最高,就给que0配置一个最高的优先级,其他的类似。然后,该最高优先级的queue内每个任务也采用优先级结合公平轮询的方式进行仲裁,例如依次两个两个任务进行优先级比较,最后最高优先级的的任务被选中进行处理,如果优先级相同,采用公平轮询的方式进行仲裁,例如根据该最高优先级queue内的每个任务的标号的依次顺序轮询。
在本发明的另一实施例中,至少两个queue也可以进行分组,例如至少两个queue可以被分组为至少两组,所述发起访问核或接收访问核为每个queue组配置优先级,用于标示各个queue组进行处理的顺序;所述发起访问核或接收访问核还可以为每个queue组内的每个queue配置优先级,用于标示各个queue进行处理的顺序;所述发起访问核或接收访问核还为每个所述queue中每个任务配置优先级,用于标示各个任务进行处理的顺序。所述任务被要求处理时,先采用优先级结合公平轮询的方式对各个queue组进行仲裁选出一queue组;然后采用优先级结合公平轮询的方式对所述选出的queue组内的各个queue进行仲裁选出一个queue,再然后采用优先级结合公平轮询的方式对所述选出的queue内的各个任务进行仲裁。
例如,至少两个queue被分组为至少两组时,可以为每queue组和每queue组内的每个queue分别配置优先级,且每个queue内的每个任务也配置优先级。例如,N个queue被分组为k组,每queue组包括n个queue,其中N,k和n均为自然数。在本发明的另一实施例中,分组可以平均分组,也可以不平均分组,每组包括的queue的数量可以相同或不相同,本实施例不限制。kqueue组的每queue组被配置一个优先级,每queue组内的每个queue也被配置一个优先级。任务被要求处理时采用优先级结合公平轮询的方式进行仲裁,例如,先对queue组进行优先级的比较仲裁出最高优先级的queue组,然后对该最高优先级queue组内的queue进行优先级比较仲裁出最高优先级的queue,最后对最高优先级queue内的任务进行优先级比较仲裁出最高优先级的任务进行处理,在上述优先级比较过程中,如果优先级相同,采用公平轮询的方式进行仲裁,具体如下所述:例如依次两组两组的queue组进行优先级比较,最后最高优先级的queue组被最优先处理,如果优先级相同,采用公平轮询的方式进行仲裁,例如根据queue组的标号的依次顺序轮询;该最高优先级的queue组被选中时,再对该最高优先级queue组内的每个queue采用优先级结合公平轮询的方式进行仲裁,例如依次两个两个queue进行优先级比较,最后最高优先级的的queue被选中,如果优先级相同,采用公平轮询的方式进行仲裁,例如根据queue的标号的依次顺序轮询;该最高优先级的queue被选中时,再对该最高优先级queue内的每个任务采用优先级结合公平轮询的方式进行仲裁,例如依次两个两个任务进行优先级比较,最后最高优先级的的任务被选中进行处理,如果优先级相同,采用公平轮询的方式进行仲裁,例如根据该最高优先级queue内的每个任务的标号的依次顺序轮询。
在本发明的另一实施例中,至少两个queue也可以进行至少两种组级别的分组,例如包括至少两个大queue组,每个大queue组包括至少一个小queue组,每个小queue组包括至少一个queue,每个queue包括至少一个任务,所述发起访问核或接收访问核为每个大queue组配置优先级,用于标示各个大queue组进行处理的顺序;所述发起访问核或接收访问核为每个大queue组内的每个小queue组配置优先级,用于标示各个小queue组进行处理的顺序;所述发起访问核或接收访问核还可以为每个小queue组内的每个queue配置优先级,用于标示各个queue进行处理的顺序;所述发起访问核或接收访问核还为每个所述queue中每个任务配置优先级,用于标示各个任务进行处理的顺序。所述任务被要求处理时,先采用优先级结合公平轮询的方式对各个大queue组进行仲裁选出一个大queue组;然后先采用优先级结合公平轮询的方式对所述选出的大queue组内的各个小queue组进行仲裁选出一个小queue组;再然后采用优先级结合公平轮询的方式对所述选出的小queue组内的各个queue进行仲裁选出一个queue,再然后采用优先级结合公平轮询的方式对所述选出的queue内的各个任务进行仲裁。
在本发明的另一实施例中,对多queue组进行至少两个级别组的优先级配置,例如可以是2级组:大组,小组,也可以是至少3级组。为描述方便,本实施例以2级组进行描述,例如将多queue组分组为至少两个大组,例如,N个queue被分组为k小组,所述k小组被分组为i个大组,即每个大queue组包括至少一小queue组,每个小queue组包括n个queue,其中N,i为大于等于2的整数,k和n为大于等于1的整数。在本发明的另一实施例中,分组可以平均分组,也可以不平均分组,每组包括的queue的数量可以相同或不相同,本实施例不限制。任务被要求处理时采用优先级结合公平轮询的方式进行仲裁,先对大queue组进行优先级的比较仲裁出最高优先级的大queue组,然后对该最高优先级大queue组内的小queue组进行优先级比较仲裁出最高优先级的小queue组,再然后对该最高优先级小queue组内的queue进行优先级比较仲裁出最高优先级的queue,最后对最高优先级queue内的任务进行优先级比较仲裁出最高优先级的任务进行处理,在上述优先级比较过程中,如果优先级相同,采用公平轮询的方式进行仲裁,具体如下所述:例如依次两组两组的大queue组进行优先级比较,最后最高优先级的大queue组被最优先处理,如果优先级相同,采用公平轮询的方式进行仲裁,例如根据大queue组的标号的依次顺序轮询;然后依次两组两组的queue组进行优先级比较,最后最高优先级的queue组被最优先处理,如果优先级相同,采用公平轮询的方式进行仲裁,例如根据queue组的标号的依次顺序轮询;该最高优先级的queue组被选中时,再对该最高优先级queue组内的每个queue采用优先级结合公平轮询的方式进行仲裁,例如依次两个两个queue进行优先级比较,最后最高优先级的的queue被选中,如果优先级相同,采用公平轮询的方式进行仲裁,例如根据queue的标号的依次顺序轮询;该最高优先级的queue被选中时,再对该最高优先级queue内的每个任务采用优先级结合公平轮询的方式进行仲裁,例如依次两个两个任务进行优先级比较,最后最高优先级的的任务被选中进行处理,如果优先级相同,采用公平轮询的方式进行仲裁,例如根据该最高优先级queue内的每个任务的标号的依次顺序轮询。
如图5所示,为本发明另一实施例的一种采用队列(queue)方式管理任务的装置结构示意图。该采用queue方式管理任务的装置包括:X个FIFO控制器501…50X,命令产生器502,存储器503,命令分配器504,挪移反馈处理器505和仲裁处理器506。所述X个FIFO控制器501…50X,命令产生器502,存储器503,命令分配器504,挪移反馈处理器505和仲裁处理器506位于图2所示的存储器20中。
其中,所述X个FIFO控制器501…50X的任意一个FIFO控制器接收对应queue的写入数据,即queue的写使能有效(que_wr:queue的写使能),同时产生queue的写指针que_wr_ptr,每个FIFO控制器将FIFO的空满标识信号送给仲裁处理器506,所述仲裁处理器506根据每个FIFO的空满标识对至少两个FIFO的任务进行仲裁,仲裁到某个FIFO后,仲裁处理器506发出queue的请求que_req,等待被仲裁。当仲裁信号que_ack为高时,表示queue的请求被相应的FIFO控制器接收。FIFO的请求被仲裁后,仲裁处理器506同时产生对应的数据的读使能信号que_rd给命令产生器502,命令产生器503产生FIFO控制器的读使能(未示出)送给FIFO控制器,FIFO控制器根据读使能产生读指针que_rd_ptr,送给所述命令产生器502。所述命令产生器502根据queue的读使能que_rd和数据被仲裁标识que_gnt,产生存储器503的读写控制信号(例如,ram_a_cs:存储器的写使能信号)及数据地址信息(例如ram_a_din:存储器503的写入数据;ram_a_addr:存储器503的写入地址),完成任务的存储。当命令产生器502产生命令有效信号cmd_valid时,同时产生所述存储器503的读使能信号ram_b_cs、读地址信号ram_b_addr;,将任务从存储器503取出ram_b_dout。所述命令分配器504根据cmd_valid产生发送出去命令的有效信号cmd_valid,命令的标识号cmd_id,命令的优先级cmd_pri,命令的地址cmd_bd_addr。将命令送出。其中,X为大于等于1的整数。
所述搬移反馈处理器505根据数据搬移的反馈信息cmd_binfo决定该任务是否正常搬移完成,如果正常完成,产生传输完成中断int_tr_info;如果传输出错,产生错误中断int_err_info,并记录错误信息int_err_type,反馈给CPU/DSP;同时,还会根据反馈信息决定上一次queue仲裁出的任务是否已经完成que_done,如果已经完成则将任务完成位置位。
FIFO控制器501…50X:每个queue对应一个FIFO控制器,每配置一次queue的任务寄存器,对应的FIFO控制器的写指针加1,每仲裁到该queue时,对应的FIFO控制器读指针加1,发起访问核(例如CPU22,DSP24)每读取queue的剩余任务查询寄存器,即que_pd_ptr,对应的FIFO控制器查询指针加1,当FIFO控制器的FIFO满以后还试图配置任务,FIFO写指针不变。
命令产生器502根据发起访问核CPU/DSP的配置信息,在FIFO控制器中的FIFO写指针更新的上一拍,将配置的地址存入存储器503,然后根据所述仲裁处理器506的结果到存储器503中读取地址,同时产生命令cmd_valid,送给所述命令分配器504处理。
所述仲裁处理器506根据对queue任务的监控以及中断buffer满状态决定是否需要进行仲裁,即当queue非空时,所述仲裁处理器506执行queue仲裁,所述仲裁处理器506同时监控queue任务完成情况,当获得一次仲裁后,任务统计计数器加1,任务做完后任务统计计数器减1。
搬移反馈处理器505:用于根据数据搬移的反馈信息决定该任务是否正常搬移完成,产生相应的中断反馈给中断的CPU/DSP;同时,还用于根据反馈信息决定上一次queue仲裁出的任务是否已经完成,如果已经完成则将任务完成位置位。
命令分配器504:用于根据该装置的发送口(未在图中具体示出)所反馈的cmdx_full决定是否需要将命令分配到所述接收访问核的Master接口,如果所述接收访问核的Master接口的cmd_full无效,则将命令分发给所述接收访问核的Master接口,否则不能再仲裁命令了。另外,所述命令分配器504还产生命令有效信号cmd_valid、命令标识cmd_id、命令优先级cmd_pri、命令地址cmd_bd_addr命令发送给该装置的发送口,进而转换为命令发送给所述接收访问核。
由上述描述可知,每个queue可以同时存放至少一个任务(即N个),不需要等待前面的任务全部完成后再配置下一个任务,一个queue中至少两个任务间可以无间隙切换,即第一个任务完成以后,就可以直接执行第二个任务,不需要等待准备任务的时间,大大提高了任务的处理速率。进一步,queue的任务均存储到存储器中,减少逻辑面积,降低成本;由于每个queue的面积得到大幅度降低,所以可以根据需求扩展queue的个数,因此扩展性较好。
下面实施例中,发起访问核为中央处理器(CPU)22、数字信号处理器(DSP)24、硬件加速器(HAC)26和直接内存存取(DMA)28中的至少一个,接收访问核为CPU21和DSP27中的至少一个。所述存储器可以为存储单元,缓存器或寄存器。
如图6所示,为本发明一实施例提供的一种管理任务的方法流程示意图,如下所述。
601:存储器接收发起访问核或接收访问核配置的任务。
该存储器是设置于发起访问核与接收访问核之间的装置,通过该存储器可以完成发起访问核与接收访问核之间的通信。
602:所述存储器以至少一个队列(queue)的方式存储所有任务,其中,每个队列(queue)采用先进先出FIFO方式或堆栈方式或随机方式存储任务。
在本发明的另一实施例中,每个queue可以同时存放至少一个任务(即N个),N为自然数。
在本发明的另一实施例中,所述存储器中每个queue对应一个发起访问核或接收访问核内的一个存储单元,例如发起访问核或接收访问核内的缓存器,当发起访问核或接收访问核内的一个存储单元存储任务满时,其对应queue存储多余的任务,当发起访问核或接收访问核内的一个存储单元存储任务不满时,所述存储器将所述存储单元对应queue的任务发送给该发起访问核或接收访问核的存储单元直到该存储单元存满任务,在本发明的另一实施例中,所述存储器中每个queue的大小可以动态配置。
每个queue的大小可以根据需求动态分配,即N的大小根据需要处理任务的多少进行动态分配。例如,发起访问核或接收访问核中最多可能有100个任务排队等待被处理,那么N分配为100就可以了。另假设发起访问核或接收访问核在这个系统中,最多可能出现500个任务等待处理,那么给发起访问核或接收访问核的N就分配500。依次类推,根据需求分配。
在本发明的另一实施例中,任意一个queue中的每个任务可以单独取消,在存储器中,每个任务存储到queue中时,都有一个标识位,标识该任务是否有效,例如标识位标示为1表示任务有效,标识位标示为0表示任务无效,反之亦然。
在本发明的另一实施例中,所述发起访问核或接收访问核根据所述任务是否需要处理确定是否需要修改所述任务的标识位。例如,当任务存储到queue0的第0个位置时,发起访问核将其标识位置为有效(例如标识位为1)。当某个时间点,发起访问核确定该任务不需要处理,可以来修改标识位,将其置为无效(例如标识位为0),那么该任务就被取消了。被该任务被取消后,该任务在存储器中的存储位置也可以被其它任务占用。在本发明的另一实施例,当某个时间点,发起访问核确定该任务需要处理,保持该标识位(即标识位为1),该任务在存储器中的存储位置不可以被其它任务占用。上述标示位,为高电平表示有效,为低电平表示无效。
在本发明的另一实施例中,所述发起访问核或接收访问核可以为每个queue内的每个任务配置优先级,用于标示各个任务进行处理的顺序。
在本发明的另一实施例中,如果所述存储器存储至少两个queue,所述发起访问核或接收访问核可以为每个queue配置优先级,用于标示各个queue进行处理的顺序;所述发起访问核或接收访问核还为每个所述queue中每个任务配置优先级,用于标示各个任务进行处理的顺序。
在本发明的另一实施例中,至少两个queue也可以进行分组,例如至少两个queue可以被分组为至少两组,所述发起访问核或接收访问核为每个queue组配置优先级,用于标示各个queue组进行处理的顺序;所述发起访问核或接收访问核还可以为每个queue组内的每个queue配置优先级,用于标示各个queue进行处理的顺序;所述发起访问核或接收访问核还为每个所述queue中每个任务配置优先级,用于标示各个任务进行处理的顺序。
在本发明的另一实施例中,至少两个queue也可以进行至少两种组级别的分组,例如包括至少两个大queue组,每个大queue组包括至少一个小queue组,每个小queue组包括至少一个queue,每个queue包括至少一个任务,所述发起访问核或接收访问核为每个大queue组配置优先级,用于标示各个大queue组进行处理的顺序;所述发起访问核或接收访问核为每个大queue组内的每个小queue组配置优先级,用于标示各个小queue组进行处理的顺序;所述发起访问核或接收访问核还可以为每个小queue组内的每个queue配置优先级,用于标示各个queue进行处理的顺序;所述发起访问核或接收访问核还为每个所述queue中每个任务配置优先级,用于标示各个任务进行处理的顺序。
603:任务被要求处理时采用优先级结合公平轮询的方式进行仲裁,然后根据仲裁结果任务被处理。
可选的,任务被要求处理时,所述存储器queue中的任务发送给所述发起访问核或接收访问核,例如,可以通过交叉开关(crossbar),实现所述存储器向相应的处理器核发送任务,例如,通过交叉开关将任务发送给所述接收访问的CPU。
在本发明的另一实施例中,所述发起访问核或接收访问核为每个queue内的每个任务配置优先级时,所述任务被要求处理时采用优先级结合公平轮询的方式进行仲裁选出一个任务进行处理。
在本发明的另一实施例中,所述发起访问核或接收访问核为每个所述queue分别配置优先级以及为每个queue内的每个任务配置优先级时,所述任务被要求处理时,先采用优先级结合公平轮询的方式对各个queue进行仲裁选出一个queue,然后采用优先级结合公平轮询的方式对所述选出的queue内的各个任务进行仲裁。
如图4所示,为本发明另一实施例的一种队列组的任务仲裁结构示意图,该队列组的任务仲裁在一仲裁处理器中完成,该仲裁处理器的具体功能以及其与存储器的连接关系具体如图5所对应的实施例所述。该任务组包括标号依次为0-3的共4个队列:que0,que1,que2和que3,每个队列包括至少两个任务,即que0,que1,que2,que3各自均包括标号依次为0-31的共32个任务。任务被要求处理时采用优先级结合公平轮询的方式进行仲裁,即根据优先级对该que0,que1,que2和que3进行仲裁,例如两个两个queue进行优先级比较,最后选出优先级最高的queue,如果任务的优先级相同,则4个queue中的任务公平轮询,即处理顺序为:que0>que1>que2>que3>que0>que1>que2>que3>que0。经过仲裁后,如果que0的任务优先级最高,就给que0配置一个最高的优先级,其他的类似。然后,该最高优先级的queue内每个任务也采用优先级结合公平轮询的方式进行仲裁,例如依次两个两个任务进行优先级比较,最后最高优先级的的任务被选中进行处理,如果优先级相同,采用公平轮询的方式进行仲裁,例如根据该最高优先级queue内的每个任务的标号的依次顺序轮询。
在本发明的另一实施例中,至少两个queue也可以进行分组,例如至少两个queue可以被分组为至少两组,所述发起访问核或接收访问核为每个queue组配置优先级,用于标示各个queue组进行处理的顺序;所述发起访问核或接收访问核还可以为每个queue组内的每个queue配置优先级,用于标示各个queue进行处理的顺序;所述发起访问核或接收访问核还为每个所述queue中每个任务配置优先级,用于标示各个任务进行处理的顺序。所述任务被要求处理时,先采用优先级结合公平轮询的方式对各个queue组进行仲裁选出一queue组;然后采用优先级结合公平轮询的方式对所述选出的queue组内的各个queue进行仲裁选出一个queue,再然后采用优先级结合公平轮询的方式对所述选出的queue内的各个任务进行仲裁。
例如,至少两个queue被分组为至少两组时,可以为每queue组和每queue组内的每个queue分别配置优先级,且每个queue内的每个任务也配置优先级。例如,N个queue被分组为k组,每queue组包括n个queue,其中N,k和n均为自然数。在本发明的另一实施例中,分组可以平均分组,也可以不平均分组,每组包括的queue的数量可以相同或不相同,本实施例不限制。kqueue组的每queue组被配置一个优先级,每queue组内的每个queue也被配置一个优先级。任务被要求处理时采用优先级结合公平轮询的方式进行仲裁,例如,先对queue组进行优先级的比较仲裁出最高优先级的queue组,然后对该最高优先级queue组内的queue进行优先级比较仲裁出最高优先级的queue,最后对最高优先级queue内的任务进行优先级比较仲裁出最高优先级的任务进行处理,在上述优先级比较过程中,如果优先级相同,采用公平轮询的方式进行仲裁,具体如下所述:例如依次两组两组的queue组进行优先级比较,最后最高优先级的queue组被最优先处理,如果优先级相同,采用公平轮询的方式进行仲裁,例如根据queue组的标号的依次顺序轮询;该最高优先级的queue组被选中时,再对该最高优先级queue组内的每个queue采用优先级结合公平轮询的方式进行仲裁,例如依次两个两个queue进行优先级比较,最后最高优先级的的queue被选中,如果优先级相同,采用公平轮询的方式进行仲裁,例如根据queue的标号的依次顺序轮询;该最高优先级的queue被选中时,再对该最高优先级queue内的每个任务采用优先级结合公平轮询的方式进行仲裁,例如依次两个两个任务进行优先级比较,最后最高优先级的的任务被选中进行处理,如果优先级相同,采用公平轮询的方式进行仲裁,例如根据该最高优先级queue内的每个任务的标号的依次顺序轮询。
在本发明的另一实施例中,至少两个queue也可以进行至少两种组级别的分组,例如包括至少两个大queue组,每个大queue组包括至少一个小queue组,每个小queue组包括至少一个queue,每个queue包括至少一个任务,所述发起访问核或接收访问核为每个大queue组配置优先级,用于标示各个大queue组进行处理的顺序;所述发起访问核或接收访问核为每个大queue组内的每个小queue组配置优先级,用于标示各个小queue组进行处理的顺序;所述发起访问核或接收访问核还可以为每个小queue组内的每个queue配置优先级,用于标示各个queue进行处理的顺序;所述发起访问核或接收访问核还为每个所述queue中每个任务配置优先级,用于标示各个任务进行处理的顺序。所述任务被要求处理时,先采用优先级结合公平轮询的方式对各个大queue组进行仲裁选出一个大queue组;然后先采用优先级结合公平轮询的方式对所述选出的大queue组内的各个小queue组进行仲裁选出一个小queue组;再然后采用优先级结合公平轮询的方式对所述选出的小queue组内的各个queue进行仲裁选出一个queue,再然后采用优先级结合公平轮询的方式对所述选出的queue内的各个任务进行仲裁。
例如可以是2级组:大组,小组,也可以是至少3级组。为描述方便,本实施例以2级组进行描述,例如将多queue组分组为至少两个大组,例如,N个queue被分组为k小组,所述k小组被分组为i个大组,即每个大queue组包括至少一小queue组,每个小queue组包括n个queue,其中N,i,k和n均为自然数。在本发明的另一实施例中,分组可以平均分组,也可以不平均分组,每组包括的queue的数量可以相同或不相同,本实施例不限制。任务被要求处理时采用优先级结合公平轮询的方式进行仲裁,先对大queue组进行优先级的比较仲裁出最高优先级的大queue组,然后对该最高优先级大queue组内的小queue组进行优先级比较仲裁出最高优先级的小queue组,再然后对该最高优先级小queue组内的queue进行优先级比较仲裁出最高优先级的queue,最后对最高优先级queue内的任务进行优先级比较仲裁出最高优先级的任务进行处理,在上述优先级比较过程中,如果优先级相同,采用公平轮询的方式进行仲裁,具体如下所述:例如依次两组两组的大queue组进行优先级比较,最后最高优先级的大queue组被最优先处理,如果优先级相同,采用公平轮询的方式进行仲裁,例如根据大queue组的标号的依次顺序轮询;然后依次两组两组的queue组进行优先级比较,最后最高优先级的queue组被最优先处理,如果优先级相同,采用公平轮询的方式进行仲裁,例如根据queue组的标号的依次顺序轮询;该最高优先级的queue组被选中时,再对该最高优先级queue组内的每个queue采用优先级结合公平轮询的方式进行仲裁,例如依次两个两个queue进行优先级比较,最后最高优先级的的queue被选中,如果优先级相同,采用公平轮询的方式进行仲裁,例如根据queue的标号的依次顺序轮询;该最高优先级的queue被选中时,再对该最高优先级queue内的每个任务采用优先级结合公平轮询的方式进行仲裁,例如依次两个两个任务进行优先级比较,最后最高优先级的的任务被选中进行处理,如果优先级相同,采用公平轮询的方式进行仲裁,例如根据该最高优先级queue内的每个任务的标号的依次顺序轮询。
由上述描述可知,本实施例通过在发起访问核与接收访问核之间设置存储器,所述存储器以至少一个队列(queue)的方式存储所有任务,每个队列(queue)采用先进先出(FIFO)方式或堆栈方式或随机的方式存储任务。每个queue可以同时存放至少一个任务(即N个),不需要等待前面的任务全部完成后再配置下一个任务,一个queue中至少两个任务间可以无间隙切换,即第一个任务完成以后,就可以直接执行第二个任务,不需要等待准备任务的时间,大大提高了任务的处理速率。进一步,queue的任务均存储到存储器中,减少逻辑面积,降低成本;由于每个queue的面积得到大幅度降低,所以可以根据需求扩展queue的个数,因此扩展性较好。
图7为本发明另一实施例提供的另一种管理任务的方法的流程示意图,本实施例以配置硬件单元的方式为例。
701,任务处理装置配置任务。
702,所述任务处理装置将所配置的任务发送给存储器,其中,所述存储器以至少一个队列queue的方式存储所有任务,其中,每个队列queue采用先进先出FIFO方式或堆栈方式或随机方式存储任务。
703,所述任务处理装置处理经过优先级结合公平轮询的方式进行仲裁后选择的任务。
在本发明的另一实施例中,所述任务处理装置为发起访问核或接收访问核。
该存储器是设置于发起访问核与接收访问核之间的装置,通过该存储器可以完成发起访问核与接收访问核之间的通信。
例如,所述发起访问核或接收访问核配置任务通过交叉开关(crossbar)将所述配置的任务发送给存储器。
在本发明的另一实施例中,每个queue可以同时存放至少一个任务(即N个),N为自然数。
在本发明的另一实施例中,所述存储器中每个queue对应一个任务处理装置内的一个存储单元,例如任务处理装置内的缓存器,当所述任务处理装置内的一个存储单元存储任务满时,所述任务处理装置将该存储单元多余的任务发送给存储器,以便所述存储器将该多余的任务存储于所述存储单元对应的queue中。当所述任务处理装置内的一个存储单元存储任务不满时,所述任务处理装置接收所述存储器发送的所述存储单元对应的queue内的任务,并存储到所述存储单元直到所述存储单元存满任务。在本发明的另一实施例中,所述存储器中每个queue的大小可以动态配置。
所述任务处理装置根据需求动态分配每个所述queue的大小,即N的大小根据需要处理任务的多少进行动态分配。例如,任务处理装置中最多可能有100个任务排队等待被处理,那么N分配为100就可以了。另假设任务处理装置在这个系统中,最多可能出现500个任务等待处理,那么给任务处理装置的N就分配500。依次类推,根据需求分配。
在本发明的另一实施例中,任意一个queue中的每个任务可以单独取消,每个任务存储到queue中时,所述任务处理装置为每个所述queue中的每个任务设置一个标识位,用于标识该任务是否有效。例如标识位标示为1表示任务有效,标识位标示为0表示任务无效,反之亦然。
在本发明的另一实施例中,所述任务处理装置根据任务是否需要处理确定是否修改所述任务的标识位。例如,当任务存储到queue0的第0个位置时,发起访问核将其标识位置为有效(例如标识位为1)。当某个时间点,发起访问核确定该任务不需要处理,可以来修改标识位,将其置为无效(例如标识位为0),那么该任务就被取消了。被该任务被取消后,该任务在存储器中的存储位置也可以被其它任务占用。在本发明的另一实施例,当某个时间点,发起访问核确定该任务需要处理,保持该标识位(即标识位为1),该任务在存储器中的存储位置不可以被其它任务占用。上述标示位,为高电平表示有效,为低电平表示无效。
在本发明的另一实施例中,所述任务处理装置可以为每个queue内的每个任务配置优先级,用于标示各个任务进行处理的顺序。
在本发明的另一实施例中,如果所述存储器存储至少两个queue,所述任务处理装置可以为每个queue配置优先级,用于标示各个queue进行处理的顺序;所述任务处理装置还为每个所述queue中每个任务配置优先级,用于标示各个任务进行处理的顺序。
在本发明的另一实施例中,至少两个queue也可以进行分组,例如至少两个queue可以被分组为至少两组,所述任务处理装置为每个queue组配置优先级,用于标示各个queue组进行处理的顺序;所述任务处理装置还可以为每个queue组内的每个queue配置优先级,用于标示各个queue进行处理的顺序;所述任务处理装置还为每个所述queue中每个任务配置优先级,用于标示各个任务进行处理的顺序。
在本发明的另一实施例中,至少两个queue也可以进行至少两种组级别的分组,例如包括至少两个大queue组,每个大queue组包括至少一个小queue组,每个小queue组包括至少一个queue,每个queue包括至少一个任务,所述任务处理装置为每个大queue组配置优先级,用于标示各个大queue组进行处理的顺序;所述任务处理装置为每个大queue组内的每个小queue组配置优先级,用于标示各个小queue组进行处理的顺序;所述任务处理装置还可以为每个小queue组内的每个queue配置优先级,用于标示各个queue进行处理的顺序;所述任务处理装置还为每个所述queue中每个任务配置优先级,用于标示各个任务进行处理的顺序。
可选的,所述任务处理装置处理任务时,接收所述存储器发送的queue中的任务,例如,可以通过交叉开关(crossbar),接收所述存储器发送的任务。
在本发明的另一实施例中,所述任务处理装置为每个queue内的每个任务配置优先级时,所述任务处理装置处理经过采用优先级结合公平轮询的方式进行仲裁后选出的一个任务。
在本发明的另一实施例中,所述任务处理装置为每个所述queue分别配置优先级以及为每个queue内的每个任务配置优先级时,所述任务处理装置处理经过先采用优先级结合公平轮询的方式对各个queue进行仲裁选出一个queue,然后采用优先级结合公平轮询的方式对所述选出的queue内的各个任务进行仲裁后选出的一个任务。
如图4所示,为本发明另一实施例的一种队列组的任务仲裁结构示意图,该队列组的任务仲裁在一仲裁处理器中完成,该仲裁处理器的具体功能以及其与存储器的连接关系具体如图5所对应的实施例所述。该任务组包括标号依次为0-3的共4个队列:que0,que1,que2和que3,每个队列包括至少两个任务,即que0,que1,que2,que3各自均包括标号依次为0-31的共32个任务。任务被要求处理时采用优先级结合公平轮询的方式进行仲裁,即根据优先级对该que0,que1,que2和que3进行仲裁,例如两个两个queue进行优先级比较,最后选出优先级最高的queue,如果任务的优先级相同,则4个queue中的任务公平轮询,即处理顺序为:que0>que1>que2>que3>que0>que1>que2>que3>que0。经过仲裁后,如果que0的任务优先级最高,就给que0配置一个最高的优先级,其他的类似。然后,该最高优先级的queue内每个任务也采用优先级结合公平轮询的方式进行仲裁,例如依次两个两个任务进行优先级比较,最后最高优先级的的任务被选中进行处理,如果优先级相同,采用公平轮询的方式进行仲裁,例如根据该最高优先级queue内的每个任务的标号的依次顺序轮询。
在本发明的另一实施例中,至少两个queue也可以进行分组,例如至少两个queue可以被分组为至少两组,所述任务处理装置为每个queue组配置优先级,用于标示各个queue组进行处理的顺序;所述任务处理装置还可以为每个queue组内的每个queue配置优先级,用于标示各个queue进行处理的顺序;所述任务处理装置还为每个所述queue中每个任务配置优先级,用于标示各个任务进行处理的顺序。所述任务处理装置处理经过先采用优先级结合公平轮询的方式对各个queue组进行仲裁选出一queue组;然后采用优先级结合公平轮询的方式对所述选出的queue组内的各个queue进行仲裁选出一个queue,再然后采用优先级结合公平轮询的方式对所述选出的queue内的各个任务进行仲裁后选择出的一个任务。
例如,至少两个queue被分组为至少两组时,可以为每queue组和每queue组内的每个queue分别配置优先级,且每个queue内的每个任务也配置优先级。例如,N个queue被分组为k组,每queue组包括n个queue,其中N,k和n均为自然数。在本发明的另一实施例中,分组可以平均分组,也可以不平均分组,每组包括的queue的数量可以相同或不相同,本实施例不限制。kqueue组的每queue组被配置一个优先级,每queue组内的每个queue也被配置一个优先级。任务被要求处理时采用优先级结合公平轮询的方式进行仲裁,例如,先对queue组进行优先级的比较仲裁出最高优先级的queue组,然后对该最高优先级queue组内的queue进行优先级比较仲裁出最高优先级的queue,最后对最高优先级queue内的任务进行优先级比较仲裁出最高优先级的任务进行处理,在上述优先级比较过程中,如果优先级相同,采用公平轮询的方式进行仲裁,具体如下所述:例如依次两组两组的queue组进行优先级比较,最后最高优先级的queue组被最优先处理,如果优先级相同,采用公平轮询的方式进行仲裁,例如根据queue组的标号的依次顺序轮询;该最高优先级的queue组被选中时,再对该最高优先级queue组内的每个queue采用优先级结合公平轮询的方式进行仲裁,例如依次两个两个queue进行优先级比较,最后最高优先级的的queue被选中,如果优先级相同,采用公平轮询的方式进行仲裁,例如根据queue的标号的依次顺序轮询;该最高优先级的queue被选中时,再对该最高优先级queue内的每个任务采用优先级结合公平轮询的方式进行仲裁,例如依次两个两个任务进行优先级比较,最后最高优先级的的任务被选中进行处理,如果优先级相同,采用公平轮询的方式进行仲裁,例如根据该最高优先级queue内的每个任务的标号的依次顺序轮询。
在本发明的另一实施例中,至少两个queue也可以进行至少两种组级别的分组,例如包括至少两个大queue组,每个大queue组包括至少一个小queue组,每个小queue组包括至少一个queue,每个queue包括至少一个任务,所述任务处理装置为每个大queue组配置优先级,用于标示各个大queue组进行处理的顺序;所述任务处理装置为每个大queue组内的每个小queue组配置优先级,用于标示各个小queue组进行处理的顺序;所述任务处理装置还可以为每个小queue组内的每个queue配置优先级,用于标示各个queue进行处理的顺序;所述任务处理装置还为每个所述queue中每个任务配置优先级,用于标示各个任务进行处理的顺序。所述任务处理装置处理经过先采用优先级结合公平轮询的方式对各个大queue组进行仲裁选出一个大queue组;然后先采用优先级结合公平轮询的方式对所述选出的大queue组内的各个小queue组进行仲裁选出一个小queue组;再然后采用优先级结合公平轮询的方式对所述选出的小queue组内的各个queue进行仲裁选出一个queue,再然后采用优先级结合公平轮询的方式对所述选出的queue内的各个任务进行仲裁后选择的一个任务。
例如可以是2级组:大组,小组,也可以是至少3级组。为描述方便,本实施例以2级组进行描述,例如将多queue组分组为至少两个大组,例如,N个queue被分组为k小组,所述k小组被分组为i个大组,即每个大queue组包括至少一小queue组,每个小queue组包括n个queue,其中N,i,k和n均为自然数。在本发明的另一实施例中,分组可以平均分组,也可以不平均分组,每组包括的queue的数量可以相同或不相同,本实施例不限制。任务被要求处理时采用优先级结合公平轮询的方式进行仲裁,先对大queue组进行优先级的比较仲裁出最高优先级的大queue组,然后对该最高优先级大queue组内的小queue组进行优先级比较仲裁出最高优先级的小queue组,再然后对该最高优先级小queue组内的queue进行优先级比较仲裁出最高优先级的queue,最后对最高优先级queue内的任务进行优先级比较仲裁出最高优先级的任务进行处理,在上述优先级比较过程中,如果优先级相同,采用公平轮询的方式进行仲裁,具体如下所述:例如依次两组两组的大queue组进行优先级比较,最后最高优先级的大queue组被最优先处理,如果优先级相同,采用公平轮询的方式进行仲裁,例如根据大queue组的标号的依次顺序轮询;然后依次两组两组的queue组进行优先级比较,最后最高优先级的queue组被最优先处理,如果优先级相同,采用公平轮询的方式进行仲裁,例如根据queue组的标号的依次顺序轮询;该最高优先级的queue组被选中时,再对该最高优先级queue组内的每个queue采用优先级结合公平轮询的方式进行仲裁,例如依次两个两个queue进行优先级比较,最后最高优先级的的queue被选中,如果优先级相同,采用公平轮询的方式进行仲裁,例如根据queue的标号的依次顺序轮询;该最高优先级的queue被选中时,再对该最高优先级queue内的每个任务采用优先级结合公平轮询的方式进行仲裁,例如依次两个两个任务进行优先级比较,最后最高优先级的的任务被选中进行处理,如果优先级相同,采用公平轮询的方式进行仲裁,例如根据该最高优先级queue内的每个任务的标号的依次顺序轮询。
上述实施例中,每个queue可以同时存放至少一个任务(即N个),不需要等待前面的任务全部完成后再配置下一个任务,一个queue中至少两个任务间可以无间隙切换,即第一个任务完成以后,就可以直接执行第二个任务,不需要等待准备任务的时间,大大提高了任务的处理速率。进一步,queue的任务均存储到存储器中,减少逻辑面积,降低成本;由于每个queue的面积得到大幅度降低,所以可以根据需求扩展queue的个数,因此扩展性较好。
下面实施例中,发起访问核为如下的至少一个:至少一个CPU22,至少一个数字信号处理器(DSP)24,至少一个HAC26,至少一个DMA28。所述接收访问核为如下的至少一个:至少一个CPU21,至少一个双倍速率同步动态随机存储器(DDR)23,至少一个L2M25和至少一个数字信号处理器(DSP)27。
如图8所示,为本发明实施例提供的一种存储器的结构示意图,所述存储器可以为存储单元,缓存器或寄存器,该存储器是设置于发起访问核与接收访问核之间的装置。通过该存储器可以完成发起访问核与接收访问核之间的通信。所述存储器包括接收模块801,存储模块802和发送模块803。
所述接收模块801,用于接收发起访问核或接收访问核配置的任务。
例如,所述接收模块801,用于通过交叉开关(crossbar)接收所述发起访问核或接收访问核发送的其配置的任务。
所述存储模块802,用于以至少一个队列(queue)的方式存储所有任务,其中,每个队列(queue)采用先进先出FIFO方式或堆栈方式或随机方式存储任务。
在本发明的另一实施例中,所述存储模块802用于存储至少一个queue的任务,其中,每个queue可以同时存放至少一个任务(即N个),N为自然数。
在本发明的另一实施例中,所述存储模块802中每个queue对应一个发起访问核或接收访问核内的一个存储单元,例如发起访问核或接收访问核内的缓存器,所述存储模块802用于当发起访问核或接收访问核内的一个存储单元存储任务满时,将多余的任务存储于所述存储单元对应的queue中。所述发送模块803,用于当发起访问核或接收访问核内的一个存储单元存储任务不满时,将所述存储单元对应queue的任务发送给该发起访问核或接收访问核的存储单元直到该存储单元存满任务,在本发明的另一实施例中,所述存储模块802中每个queue的大小可以动态配置。
每个queue的大小可以根据需求动态分配,即N的大小根据需要处理任务的多少进行动态分配。例如,发起访问核或接收访问核中最多可能有100个任务排队等待被处理,那么N分配为100就可以了。另假设发起访问核或接收访问核在这个系统中,最多可能出现500个任务等待处理,那么给发起访问核或接收访问核的N就分配500。依次类推,根据需求分配。
在本发明的另一实施例中,任意一个queue中的每个任务可以单独取消,在存储模块802中,每个任务存储到queue中时,都有一个标识位,标识该任务是否有效,例如标识位标示为1表示任务有效,标识位标示为0表示任务无效,反之亦然。
在本发明的另一实施例中,该标识位可以由发起访问核或接收访问核根据所述标识位的任务是否需要处理确定是否进行修改。例如,当任务存储到queue0的第0个位置时,发起访问核将其标识位置为有效(例如标识位为1)。当某个时间点,发起访问核确定该任务不需要处理,可以来修改标识位,将其置为无效(例如标识位为0),那么该任务就被取消了。被该任务被取消后,该任务在存储模块802中的存储位置也可以被其它任务占用。在本发明的另一实施例,当某个时间点,发起访问核确定该任务需要处理,保持该标识位(即标识位为1),该任务在存储模块802中的存储位置不可以被其它任务占用。上述标示位,为高电平表示有效,为低电平表示无效。
在本发明的另一实施例中,所述发起访问核或接收访问核可以为每个queue内的每个任务配置优先级,用于标示各个任务进行处理的顺序。所述发送模块803,还用于将经过优先级结合公平轮询的方式仲裁后的任务发送给所述发起访问核或接收访问核进行处理。
在本发明的另一实施例中,如果所述存储模块802用于存储至少两个queue,所述发起访问核或接收访问核可以为每个queue配置优先级,用于标示各个queue进行处理的顺序;所述发起访问核或接收访问核还为每个所述queue中每个任务配置优先级,用于标示各个任务进行处理的顺序。所述发送模块803,用于将先采用优先级结合公平轮询的方式对各个queue进行仲裁选出一个queue,然后采用优先级结合公平轮询的方式对所述选出的queue内的各个任务进行仲裁得出的任务发送给所述发起访问核或接收访问核进行处理。
在本发明的另一实施例中,至少两个queue也可以进行分组,例如至少两个queue可以被分组为至少两组,所述发起访问核或接收访问核为每个queue组配置优先级,用于标示各个queue组进行处理的顺序;所述发起访问核或接收访问核还可以为每个queue组内的每个queue配置优先级,用于标示各个queue进行处理的顺序;所述发起访问核或接收访问核还为每个所述queue中每个任务配置优先级,用于标示各个任务进行处理的顺序。所述发送模块803,还用于将经过先采用优先级结合公平轮询的方式对各个queue组进行仲裁选出一queue组;然后采用优先级结合公平轮询的方式对所述选出的queue组内的各个queue进行仲裁选出一个queue,再然后采用优先级结合公平轮询的方式对所述选出的queue内的各个任务进行仲裁得出的任务发送给所述发起访问核或接收访问核进行处理。
在本发明的另一实施例中,至少两个queue也可以进行至少两种组级别的分组,例如包括至少两个大queue组,每个大queue组包括至少一个小queue组,每个小queue组包括至少一个queue,每个queue包括至少一个任务,所述发起访问核或接收访问核为每个大queue组配置优先级,用于标示各个大queue组进行处理的顺序;所述发起访问核或接收访问核为每个大queue组内的每个小queue组配置优先级,用于标示各个小queue组进行处理的顺序;所述发起访问核或接收访问核还可以为每个小queue组内的每个queue配置优先级,用于标示各个queue进行处理的顺序;所述发起访问核或接收访问核还为每个所述queue中每个任务配置优先级,用于标示各个任务进行处理的顺序。
可选的,任务被要求处理时,所述发送模块803,用于将经过优先级结合公平轮询的方式仲裁后的任务发送给所述发起访问核或接收访问核,例如,所述发送模块803可以通过交叉开关(crossbar),向相应的处理器核发送任务,例如,通过交叉开关将任务发送给所述接收访问的CPU。
所述采用优先级结合公平轮询的方式对任务进行仲裁的具体实现可以参考步骤603的描述,在此不再赘述。
在本发明的另一实施例中,所述存储模块802中每个queue对应一个发起访问核或接收访问核内的一个存储单元,例如发起访问核或接收访问核内的缓存器,当发起访问核或接收访问核内的一个存储单元存储任务满时,所述存储模块802将多余的任务存储于所述存储单元对应的queue中,当发起访问核或接收访问核内的一个存储单元存储任务不满时,所述发送模块803,还用于将所述存储单元对应queue的任务发送给该发起访问核或接收访问核的存储单元直到该存储单元存满任务,在本发明的另一实施例中,所述存储模块802中每个queue的大小可以动态配置。
由上述描述可知,本实施例通过在发起访问核与接收访问核之间设置存储器,所述存储器以至少一个队列(queue)的方式存储所有任务,每个队列(queue)采用先进先出(FIFO)方式或堆栈方式或随机的方式存储任务。每个queue可以同时存放至少一个任务(即N个),不需要等待前面的任务全部完成后再配置下一个任务,一个queue中至少两个任务间可以无间隙切换,即第一个任务完成以后,就可以直接执行第二个任务,不需要等待准备任务的时间,大大提高了任务的处理速率。进一步,queue的任务均存储到存储器中,减少逻辑面积,降低成本;由于每个queue的面积得到大幅度降低,所以可以根据需求扩展queue的个数,因此扩展性较好。
图9为本发明另一实施例提供的一种任务处理装置的结构示意图,所述任务处理装置可以为所述发起访问核或接收访问核,本实施例以配置硬件单元的方式为例。如图9所示,所述任务处理装置包括配置模块901,发送模块902和接收模块903。
所述配置模块901,用于配置任务。
所述发送模块902,用于将所述配置的任务发送给存储器,其中,所述存储器以至少一个队列(queue)的方式存储所有任务,其中,每个队列(queue)采用先进先出FIFO方式或堆栈方式或随机方式存储任务。
所述接收模块903,用于当任务需要被处理时,接收所述存储器发送的任务。
在本发明的另一实施例中,所述任务处理装置还包括处理模块904,用于处理经过采用优先级结合公平轮询的方式进行仲裁后选择的任务。
在本发明的另一实施例中,所述发送模块902,用于通过交叉开关(crossbar)将所述配置的任务发送给存储器。所述接收模块903,用于通过交叉开关(crossbar)接收所述存储器发送的任务。
该存储器是设置于发起访问核与接收访问核之间的装置,通过该存储器可以完成发起访问核与接收访问核之间的通信。所述存储器以至少一个队列(queue)的方式存储所有任务,其中,每个队列(queue)采用先进先出FIFO方式或堆栈方式或随机方式存储任务。
在本发明的另一实施例中,每个queue可以同时存放至少一个任务(即N个),N为自然数。
在本发明的另一实施例中,所述任务处理装置还包括至少一个存储单元,所述存储器中每个queue对应一个所述任务处理装置内的一个存储单元,例如所述任务处理装置内的缓存器,所述发送模块902,还用于当所述任务处理装置内的一个存储单元存储任务满时,将多余的任务发送给所述存储器,由存储器将所述多余的任务存储在该存储单元对应的queue内;所述接收模块903,还用于当所述任务处理装置内的一个存储单元存储任务不满时,接收所述存储器发送的该存储单元对应的queue的任务,所述存储单元,还用于存储所述接收单元接收的任务直到存满任务,在本发明的另一实施例中,所述存储器中每个queue的大小可以动态配置。
所述配置模块901,还用于根据需求动态分配每个queue的大小,即N的大小根据需要处理任务的多少进行动态分配。例如,所述任务处理装置中最多可能有100个任务排队等待被处理,那么所述配置模块901用于将N分配为100。另假设所述任务处理装置在这个系统中,最多可能出现500个任务等待处理,那么所述配置模块901,用于给所述任务处理装置的N分配为500。依次类推,根据需求分配。
在本发明的另一实施例中,所述配置模块901,还用于将任意一个queue中的每个任务单独取消,在存储器中,每个任务存储到queue中时,都有一个标识位,标识该任务是否有效,例如标识位标示为1表示任务有效,标识位标示为0表示任务无效,反之亦然。
在本发明的另一实施例中,所述配置模块901,还用于为每个所述queue中的每个任务设置一个标识位,用于标识该任务是否有效。所述配置模块901还用于根据任务是否需要处理确定是否修改所述任务的标识位。例如,当任务存储到queue0的第0个位置时,所述配置模块901用于将其标识位置为有效(例如标识位为1)。当某个时间点,所述配置模块901,用于确定该任务不需要处理,可以来修改标识位,将其置为无效(例如标识位为0),那么该任务就被取消了。被该任务被取消后,该任务在存储器中的存储位置也可以被其它任务占用。在本发明的另一实施例,当某个时间点,所述配置模块901,用于确定该任务需要处理,保持该标识位(即标识位为1),该任务在存储器中的存储位置不可以被其它任务占用。上述标示位,为高电平表示有效,为低电平表示无效。
可选的,所述处理模块904用于处理任务时,所述接收模块903,用于接收所述存储器发送的queue中的任务,例如,可以通过交叉开关(crossbar),接收所述存储器发送的任务。
在本发明的另一实施例中,所述配置模块901可以为每个queue内的每个任务配置优先级,用于标示各个任务进行处理的顺序。所述处理模块904还用于处理经过优先级结合公平轮询的方式进行仲裁后选出的一个任务。
在本发明的另一实施例中,如果所述存储器存储至少两个queue,所述配置模块901可以为每个queue配置优先级,用于标示各个queue进行处理的顺序;所述配置模块901还为每个所述queue中每个任务配置优先级,用于标示各个任务进行处理的顺序。所述处理模块904,用于处理经过先采用优先级结合公平轮询的方式对各个queue进行仲裁选出一个queue,然后采用优先级结合公平轮询的方式对所述选出的queue内的各个任务进行仲裁后选择的任务
如图4所示,为本发明另一实施例的一种队列组的任务仲裁结构示意图,该队列组的任务仲裁在一仲裁处理器中完成,该仲裁处理器的具体功能以及其与存储器的连接关系具体如图5所对应的实施例所述。该任务组包括标号依次为0-3的共4个队列:que0,que1,que2和que3,每个队列包括至少两个任务,即que0,que1,que2,que3各自均包括标号依次为0-31的共32个任务。任务被要求处理时采用优先级结合公平轮询的方式进行仲裁,即根据优先级对该que0,que1,que2和que3进行仲裁,例如两个两个queue进行优先级比较,最后选出优先级最高的queue,如果任务的优先级相同,则4个queue中的任务公平轮询,即处理顺序为:que0>que1>que2>que3>que0>que1>que2>que3>que0。经过仲裁后,如果que0的任务优先级最高,就给que0配置一个最高的优先级,其他的类似。然后,该最高优先级的queue内每个任务也采用优先级结合公平轮询的方式进行仲裁,例如依次两个两个任务进行优先级比较,最后最高优先级的的任务被选中进行处理,如果优先级相同,采用公平轮询的方式进行仲裁,例如根据该最高优先级queue内的每个任务的标号的依次顺序轮询。所述处理模块904用于处理选出的任务。
在本发明的另一实施例中,至少两个queue也可以进行分组,例如至少两个queue可以被分组为至少两组,所述配置模块901为每个queue组配置优先级,用于标示各个queue组进行处理的顺序;所述发起访问核或接收访问核还可以为每个queue组内的每个queue配置优先级,用于标示各个queue进行处理的顺序;所述发起访问核或接收访问核还为每个所述queue中每个任务配置优先级,用于标示各个任务进行处理的顺序。所述处理模块904,还用于处理经过先采用优先级结合公平轮询的方式对各个queue组进行仲裁选出一queue组;然后采用优先级结合公平轮询的方式对所述选出的queue组内的各个queue进行仲裁选出一个queue,再然后采用优先级结合公平轮询的方式对所述选出的queue内的各个任务进行仲裁后选择的任务。
例如,至少两个queue被分组为至少两组时,可以为每queue组和每queue组内的每个queue分别配置优先级,且每个queue内的每个任务也配置优先级。例如,N个queue被分组为k组,每queue组包括n个queue,其中N,k和n均为自然数。在本发明的另一实施例中,分组可以平均分组,也可以不平均分组,每组包括的queue的数量可以相同或不相同,本实施例不限制。kqueue组的每queue组被配置一个优先级,每queue组内的每个queue也被配置一个优先级。任务被要求处理时采用优先级结合公平轮询的方式进行仲裁,例如,先对queue组进行优先级的比较仲裁出最高优先级的queue组,然后对该最高优先级queue组内的queue进行优先级比较仲裁出最高优先级的queue,最后对最高优先级queue内的任务进行优先级比较仲裁出最高优先级的任务进行处理,在上述优先级比较过程中,如果优先级相同,采用公平轮询的方式进行仲裁,具体如下所述:例如依次两组两组的queue组进行优先级比较,最后最高优先级的queue组被最优先处理,如果优先级相同,采用公平轮询的方式进行仲裁,例如根据queue组的标号的依次顺序轮询;该最高优先级的queue组被选中时,再对该最高优先级queue组内的每个queue采用优先级结合公平轮询的方式进行仲裁,例如依次两个两个queue进行优先级比较,最后最高优先级的的queue被选中,如果优先级相同,采用公平轮询的方式进行仲裁,例如根据queue的标号的依次顺序轮询;该最高优先级的queue被选中时,再对该最高优先级queue内的每个任务采用优先级结合公平轮询的方式进行仲裁,例如依次两个两个任务进行优先级比较,最后最高优先级的的任务被选中进行处理,如果优先级相同,采用公平轮询的方式进行仲裁,例如根据该最高优先级queue内的每个任务的标号的依次顺序轮询。所述处理模块904用于处理选出的任务。
在本发明的另一实施例中,至少两个queue也可以进行至少两种组级别的分组,例如包括至少两个大queue组,每个大queue组包括至少一个小queue组,每个小queue组包括至少一个queue,每个queue包括至少一个任务,所述配置模块901为每个大queue组配置优先级,用于标示各个大queue组进行处理的顺序;所述配置模块901为每个大queue组内的每个小queue组配置优先级,用于标示各个小queue组进行处理的顺序;所述发起访问核或接收访问核还可以为每个小queue组内的每个queue配置优先级,用于标示各个queue进行处理的顺序;所述发起访问核或接收访问核还为每个所述queue中每个任务配置优先级,用于标示各个任务进行处理的顺序。所述任务被要求处理时,先采用优先级结合公平轮询的方式对各个大queue组进行仲裁选出一个大queue组;然后先采用优先级结合公平轮询的方式对所述选出的大queue组内的各个小queue组进行仲裁选出一个小queue组;再然后采用优先级结合公平轮询的方式对所述选出的小queue组内的各个queue进行仲裁选出一个queue,再然后采用优先级结合公平轮询的方式对所述选出的queue内的各个任务进行仲裁。所述处理模块904用于处理选出的任务。
例如可以是2级组:大组,小组,也可以是至少3级组。为描述方便,本实施例以2级组进行描述,例如将多queue组分组为至少两个大组,例如,N个queue被分组为k小组,所述k小组被分组为i个大组,即每个大queue组包括至少一小queue组,每个小queue组包括n个queue,其中N,i,k和n均为自然数。在本发明的另一实施例中,分组可以平均分组,也可以不平均分组,每组包括的queue的数量可以相同或不相同,本实施例不限制。任务被要求处理时采用优先级结合公平轮询的方式进行仲裁,先对大queue组进行优先级的比较仲裁出最高优先级的大queue组,然后对该最高优先级大queue组内的小queue组进行优先级比较仲裁出最高优先级的小queue组,再然后对该最高优先级小queue组内的queue进行优先级比较仲裁出最高优先级的queue,最后对最高优先级queue内的任务进行优先级比较仲裁出最高优先级的任务进行处理,在上述优先级比较过程中,如果优先级相同,采用公平轮询的方式进行仲裁,具体如下所述:例如依次两组两组的大queue组进行优先级比较,最后最高优先级的大queue组被最优先处理,如果优先级相同,采用公平轮询的方式进行仲裁,例如根据大queue组的标号的依次顺序轮询;然后依次两组两组的queue组进行优先级比较,最后最高优先级的queue组被最优先处理,如果优先级相同,采用公平轮询的方式进行仲裁,例如根据queue组的标号的依次顺序轮询;该最高优先级的queue组被选中时,再对该最高优先级queue组内的每个queue采用优先级结合公平轮询的方式进行仲裁,例如依次两个两个queue进行优先级比较,最后最高优先级的的queue被选中,如果优先级相同,采用公平轮询的方式进行仲裁,例如根据queue的标号的依次顺序轮询;该最高优先级的queue被选中时,再对该最高优先级queue内的每个任务采用优先级结合公平轮询的方式进行仲裁,例如依次两个两个任务进行优先级比较,最后最高优先级的的任务被选中进行处理,如果优先级相同,采用公平轮询的方式进行仲裁,例如根据该最高优先级queue内的每个任务的标号的依次顺序轮询。所述处理模块904还用于处理选出的任务。
上述实施例中,每个queue可以同时存放至少一个任务(即N个),不需要等待前面的任务全部完成后再配置下一个任务,一个queue中至少两个任务间可以无间隙切换,即第一个任务完成以后,就可以直接执行第二个任务,不需要等待准备任务的时间,大大提高了任务的处理速率。进一步,queue的任务均存储到存储器中,减少逻辑面积,降低成本;由于每个queue的面积得到大幅度降低,所以可以根据需求扩展queue的个数,因此扩展性较好。
如图10所示,为本发明实施例提供的一种存储器的结构示意图,所述存储器可以为存储单元,缓存器或寄存器,该存储器是设置于发起访问核与接收访问核之间的装置。通过该存储器可以完成发起访问核与接收访问核之间的通信。所述存储器包括接收器1001,存储模块1002和发送器1003。
所述接收器1001,用于接收发起访问核或接收访问核配置的任务。
例如,所述接收器1001,用于通过交叉开关(crossbar)接收所述发起访问核或接收访问核发送的其配置的任务。
所述存储模块1002,用于以至少一个队列(queue)的方式存储所有任务,其中,每个队列(queue)采用先进先出FIFO方式或堆栈方式或随机方式存储任务。
在本发明的另一实施例中,所述存储模块1002用于存储至少一个queue的任务,其中,每个queue可以同时存放至少一个任务(即N个),N为自然数。
在本发明的另一实施例中,所述存储模块1002中每个queue对应一个发起访问核或接收访问核内的一个存储单元,例如发起访问核或接收访问核内的缓存器,所述存储模块1002用于当发起访问核或接收访问核内的一个存储单元存储任务满时,将多余的任务存储于所述存储单元对应的queue中。所述发送器1003,用于当发起访问核或接收访问核内的一个存储单元存储任务不满时,将所述存储单元对应queue的任务发送给该发起访问核或接收访问核的存储单元直到该存储单元存满任务,在本发明的另一实施例中,所述存储模块1002中每个queue的大小可以动态配置。
每个queue的大小可以根据需求动态分配,即N的大小根据需要处理任务的多少进行动态分配。例如,发起访问核或接收访问核中最多可能有100个任务排队等待被处理,那么N分配为100就可以了。另假设发起访问核或接收访问核在这个系统中,最多可能出现500个任务等待处理,那么给发起访问核或接收访问核的N就分配500。依次类推,根据需求分配。
在本发明的另一实施例中,任意一个queue中的每个任务可以单独取消,在存储模块1002中,每个任务存储到queue中时,都有一个标识位,标识该任务是否有效,例如标识位标示为1表示任务有效,标识位标示为0表示任务无效,反之亦然。
在本发明的另一实施例中,该标识位可以由发起访问核或接收访问核根据所述标识位的任务是否需要处理确定是否进行修改。例如,当任务存储到queue0的第0个位置时,发起访问核将其标识位置为有效(例如标识位为1)。当某个时间点,发起访问核确定该任务不需要处理,可以来修改标识位,将其置为无效(例如标识位为0),那么该任务就被取消了。被该任务被取消后,该任务在存储模块1002中的存储位置也可以被其它任务占用。在本发明的另一实施例,当某个时间点,发起访问核确定该任务需要处理,保持该标识位(即标识位为1),该任务在存储模块1002中的存储位置不可以被其它任务占用。上述标示位,为高电平表示有效,为低电平表示无效。
在本发明的另一实施例中,所述发起访问核或接收访问核可以为每个queue内的每个任务配置优先级,用于标示各个任务进行处理的顺序。所述发送器1003,还用于将经过优先级结合公平轮询的方式仲裁后的任务发送给所述发起访问核或接收访问核进行处理。
在本发明的另一实施例中,如果所述存储模块1002用于存储至少两个queue,所述发起访问核或接收访问核可以为每个queue配置优先级,用于标示各个queue进行处理的顺序;所述发起访问核或接收访问核还为每个所述queue中每个任务配置优先级,用于标示各个任务进行处理的顺序。所述发送器1003,用于将先采用优先级结合公平轮询的方式对各个queue进行仲裁选出一个queue,然后采用优先级结合公平轮询的方式对所述选出的queue内的各个任务进行仲裁得出的任务发送给所述发起访问核或接收访问核进行处理。
在本发明的另一实施例中,至少两个queue也可以进行分组,例如至少两个queue可以被分组为至少两组,所述发起访问核或接收访问核为每个queue组配置优先级,用于标示各个queue组进行处理的顺序;所述发起访问核或接收访问核还可以为每个queue组内的每个queue配置优先级,用于标示各个queue进行处理的顺序;所述发起访问核或接收访问核还为每个所述queue中每个任务配置优先级,用于标示各个任务进行处理的顺序。所述发送器1003,还用于将经过先采用优先级结合公平轮询的方式对各个queue组进行仲裁选出一queue组;然后采用优先级结合公平轮询的方式对所述选出的queue组内的各个queue进行仲裁选出一个queue,再然后采用优先级结合公平轮询的方式对所述选出的queue内的各个任务进行仲裁得出的任务发送给所述发起访问核或接收访问核进行处理。
在本发明的另一实施例中,至少两个queue也可以进行至少两种组级别的分组,例如包括至少两个大queue组,每个大queue组包括至少一个小queue组,每个小queue组包括至少一个queue,每个queue包括至少一个任务,所述发起访问核或接收访问核为每个大queue组配置优先级,用于标示各个大queue组进行处理的顺序;所述发起访问核或接收访问核为每个大queue组内的每个小queue组配置优先级,用于标示各个小queue组进行处理的顺序;所述发起访问核或接收访问核还可以为每个小queue组内的每个queue配置优先级,用于标示各个queue进行处理的顺序;所述发起访问核或接收访问核还为每个所述queue中每个任务配置优先级,用于标示各个任务进行处理的顺序。
可选的,任务被要求处理时,所述发送器1003,用于将经过优先级结合公平轮询的方式仲裁后的任务发送给所述发起访问核或接收访问核,例如,所述发送器1003可以通过交叉开关(crossbar),向相应的处理器核发送任务,例如,通过交叉开关将任务发送给所述接收访问的CPU。
所述采用优先级结合公平轮询的方式对任务进行仲裁的具体实现可以参考步骤603的描述,在此不再赘述。
在本发明的另一实施例中,所述存储模块1002中每个queue对应一个发起访问核或接收访问核内的一个存储单元,例如发起访问核或接收访问核内的缓存器,当发起访问核或接收访问核内的一个存储单元存储任务满时,所述存储模块1002将多余的任务存储于所述存储单元对应的queue中,当发起访问核或接收访问核内的一个存储单元存储任务不满时,所述发送器1003,还用于将所述存储单元对应queue的任务发送给该发起访问核或接收访问核的存储单元直到该存储单元存满任务,在本发明的另一实施例中,所述存储模块1002中每个queue的大小可以动态配置。
由上述描述可知,本实施例通过在发起访问核与接收访问核之间设置存储器,所述存储器以至少一个队列(queue)的方式存储所有任务,每个队列(queue)采用先进先出(FIFO)方式或堆栈方式或随机的方式存储任务。每个queue可以同时存放至少一个任务(即N个),不需要等待前面的任务全部完成后再配置下一个任务,一个queue中至少两个任务间可以无间隙切换,即第一个任务完成以后,就可以直接执行第二个任务,不需要等待准备任务的时间,大大提高了任务的处理速率。进一步,queue的任务均存储到存储器中,减少逻辑面积,降低成本;由于每个queue的面积得到大幅度降低,所以可以根据需求扩展queue的个数,因此扩展性较好。
图11为本发明另一实施例提供的一种任务处理装置的结构示意图,所述任务处理装置可以为所述发起访问核或接收访问核,本实施例以配置硬件单元的方式为例。如图11所示,所述任务处理装置包括处理器1101,发送器1102和接收器1103。
所述处理器1101,用于配置任务。
所述发送器1102,用于将所述配置的任务发送给存储器,其中,所述存储器以至少一个队列(queue)的方式存储所有任务,其中,每个队列(queue)采用先进先出FIFO方式或堆栈方式或随机方式存储任务。
所述接收器1103,用于当任务需要被处理时,接收所述存储器发送的任务。
在本发明的另一实施例中,所述处理器1101,还用于处理经过采用优先级结合公平轮询的方式进行仲裁后选择的任务。
在本发明的另一实施例中,所述发送器1102,用于通过交叉开关(crossbar)将所述配置的任务发送给存储器。所述接收器1103,用于通过交叉开关(crossbar)接收所述存储器发送的任务。
该存储器是设置于发起访问核与接收访问核之间的装置,通过该存储器可以完成发起访问核与接收访问核之间的通信。所述存储器以至少一个队列(queue)的方式存储所有任务,其中,每个队列(queue)采用先进先出FIFO方式或堆栈方式或随机方式存储任务。
在本发明的另一实施例中,每个queue可以同时存放至少一个任务(即N个),N为自然数。
在本发明的另一实施例中,所述任务处理装置还包括至少一个存储单元,所述存储器中每个queue对应一个所述任务处理装置内的一个存储单元,例如所述任务处理装置内的缓存器,所述发送器1102,还用于当所述任务处理装置内的一个存储单元存储任务满时,将多余的任务发送给所述存储器,由存储器将所述多余的任务存储在该存储单元对应的queue内;所述接收器1103,还用于当所述任务处理装置内的一个存储单元存储任务不满时,接收所述存储器发送的该存储单元对应的queue的任务,所述存储单元,还用于存储所述接收单元接收的任务直到存满任务,在本发明的另一实施例中,所述存储器中每个queue的大小可以动态配置。
所述处理器1101,还用于根据需求动态分配每个queue的大小,即N的大小根据需要处理任务的多少进行动态分配。例如,所述任务处理装置中最多可能有100个任务排队等待被处理,那么所述处理器1101用于将N分配为100。另假设所述任务处理装置在这个系统中,最多可能出现500个任务等待处理,那么所述处理器1101,用于给所述任务处理装置的N分配为500。依次类推,根据需求分配。
在本发明的另一实施例中,所述处理器1101,还用于将任意一个queue中的每个任务单独取消,在存储器中,每个任务存储到queue中时,都有一个标识位,标识该任务是否有效,例如标识位标示为1表示任务有效,标识位标示为0表示任务无效,反之亦然。
在本发明的另一实施例中,所述处理器1101,还用于为每个所述queue中的每个任务设置一个标识位,用于标识该任务是否有效。所述处理器1101还用于根据任务是否需要处理确定是否修改所述任务的标识位。例如,当任务存储到queue0的第0个位置时,所述处理器1101用于将其标识位置为有效(例如标识位为1)。当某个时间点,所述处理器1101,用于确定该任务不需要处理,可以来修改标识位,将其置为无效(例如标识位为0),那么该任务就被取消了。被该任务被取消后,该任务在存储器中的存储位置也可以被其它任务占用。在本发明的另一实施例,当某个时间点,所述处理器1101,用于确定该任务需要处理,保持该标识位(即标识位为1),该任务在存储器中的存储位置不可以被其它任务占用。上述标示位,为高电平表示有效,为低电平表示无效。
可选的,所述处理器1101用于处理任务时,所述接收器1103,用于接收所述存储器发送的queue中的任务,例如,可以通过交叉开关(crossbar),接收所述存储器发送的任务。
在本发明的另一实施例中,所述处理器1101可以为每个queue内的每个任务配置优先级,用于标示各个任务进行处理的顺序。所述处理器1101还用于处理经过优先级结合公平轮询的方式进行仲裁后选出的一个任务。
在本发明的另一实施例中,如果所述存储器存储至少两个queue,所述处理器1101可以为每个queue配置优先级,用于标示各个queue进行处理的顺序;所述处理器1101还为每个所述queue中每个任务配置优先级,用于标示各个任务进行处理的顺序。所述处理器1101,用于处理经过先采用优先级结合公平轮询的方式对各个queue进行仲裁选出一个queue,然后采用优先级结合公平轮询的方式对所述选出的queue内的各个任务进行仲裁后选择的任务
如图4所示,为本发明另一实施例的一种队列组的任务仲裁结构示意图,该队列组的任务仲裁在一仲裁处理器中完成,该仲裁处理器的具体功能以及其与存储器的连接关系具体如图5所对应的实施例所述。该任务组包括标号依次为0-3的共4个队列:que0,que1,que2和que3,每个队列包括至少两个任务,即que0,que1,que2,que3各自均包括标号依次为0-31的共32个任务。任务被要求处理时采用优先级结合公平轮询的方式进行仲裁,即根据优先级对该que0,que1,que2和que3进行仲裁,例如两个两个queue进行优先级比较,最后选出优先级最高的queue,如果任务的优先级相同,则4个queue中的任务公平轮询,即处理顺序为:que0>que1>que2>que3>que0>que1>que2>que3>que0。经过仲裁后,如果que0的任务优先级最高,就给que0配置一个最高的优先级,其他的类似。然后,该最高优先级的queue内每个任务也采用优先级结合公平轮询的方式进行仲裁,例如依次两个两个任务进行优先级比较,最后最高优先级的的任务被选中进行处理,如果优先级相同,采用公平轮询的方式进行仲裁,例如根据该最高优先级queue内的每个任务的标号的依次顺序轮询。所述处理器1101用于处理选出的任务。
在本发明的另一实施例中,至少两个queue也可以进行分组,例如至少两个queue可以被分组为至少两组,所述处理器1101为每个queue组配置优先级,用于标示各个queue组进行处理的顺序;所述发起访问核或接收访问核还可以为每个queue组内的每个queue配置优先级,用于标示各个queue进行处理的顺序;所述发起访问核或接收访问核还为每个所述queue中每个任务配置优先级,用于标示各个任务进行处理的顺序。所述处理器1101,还用于处理经过先采用优先级结合公平轮询的方式对各个queue组进行仲裁选出一queue组;然后采用优先级结合公平轮询的方式对所述选出的queue组内的各个queue进行仲裁选出一个queue,再然后采用优先级结合公平轮询的方式对所述选出的queue内的各个任务进行仲裁后选择的任务。
例如,至少两个queue被分组为至少两组时,可以为每queue组和每queue组内的每个queue分别配置优先级,且每个queue内的每个任务也配置优先级。例如,N个queue被分组为k组,每queue组包括n个queue,其中N,k和n均为自然数。在本发明的另一实施例中,分组可以平均分组,也可以不平均分组,每组包括的queue的数量可以相同或不相同,本实施例不限制。kqueue组的每queue组被配置一个优先级,每queue组内的每个queue也被配置一个优先级。任务被要求处理时采用优先级结合公平轮询的方式进行仲裁,例如,先对queue组进行优先级的比较仲裁出最高优先级的queue组,然后对该最高优先级queue组内的queue进行优先级比较仲裁出最高优先级的queue,最后对最高优先级queue内的任务进行优先级比较仲裁出最高优先级的任务进行处理,在上述优先级比较过程中,如果优先级相同,采用公平轮询的方式进行仲裁,具体如下所述:例如依次两组两组的queue组进行优先级比较,最后最高优先级的queue组被最优先处理,如果优先级相同,采用公平轮询的方式进行仲裁,例如根据queue组的标号的依次顺序轮询;该最高优先级的queue组被选中时,再对该最高优先级queue组内的每个queue采用优先级结合公平轮询的方式进行仲裁,例如依次两个两个queue进行优先级比较,最后最高优先级的的queue被选中,如果优先级相同,采用公平轮询的方式进行仲裁,例如根据queue的标号的依次顺序轮询;该最高优先级的queue被选中时,再对该最高优先级queue内的每个任务采用优先级结合公平轮询的方式进行仲裁,例如依次两个两个任务进行优先级比较,最后最高优先级的的任务被选中进行处理,如果优先级相同,采用公平轮询的方式进行仲裁,例如根据该最高优先级queue内的每个任务的标号的依次顺序轮询。所述处理器1101用于处理选出的任务。
在本发明的另一实施例中,至少两个queue也可以进行至少两种组级别的分组,例如包括至少两个大queue组,每个大queue组包括至少一个小queue组,每个小queue组包括至少一个queue,每个queue包括至少一个任务,所述处理器1101为每个大queue组配置优先级,用于标示各个大queue组进行处理的顺序;所述处理器1101为每个大queue组内的每个小queue组配置优先级,用于标示各个小queue组进行处理的顺序;所述发起访问核或接收访问核还可以为每个小queue组内的每个queue配置优先级,用于标示各个queue进行处理的顺序;所述发起访问核或接收访问核还为每个所述queue中每个任务配置优先级,用于标示各个任务进行处理的顺序。所述任务被要求处理时,先采用优先级结合公平轮询的方式对各个大queue组进行仲裁选出一个大queue组;然后先采用优先级结合公平轮询的方式对所述选出的大queue组内的各个小queue组进行仲裁选出一个小queue组;再然后采用优先级结合公平轮询的方式对所述选出的小queue组内的各个queue进行仲裁选出一个queue,再然后采用优先级结合公平轮询的方式对所述选出的queue内的各个任务进行仲裁。所述处理器1101用于处理选出的任务。
例如可以是2级组:大组,小组,也可以是至少3级组。为描述方便,本实施例以2级组进行描述,例如将多queue组分组为至少两个大组,例如,N个queue被分组为k小组,所述k小组被分组为i个大组,即每个大queue组包括至少一小queue组,每个小queue组包括n个queue,其中N,i,k和n均为自然数。在本发明的另一实施例中,分组可以平均分组,也可以不平均分组,每组包括的queue的数量可以相同或不相同,本实施例不限制。任务被要求处理时采用优先级结合公平轮询的方式进行仲裁,先对大queue组进行优先级的比较仲裁出最高优先级的大queue组,然后对该最高优先级大queue组内的小queue组进行优先级比较仲裁出最高优先级的小queue组,再然后对该最高优先级小queue组内的queue进行优先级比较仲裁出最高优先级的queue,最后对最高优先级queue内的任务进行优先级比较仲裁出最高优先级的任务进行处理,在上述优先级比较过程中,如果优先级相同,采用公平轮询的方式进行仲裁,具体如下所述:例如依次两组两组的大queue组进行优先级比较,最后最高优先级的大queue组被最优先处理,如果优先级相同,采用公平轮询的方式进行仲裁,例如根据大queue组的标号的依次顺序轮询;然后依次两组两组的queue组进行优先级比较,最后最高优先级的queue组被最优先处理,如果优先级相同,采用公平轮询的方式进行仲裁,例如根据queue组的标号的依次顺序轮询;该最高优先级的queue组被选中时,再对该最高优先级queue组内的每个queue采用优先级结合公平轮询的方式进行仲裁,例如依次两个两个queue进行优先级比较,最后最高优先级的的queue被选中,如果优先级相同,采用公平轮询的方式进行仲裁,例如根据queue的标号的依次顺序轮询;该最高优先级的queue被选中时,再对该最高优先级queue内的每个任务采用优先级结合公平轮询的方式进行仲裁,例如依次两个两个任务进行优先级比较,最后最高优先级的的任务被选中进行处理,如果优先级相同,采用公平轮询的方式进行仲裁,例如根据该最高优先级queue内的每个任务的标号的依次顺序轮询。所述处理器1101还用于处理选出的任务。
上述实施例中,每个queue可以同时存放至少一个任务(即N个),不需要等待前面的任务全部完成后再配置下一个任务,一个queue中至少两个任务间可以无间隙切换,即第一个任务完成以后,就可以直接执行第二个任务,不需要等待准备任务的时间,大大提高了任务的处理速率。进一步,queue的任务均存储到存储器中,减少逻辑面积,降低成本;由于每个queue的面积得到大幅度降低,所以可以根据需求扩展queue的个数,因此扩展性较好。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如至少两个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到至少两个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以对本申请的技术方案进行了详细介绍,但以上实施例的说明只是用于帮助理解本发明的方法及其核心思想,不应理解为对本发明的限制。本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。

Claims (55)

1.一种管理任务的方法,其特征在于,包括:
存储器接收发起访问核或接收访问核配置的任务;
所述存储器以至少一个队列queue的方式存储所有任务,其中,每个队列queue采用先进先出FIFO方式或堆栈方式或随机方式存储任务。
2.如权利要求1所述的方法,其特征在于,所述存储器中每个queue对应所述发起访问核或接收访问核内的一个存储单元,所述方法还包括:
当所述发起访问核或接收访问核内的一个存储单元存储任务满时,所述存储器将多余的任务存储于所述存储单元对应的queue中;或,
当所述发起访问核或接收访问核内的一个存储单元存储任务不满时,所述存储器将所述存储单元对应的queue内的任务发送给所述存储单元直到所述存储单元存满任务。
3.如权利要求1所述的方法,其特征在于,每个所述queue的大小根据需求动态分配。
4.如权利要求1所述的方法,其特征在于,每个所述queue中的每个任务被设置一个标识位,用于标识该任务是否有效。
5.如权利要求4所述的方法,其特征在于,所述标识位由所述发起访问核或接收访问核根据所述标识位的任务是否需要处理确定是否需要进行修改。
6.如权利要求1-5任意一项所述的方法,其特征在于,每个所述queue中每个任务被配置优先级,用于标示各个任务进行处理的顺序。
7.如权利要求6所述的方法,其特征在于,所述任务被要求处理时,采用优先级结合公平轮询的方式对各个任务进行仲裁。
8.如权利要求1-5任意一项所述的方法,其特征在于,每个queue被配置优先级,用于标示各个queue进行处理的顺序;且每个所述queue中每个任务被配置优先级,用于标示各个任务进行处理的顺序。
9.如权利要求8所述的方法,其特征在于,所述任务被要求处理时,先采用优先级结合公平轮询的方式对各个queue进行仲裁选出一个queue,然后采用优先级结合公平轮询的方式对所述选出的queue内的各个任务进行仲裁。
10.如权利要求1-5任意一项所述的方法,其特征在于,至少两个queue被分组为至少两个queue组,每个queue组被配置优先级,用于标示各个queue组进行处理的顺序;每个queue组内的每个queue被配置优先级,用于标示各个queue进行处理的顺序;每个所述queue中每个任务被配置优先级,用于标示各个任务进行处理的顺序。
11.如权利要求10所述的方法,其特征在于,所述任务被要求处理时,先采用优先级结合公平轮询的方式对各个queue组进行仲裁选出一queue组;然后采用优先级结合公平轮询的方式对所述选出的queue组内的各个queue进行仲裁选出一个queue,再然后采用优先级结合公平轮询的方式对所述选出的queue内的各个任务进行仲裁。
12.一种存储器,其特征在于,所述存储器包括:
接收模块,用于接收发起访问核或接收访问核配置的任务;
存储模块,用于以至少一个队列queue的方式存储所有任务,其中,每个队列queue采用先进先出FIFO方式或堆栈方式或随机方式存储任务。
13.如权利要求12所述的存储器,其特征在于,所述存储单元中每个queue对应所述发起访问核或接收访问核内的一个存储单元,其中,
所述存储模块,用于当所述发起访问核或接收访问核内的一个存储单元存储任务满时,将多余的任务存储于所述存储单元对应的queue中;或
所述存储器还包括发送模块,用于当所述发起访问核或接收访问核内的一个存储单元存储任务不满时,将所述存储单元对应的queue内的任务发送给所述存储单元直到所述存储单元存满任务。
14.如权利要求12所述的存储器,其特征在于,每个所述queue的大小根据需求动态分配。
15.如权利要求12所述的存储器,其特征在于,所述queue中的每个任务被设置一个标识位,用于标识该任务是否有效。
16.如权利要求15所述的存储器,其特征在于,所述标识位由所述发起访问核或接收访问核根据所述标识位是否需要处理确定是否需要进行修改。
17.如权利要求12-16任意一项所述的存储器,其特征在于,每个所述queue中每个任务被配置优先级,用于标示各个任务进行处理的顺序。
18.如权利要求17所述的存储器,其特征在于,所述存储器还包括发送模块,用于将经过优先级结合公平轮询的方式仲裁后的任务发送给所述发起访问核或接收访问核进行处理。
19.如权利要求12-16任意一项所述的存储器,其特征在于,每个queue被配置优先级,用于标示各个queue进行处理的顺序;且每个所述queue中每个任务被配置优先级,用于标示各个任务进行处理的顺序。
20.如权利要求19所述的存储器,其特征在于,所述存储器还包括发送模块,用于将先采用优先级结合公平轮询的方式对各个queue进行仲裁选出一个queue,然后采用优先级结合公平轮询的方式对所述选出的queue内的各个任务进行仲裁得出的任务发送给所述发起访问核或接收访问核进行处理。
21.如权利要求12-16任意一项所述的存储器,其特征在于,至少两个queue被分组为至少两queue组,每个queue组被配置优先级,用于标示各个queue组进行处理的顺序;每个queue组内的每个queue被配置优先级,用于标示各个queue进行处理的顺序;每个所述queue中每个任务被配置优先级,用于标示各个任务进行处理的顺序。
22.如权利要求21所述的存储器,其特征在于,所述存储器还包括发送模块,还用于将经过先采用优先级结合公平轮询的方式对各个queue组进行仲裁选出一queue组;然后采用优先级结合公平轮询的方式对所述选出的queue组内的各个queue进行仲裁选出一个queue,再然后采用优先级结合公平轮询的方式对所述选出的queue内的各个任务进行仲裁得出的任务发送给所述发起访问核或接收访问核进行处理。
23.一种管理任务的方法,其特征在于,包括:
任务处理装置配置任务;
所述任务处理装置将所配置的任务发送给存储器,其中,所述存储器以至少一个队列queue的方式存储所有任务,其中,每个队列queue采用先进先出FIFO方式或堆栈方式或随机方式存储任务。
24.如权利要求23所述的方法,其特征在于,所述存储器中每个queue对应所述任务处理装置内的一个存储单元,所述方法还包括:
当所述任务处理装置内的一个存储单元存储任务满时,所述任务处理装置将该存储单元多余的任务发送给存储器,以便所述存储器将该多余的任务存储于所述存储单元对应的queue中;或
当所述任务处理装置内的一个存储单元存储任务不满时,所述任务处理装置接收所述存储器发送的所述存储单元对应的queue内的任务,并存储到所述存储单元直到所述存储单元存满任务。
25.如权利要求23所述的方法,其特征在于,所述方法还包括:
所述任务处理装置根据需求动态分配每个所述queue的大小。
26.如权利要求23所述的方法,其特征在于,所述方法还包括:
所述任务处理装置为每个所述queue中的每个任务设置一个标识位,用于标识该任务是否有效。
27.如权利要求26所述的方法,其特征在于,所述方法还包括:
所述任务处理装置根据任务是否需要处理确定是否修改所述任务的标识位。
28.如权利要求23-27任意一项所述的方法,其特征在于,所述方法还包括:
所述任务处理装置为每个所述queue中每个任务配置优先级,用于标示各个任务进行处理的顺序。
29.如权利要求28所述的方法,其特征在于,所述方法还包括:
所述任务处理装置处理经过优先级结合公平轮询的方式进行仲裁后选择的任务。
30.如权利要求23-27任意一项所述的方法,其特征在于,所述方法还包括:
所述任务处理装置为每个queue配置优先级,用于标示各个queue进行处理的顺序;且为每个所述queue中每个任务配置优先级,用于标示各个任务进行处理的顺序。
31.如权利要求30所述的方法,其特征在于,所述方法还包括:
所述任务处理装置处理经过先采用优先级结合公平轮询的方式对各个queue进行仲裁选出一个queue,然后采用优先级结合公平轮询的方式对所述选出的queue内的各个任务进行仲裁后选择的任务。
32.如权利要求23-27任意一项所述的方法,其特征在于,至少两个queue被分组为至少两queue组,所述方法还包括:
所述任务处理装置为每个queue组配置优先级,用于标示各个queue组进行处理的顺序;为每个queue组内的每个queue配置优先级,用于标示各个queue进行处理的顺序;为每个所述queue中每个任务配置优先级,用于标示各个任务进行处理的顺序。
33.如权利要求32所述的方法,其特征在于,所述方法还包括:
所述任务处理装置处理经过先采用优先级结合公平轮询的方式对各个queue组进行仲裁选出一queue组;然后采用优先级结合公平轮询的方式对所述选出的queue组内的各个queue进行仲裁选出一个queue,再然后采用优先级结合公平轮询的方式对所述选出的queue内的各个任务进行仲裁后选择的任务。
34.一种任务处理装置,其特征在于,包括:
配置模块,用于配置任务;
发送模块,用于将所配置的任务发送给存储器,其中,所述存储器以至少一个队列queue的方式存储所有任务,其中,每个队列queue采用先进先出FIFO方式或堆栈方式或随机方式存储任务。
35.如权利要求34所述的任务处理装置,其特征在于,所述任务处理装置还包括至少一个存储单元,所述存储器中每个queue对应所述任务处理装置内的一个存储单元,
所述发送模块,还用于当一个存储单元存储任务满时,将所述存储单元多余的任务发送给存储器,由所述存储器将该多余的任务存储于所述存储单元对应的queue中;或
所述任务处理装置还包括接收模块,用于当一个存储单元存储任务不满时,接收所述存储器发送的所述存储单元对应的queue内的任务,所述存储单元,还用于存储所述接收单元接收的任务直到存满任务。
36.如权利要求34所述的任务处理装置,其特征在于,所述配置模块,还用于根据需求动态分配每个所述queue的大小。
37.如权利要求34所述的任务处理装置,其特征在于,所述配置模块,还用于为每个所述queue中的每个任务设置一个标识位,用于标识该任务是否有效。
38.如权利要求37所述的任务处理装置,其特征在于,所述配置模块,还用于根据任务是否需要处理确定是否修改所述任务的标识位。
39.如权利要求34-38任意一项所述的任务处理装置,其特征在于,所述配置模块,还用于为每个所述queue中每个任务配置优先级,用于标示各个任务进行处理的顺序。
40.如权利要求39所述的任务处理装置,其特征在于,所述任务处理装置还包括:
处理模块,用于处理经过优先级结合公平轮询的方式进行仲裁后选择的任务。
41.如权利要求34-38任意一项所述的任务处理装置,其特征在于,所述配置模块,还用于为每个queue配置优先级,用于标示各个queue进行处理的顺序;且为每个所述queue中每个任务配置优先级,用于标示各个任务进行处理的顺序。
42.如权利要求41所述的任务处理装置,其特征在于,所述任务处理装置还包括:
处理模块,用于处理经过先采用优先级结合公平轮询的方式对各个queue进行仲裁选出一个queue,然后采用优先级结合公平轮询的方式对所述选出的queue内的各个任务进行仲裁后选择的任务。
43.如权利要求34-38任意一项所述的任务处理装置,其特征在于,至少两个queue被分组为至少两queue组,所述配置模块,还用于为每个queue组配置优先级,用于标示各个queue组进行处理的顺序;为每个queue组内的每个queue配置优先级,用于标示各个queue进行处理的顺序;为每个所述queue中每个任务配置优先级,用于标示各个任务进行处理的顺序。
44.如权利要求43所述的任务处理装置,其特征在于,所述任务处理装置还包括:
处理模块,用于处理经过先采用优先级结合公平轮询的方式对各个queue组进行仲裁选出一queue组;然后采用优先级结合公平轮询的方式对所述选出的queue组内的各个queue进行仲裁选出一个queue,再然后采用优先级结合公平轮询的方式对所述选出的queue内的各个任务进行仲裁后选择的任务。
45.一种通信设备,其特征在于,所述通信设备包括任务处理装置,交叉开关和至少一个存储器,其中,所述任务处理装置通过所述交叉开关与所述存储器通信,其中,
所述任务处理装置,用于配置任务并向所述存储器发送所述配置的任务;
所述存储器,用于以至少一个队列queue的方式存储所有任务,其中,每个队列queue采用先进先出FIFO方式或堆栈方式或随机方式存储任务。
46.如权利要求45所述的通信设备,其特征在于,所述存储器中每个queue对应所述任务处理装置内的一个存储单元,其中,
所述存储器,还用于当所述任务处理装置内的一个存储单元存储任务满时,将多余的任务存储于所述存储单元对应的queue中;或
所述存储器,用于当所述任务处理装置内的一个存储单元存储任务不满时,将所述存储单元对应的queue内的任务发送给所述存储单元直到所述存储单元存满任务。
47.如权利要求45所述的通信设备,其特征在于,所述任务处理装置还用于根据需求动态分配每个所述queue的大小。
48.如权利要求45所述的通信设备,其特征在于,所述任务处理装置还用于为每个所述queue中的每个任务设置一个标识位,用于标识该任务是否有效。
49.如权利要求48所述的通信设备,其特征在于,所述任务处理装置还用于根据所述任务是否需要处理确定是否需要修改所述任务的标识位。
50.如权利要求45-49任意一项所述的通信设备,其特征在于,所述任务处理装置还用于为每个所述queue中每个任务配置优先级,用于标示各个任务进行处理的顺序。
51.如权利要求50所述的通信设备,其特征在于,所述任务处理装置还用于处理经过优先级结合公平轮询的方式对各个任务进行仲裁后选择的任务。
52.如权利要求45-49任意一项所述的通信设备,其特征在于,所述任务处理装置还用于为每个queue配置优先级,用于标示各个queue进行处理的顺序;还用于为每个所述queue中每个任务配置优先级,用于标示各个任务进行处理的顺序。
53.如权利要求52所述的通信设备,其特征在于,所述任务处理装置还用于处理经过先采用优先级结合公平轮询的方式对各个queue进行仲裁选出一个queue,然后采用优先级结合公平轮询的方式对所述选出的queue内的各个任务进行仲裁后选择的任务。
54.如权利要求45-49任意一项所述的通信设备,其特征在于,至少两个queue被分组为至少两queue组,所述任务处理装置还用于为每个queue组配置优先级,用于标示各个queue组进行处理的顺序;还用于为每个queue组内的每个queue配置优先级,用于标示各个queue进行处理的顺序;还用于每个所述queue中每个任务配置优先级,用于标示各个任务进行处理的顺序。
55.如权利要求54所述的通信设备,其特征在于,所述任务处理装置还用于处理经过先采用优先级结合公平轮询的方式对各个queue组进行仲裁选出一queue组;然后采用优先级结合公平轮询的方式对所述选出的queue组内的各个queue进行仲裁选出一个queue,再然后采用优先级结合公平轮询的方式对所述选出的queue内的各个任务进行仲裁后选择的任务。
CN2013102723918A 2013-07-01 2013-07-01 一种管理任务的方法和设备 Pending CN103353851A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2013102723918A CN103353851A (zh) 2013-07-01 2013-07-01 一种管理任务的方法和设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2013102723918A CN103353851A (zh) 2013-07-01 2013-07-01 一种管理任务的方法和设备

Publications (1)

Publication Number Publication Date
CN103353851A true CN103353851A (zh) 2013-10-16

Family

ID=49310225

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2013102723918A Pending CN103353851A (zh) 2013-07-01 2013-07-01 一种管理任务的方法和设备

Country Status (1)

Country Link
CN (1) CN103353851A (zh)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104462420A (zh) * 2014-12-12 2015-03-25 北京国双科技有限公司 数据库的查询任务的执行方法和装置
CN104765701A (zh) * 2015-03-24 2015-07-08 华为技术有限公司 数据访问方法及设备
CN105224289A (zh) * 2014-07-03 2016-01-06 阿里巴巴集团控股有限公司 一种活动信息匹配方法及设备
CN105653362A (zh) * 2015-12-23 2016-06-08 北京奇虎科技有限公司 用于管理定时任务的方法和设备
CN108628676A (zh) * 2017-03-16 2018-10-09 哈尔滨英赛克信息技术有限公司 一种面向多核系统的内存管理装置及方法
CN111104062A (zh) * 2019-11-22 2020-05-05 中科寒武纪科技股份有限公司 存储管理方法、装置和存储介质
US20210075745A1 (en) * 2019-09-10 2021-03-11 GigaIO Networks, Inc. Methods and apparatus for improved polling efficiency in network interface fabrics
CN112823343A (zh) * 2020-03-11 2021-05-18 深圳市大疆创新科技有限公司 直接内存存取单元、处理器、设备、处理方法及存储介质
WO2022016767A1 (zh) * 2020-07-20 2022-01-27 北京泽石科技有限公司 数据队列的处理方法及装置
CN114328102A (zh) * 2021-12-24 2022-04-12 浪潮(北京)电子信息产业有限公司 设备状态监控方法、装置、设备及计算机可读存储介质
US11593291B2 (en) 2018-09-10 2023-02-28 GigaIO Networks, Inc. Methods and apparatus for high-speed data bus connection and fabric management
US11593288B2 (en) 2019-10-02 2023-02-28 GigalO Networks, Inc. Methods and apparatus for fabric interface polling

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050278520A1 (en) * 2002-04-03 2005-12-15 Fujitsu Limited Task scheduling apparatus in distributed processing system
WO2008046716A1 (en) * 2006-10-20 2008-04-24 International Business Machines Corporation A multi-processor computing system and its task allocating method
US20120069029A1 (en) * 2010-09-20 2012-03-22 Qualcomm Incorporated Inter-processor communication techniques in a multiple-processor computing platform
CN102541746A (zh) * 2010-12-07 2012-07-04 深圳市金蝶中间件有限公司 一种队列的数据处理方法和系统
CN103019810A (zh) * 2011-09-19 2013-04-03 辉达公司 具有不同执行优先级的计算任务的调度和管理
CN103064736A (zh) * 2012-12-06 2013-04-24 华为技术有限公司 任务处理装置及方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050278520A1 (en) * 2002-04-03 2005-12-15 Fujitsu Limited Task scheduling apparatus in distributed processing system
WO2008046716A1 (en) * 2006-10-20 2008-04-24 International Business Machines Corporation A multi-processor computing system and its task allocating method
US20120069029A1 (en) * 2010-09-20 2012-03-22 Qualcomm Incorporated Inter-processor communication techniques in a multiple-processor computing platform
CN102541746A (zh) * 2010-12-07 2012-07-04 深圳市金蝶中间件有限公司 一种队列的数据处理方法和系统
CN103019810A (zh) * 2011-09-19 2013-04-03 辉达公司 具有不同执行优先级的计算任务的调度和管理
CN103064736A (zh) * 2012-12-06 2013-04-24 华为技术有限公司 任务处理装置及方法

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105224289A (zh) * 2014-07-03 2016-01-06 阿里巴巴集团控股有限公司 一种活动信息匹配方法及设备
CN104462420A (zh) * 2014-12-12 2015-03-25 北京国双科技有限公司 数据库的查询任务的执行方法和装置
CN104462420B (zh) * 2014-12-12 2018-09-18 北京国双科技有限公司 数据库的查询任务的执行方法和装置
CN104765701A (zh) * 2015-03-24 2015-07-08 华为技术有限公司 数据访问方法及设备
CN104765701B (zh) * 2015-03-24 2018-05-29 华为技术有限公司 数据访问方法及设备
CN105653362A (zh) * 2015-12-23 2016-06-08 北京奇虎科技有限公司 用于管理定时任务的方法和设备
CN108628676A (zh) * 2017-03-16 2018-10-09 哈尔滨英赛克信息技术有限公司 一种面向多核系统的内存管理装置及方法
US11593291B2 (en) 2018-09-10 2023-02-28 GigaIO Networks, Inc. Methods and apparatus for high-speed data bus connection and fabric management
US20210075745A1 (en) * 2019-09-10 2021-03-11 GigaIO Networks, Inc. Methods and apparatus for improved polling efficiency in network interface fabrics
US11593288B2 (en) 2019-10-02 2023-02-28 GigalO Networks, Inc. Methods and apparatus for fabric interface polling
CN111104062A (zh) * 2019-11-22 2020-05-05 中科寒武纪科技股份有限公司 存储管理方法、装置和存储介质
CN112823343A (zh) * 2020-03-11 2021-05-18 深圳市大疆创新科技有限公司 直接内存存取单元、处理器、设备、处理方法及存储介质
WO2021179218A1 (zh) * 2020-03-11 2021-09-16 深圳市大疆创新科技有限公司 直接内存存取单元、处理器、设备、处理方法及存储介质
WO2022016767A1 (zh) * 2020-07-20 2022-01-27 北京泽石科技有限公司 数据队列的处理方法及装置
CN114328102A (zh) * 2021-12-24 2022-04-12 浪潮(北京)电子信息产业有限公司 设备状态监控方法、装置、设备及计算机可读存储介质
CN114328102B (zh) * 2021-12-24 2024-02-09 浪潮(北京)电子信息产业有限公司 设备状态监控方法、装置、设备及计算机可读存储介质

Similar Documents

Publication Publication Date Title
CN103353851A (zh) 一种管理任务的方法和设备
US10412021B2 (en) Optimizing placement of virtual machines
CN103888293B (zh) 多通道fc网络数据仿真系统的数据通道调度方法
CN106951388A (zh) 一种基于PCIe的DMA数据传输方法及系统
CN101887382A (zh) 动态优先级的仲裁方法及装置
CN102841869B (zh) 一种基于fpga的多通道i2c控制器
US11740929B2 (en) Registering a custom atomic operation with the operating system
CN104461979A (zh) 基于环形总线的多核片上通信网络实现方法
CN102253909A (zh) Fpga环境下多用途pci接口及其数据传输方法
CN110046050A (zh) 一种核间数据传输的装置和方法
JP2016085733A (ja) ダイ上インターコネクトのためのアーキテクチャ
US9524260B2 (en) Universal serial bus (USB) communication systems and methods
CN203590251U (zh) 基于串行RapidIO总线的FlexRay控制系统
CN104767697A (zh) 一种航空全双工交换式以太网控制器及其控制方法
KR101847905B1 (ko) 공유 캐시 메모리 시스템들에 대한 대략적인 사용량 측정들의 생성
CN104765701A (zh) 数据访问方法及设备
CN1561492A (zh) 用于与总线连接的总线系统和总线接口
CN100351824C (zh) 总线系统和用于连接到总线的总线接口
US8527684B2 (en) Closed loop dynamic interconnect bus allocation method and architecture for a multi layer SoC
CN105393234B (zh) 用于管理usb数据传送的系统和方法
CN103853676A (zh) 基于PCIe总线的信道分配、释放、数据传输方法和系统
CN108616570B (zh) 一种基于fpga非对称门限服务轮询系统
CN102110074B (zh) 多核处理器及流分类控制装置和方法
CN205051882U (zh) 无线联网装置
CN113157602B (zh) 一种对内存进行分配的方法、设备及计算机可读存储介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20131016

RJ01 Rejection of invention patent application after publication