队列交换信息的方法及系统技术方案

技术编号:24168139 阅读:22 留言:0更新日期:2020-05-16 02:05
本申请公开了队列交换信息的方法及系统。公开的通过队列交换信息的方法包括:第一生产者将第一消息写入队列;第一消费者从队列获取第一消息;第一消费者将第一消息的处理结果写入队列内的第一消息;其中,第一消息的处理结果形成第二消息;第二消费者从队列获取第二消息。本申请的存储器中的单一队列,既用于第一生产者向第一消费者提交第一信息,也用于第一消费者向第二消费者提交第二信息,从而降低了对存储器的存储空间的需求。

Method and system of queue exchange information

【技术实现步骤摘要】
队列交换信息的方法及系统
本申请涉及电子设备
,尤其涉及队列交换信息的方法及系统。
技术介绍
在电子设备与外部设备之间可以进行DMA(DirectMemoryAccess,直接存储器访问)传输。如图1所示,电子设备100包括物理层(PHY)模块110、DMA模块120、存储器130以及中央处理器(CPU)140。外部设备300通过PHY模块110耦合到电子设备100,实现电子设备100与外部设备300之间进行DMA传输。电子设备100还耦合到存储器400。在DMA传输中,在DMA模块120的控制下,将存储器400的数据传输给外部设备300,或者将外部设备300提供的数据存储到存储器400。作为举例,存储器400是DRAM(动态随机存取存储器),同存储器130相比,存储器400具有更大的存储容量。CPU140通过生成DMA命令(或称DMA描述符,用于指示在电子设备100与外部设备300之间的一次或多次DMA传输)并写入存储器130来指示DMA模块120进行DMA传输。并且,响应于DMA传输的完成,DMA模块120将DMA命令的执行结果写入存储器130,从而使CPU140知晓DMA命令处理完成,并从获得DMA命令的执行结果。因此,在传输DMA命令时,CPU140和DMA模块120形成一对生产者和消费者;在传输DMA命令的执行结果时,DMA模块120和CPU140形成另一对生产者和消费者。现有技术中,存储器130中设有两个队列,一个队列用于传输DMA命令,另一个队列用于传输DMA命令的执行结果。两个队列的使用对存储器提出了很高的存储空间要求,同时降低了数据处理速度。
技术实现思路
本申请的目的在于提供一种通过队列交换信息的方法和处理队列的系统,用于降低对存储器的存储空间的需求,提高数据处理速度。根据本申请的第一方面,提供了根据本申请第一方面的通过队列交换信息的第一方法,包括:第一生产者将第一消息写入队列;第一消费者从队列获取第一消息;第一消费者将第一消息的处理结果写入队列内的第一消息;其中,第一消息的处理结果形成第二消息;第二消费者从队列获取第二消息。根据本申请的第一方面的通过队列交换信息的第一方法,提供了根据本申请第一方面的通过队列交换信息的第二方法,其中,第一生产者依据队列的写指针将第一消息写入队列;第一消费者依据队列的读指针从队列获取第一消息;第一消费者依据读指针将第二消息写入队列。根据本申请的第一方面的通过队列交换信息的第一方法,提供了根据本申请第一方面的通过队列交换信息的第三方法,其中,第一生产者依据队列的写指针将第一消息写入队列;第一消费者依据队列的读指针从队列获取第一消息;第一消费者记录第一消息在队列中的位置,并依据所记录的位置将第二消息写入队列。根据本申请的第一方面的通过队列交换信息的第一至第三方法之一,提供了根据本申请第一方面的通过队列交换信息的第四方法,其中,第二消费者依据队列的读完成指针从队列获取第二消息。根据本申请的第一方面的通过队列交换信息的第二至第四方法之一,提供了根据本申请第一方面的通过队列交换信息的第四方法,其中,包括:响应于第一消息被写入队列,更新写指针;响应于第二消息被写入队列,更新读指针。根据本申请的第一方面的通过队列交换信息的第四方法,提供了根据本申请第一方面的通过队列交换信息的第六方法,其中,包括:响应于第二消费者从队列获取第二消息,更新读完成指针。根据本申请的第一方面的通过队列交换信息的第四方法,提供了根据本申请第一方面的通过队列交换信息的第七方法,其中,包括:将读完成指针写入存储器,第一生产者从存储器获取读完成指针。根据本申请的第一方面的通过队列交换信息的第四方法,提供了根据本申请第一方面的通过队列交换信息的第八方法,其中,包括:第二消费者将读完成指针提供给第一生产者。根据本申请的第一方面的通过队列交换信息的第二或第三方法,提供了根据本申请第一方面的通过队列交换信息的第九方法,其中,包括:第一生产者将写指针提供给第一消费者;第一消费者将读指针提供给第二消费者。根据本申请的第一方面的通过队列交换信息的第一至第九方法之一,提供了根据本申请第一方面的通过队列交换信息的第十方法,其中,写指针包括回绕标记或发生回绕的次数信息。根据本申请的第一方面的通过队列交换信息的第四至第九方法之一,提供了根据本申请第一方面的通过队列交换信息的第十一方法,其中,响应于读完成指针和读指针指向相同的地址,第二消费者暂停从队列中获取第二消息。根据本申请的第一方面的通过队列交换信息的第四至第十一方法之一,提供了根据本申请第一方面的通过队列交换信息的第十二方法,其中,响应于读完成指针超前于写指针,第一生产者暂停向队列写入第一消息。根据本申请的第一方面的通过队列交换信息的第四至第十二方法之一,提供了根据本申请第一方面的通过队列交换信息的第十三方法,其中,读完成指针指向队列的队头;写指针指向队列的队尾。根据本申请的第一方面的通过队列交换信息的第一至第十三方法之一,提供了根据本申请第一方面的通过队列交换信息的第十四方法,其中,在存储器中提供队列。根据本申请的第一方面的通过队列交换信息的第一至第十四方法之一,提供了根据本申请第一方面的通过队列交换信息的第十五方法,其中,第一生产者与第二消费者是直接存储器访问加速器;第一消费者是直接存储器访问处理模块;第一消息是直接存储器访问命令,第二消息是直接存储器访问命令的处理结果。根据本申请的第一方面的通过队列交换信息的第十四方法,提供了根据本申请第一方面的通过队列交换信息的第十六方法,其中,存储器包括多个相互独立的队列,第一生产者、第一消费者和第二消费者通过多个队列交换信息。根据本申请的第二方面,提供了根据本申请第二方面的第一处理队列的系统,包括:第一生产者,将第一消息写入队列;第一消费者,从队列获取第一消息;并且将第一消息的处理结果写入队列内的第一消息;其中,第一消息的处理结果形成第二消息;第二消费者,从队列获取第二消息。根据本申请的第二方面的第一处理队列的系统,提供了根据本申请第二方面的第二处理队列的系统,其中,队列包括:写指针,指示向队列写入消息的地址;读指针,指示第一消费者从队列读出消息的地址。根据本申请的第二方面的第二处理队列的系统,提供了根据本申请第二方面的第三处理队列的系统,其中,第一生产者依据队列的写指针将第一消息写入队列;第一消费者依据队列的读指针从队列获取第一消息;第一消费者依据读指针将第二消息写入队列。根据本申请的第二方面的第二处理队列的系统,提供了根据本申请第二方面的第四处理队列的系统,其中,第一生产者依据队列的写指针将第一消息写入队列;第一消费者依据队列的读指针从队列获取第一消息;第一消费者记本文档来自技高网
...

