基于队列的通信方法及设备技术

技术编号:41749151 阅读:34 留言:0更新日期:2024-06-21 21:34
本申请提供一种基于队列的通信方法及设备,该方法包括:生产者向目标队列添加队列条目并更新目标队列的第一指针,以执行入队操作;消费者读取目标队列中的M个队列条目、对M个队列条目进行处理,M大于或者等于1;消费者在对所读取的队列条目处理完成后更新目标队列的第二指针,以针对处理完成的队列条目执行出队操作;生产者基于更新后的第二指针获取目标队列的状态变化情况。本申请通过不执行出队操作使得消费者有机会阻止生产者执行入队操作,在消费者执行出队操作后,生产者获取目标队列的状态变化情况,知晓消费者的工作情况;本申请基于改进的队列管理方式,实现了生产者与消费者之间基于队列的通信。

【技术实现步骤摘要】

本申请涉及计算机,尤其涉及一种基于队列的通信方法及设备


技术介绍

1、队列是电子信息领域中常用的用于在部件之间交换数据的电路或数据结构。例如,nvme(nvm express,高速非易失存储)协议中定义了成对的sq(submission queue,提交队列)与cq(completion queue,完成队列)。

2、参见图1所示,主机向存储设备发送一个或多个主机命令(io命令),将一个或多个主机命令存储到sq中,存储设备从sq获取主机命令,并进行处理以及将各个主机命令的处理结果(cpl)存储到cq中;主机从cq中获取主机命令的处理结果即可知道该主机命令处理完成。另外,sq与cq可以位于主机内存中,也可以位于存储设备的内存中。

3、sq和cq的管理通过头指针和尾指针进行,具体如图2所示,每个队列都包括头指针header与尾指针tail,主机向sq添加命令提示符(cmd)时,将cmd写入sq.tail所指示的位置,并进行sq.tail++(入队操作);设备从sq取出cmd时,从sq.header指示的位置获取cmd,并进行sq.he本文档来自技高网...

【技术保护点】

1.一种基于队列的通信方法,其特征在于,包括:

2.根据权利要求1所述的方法,其特征在于,所述生产者向目标队列添加队列条目并更新所述目标队列的第一指针,包括:

3.根据权利要求1或2所述的方法,其特征在于,所述消费者读取所述目标队列中的M个队列条目,包括:

4.根据权利要求1至3任一项所述的方法,其特征在于,还包括:

5.根据权利要求1至4任一项所述的方法,其特征在于,

6.根据权利要求5所述的方法,其特征在于,

7.根据权利要求6所述的方法,其特征在于,所述生产者响应于无法获取所述目标队列的状态变化情况,基于所述第...

【技术特征摘要】

1.一种基于队列的通信方法,其特征在于,包括:

2.根据权利要求1所述的方法,其特征在于,所述生产者向目标队列添加队列条目并更新所述目标队列的第一指针,包括:

3.根据权利要求1或2所述的方法,其特征在于,所述消费者读取所述目标队列中的m个队列条目,包括:

4.根据权利要求1至3任一项所述的方法,其特征在于,还包括:

5.根据权利要求1至4任一项所述的方法,其特征在于,

6.根据权利要求5所述的方法,其特征在于,

7.根据权利...

【专利技术属性】
技术研发人员:张恩东
申请(专利权)人:北京忆芯科技有限公司
类型:发明
国别省市:

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

1