【技术保护点】
1.一种通过队列交换信息的方法,其特征在于,包括:/n第一生产者将第一消息写入队列;/n第一消费者从所述队列获取所述第一消息;/n所述第一消费者将所述第一消息的处理结果写入所述队列内的所述第一消息;其中,所述第一消息的处理结果形成第二消息;/n第二消费者从所述队列获取所述第二消息。/n

【技术特征摘要】
1.一种通过队列交换信息的方法,其特征在于,包括:
第一生产者将第一消息写入队列;
第一消费者从所述队列获取所述第一消息;
所述第一消费者将所述第一消息的处理结果写入所述队列内的所述第一消息;其中,所述第一消息的处理结果形成第二消息;
第二消费者从所述队列获取所述第二消息。


2.如权利要求1所述的方法,其特征在于,所述第一生产者依据所述队列的写指针将所述第一消息写入所述队列;
所述第一消费者依据所述队列的读指针从所述队列获取所述第一消息;
所述第一消费者记录所述第一消息在所述队列中的位置,并依据所记录的所述位置将所述第二消息写入所述队列。


3.如权利要求1-2中任一项所述的方法,其特征在于,所述第二消费者依据所述队列的读完成指针从所述队列获取所述第二消息。


4.如权利要求3所述的方法,其特征在于,所述方法还包括:
将所述读完成指针写入存储器,所述第一生产者从所述存储器获取所述读完成指针;或者,
所述第二消费者将所述读完成指针提供给所述第一生产者。


5.如权利要求1-4中任一项所述的方法,其特征在于,所述写...

【专利技术属性】
技术研发人员:黄好城王祎磊伍德斌兰彤
申请(专利权)人:北京忆芯科技有限公司
类型:发明
国别省市:北京;11

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

1