命令处理系统、电子装置及电子设备制造方法及图纸

技术编号:37125850 阅读:18 留言:0更新日期:2023-04-01 05:22
本公开提供一种命令处理系统、电子装置及电子设备,旨在提高命令处理效率。其中,命令处理系统包括N个中间处理器和GPU;中间处理器被配置为:从缓冲区读取命令,向第一目标模块发送读取指示,并在读取的命令需要中间处理器自身执行的情况下,执行读取的命令;其中,若N的取值为1,第一目标模块为GPU;若N的取值大于1,最后一个中间处理器对应的第一目标模块为GPU,其他中间处理器对应的第一目标模块为下一个中间处理器;GPU被配置为:在接收到读取指示后,从缓冲区读取命令,在读取的命令需要中间处理器先执行且GPU后执行的情况下,对读取的命令进行预处理,并等待中间处理器执行完命令后,根据预处理结果执行读取的命令。根据预处理结果执行读取的命令。根据预处理结果执行读取的命令。

【技术实现步骤摘要】
命令处理系统、电子装置及电子设备


[0001]本公开涉及计算机
,尤其涉及一种命令处理系统、电子装置及电子设备。

技术介绍

[0002]基于PCIe(peripheral component interconnect express)协议所实现的图形处理器GPU,其内部的命令传输方式通常采用门铃Doorbell与缓冲区相结合的架构来实现。具体实现方案是,宿主机host首先将DMA(Direct Memory Access)命令写入应用中央处理器ACPU对应的缓冲区,并通过门铃机制通知ACPU,ACPU收到门铃中断后,从其对应的缓冲区中读取出DMA命令并执行。ACPU处理完DMA命令后通知宿主机,宿主机收到ACPU的通知后,将需要GPU处理的命令写入GPU对应的缓冲区,并通过门铃机制通知GPU,GPU收到门铃中断后,从其对应的缓冲区中读取出命令并执行。可以看出,宿主机向GPU发送命令前,需等待ACPU执行完DMA命令,导致命令的执行效率偏低。

技术实现思路

[0003]本公开的目的是提供一种命令处理系统、电子装置及电子设备,旨在提高命令处理效率。
[0004]根据本公开的一个方面,提供一种命令处理系统,包括N个中间处理器和GPU,在N的取值大于1的情况下,N个中间处理器之间具有顺序关系;中间处理器被配置为:在接收到读取指示后,从缓冲区读取命令,向第一目标模块发送读取指示,并在读取的命令需要中间处理器自身执行的情况下,执行读取的命令;其中,若N的取值为1,第一目标模块为GPU;若N的取值大于1,最后一个中间处理器对应的第一目标模块为GPU,其他中间处理器对应的第一目标模块为下一个中间处理器;GPU被配置为:在接收到读取指示后,从缓冲区读取命令,在读取的命令需要中间处理器先执行且GPU后执行的情况下,对读取的命令进行预处理,并等待中间处理器执行完命令后,根据预处理结果执行读取的命令。
[0005]本公开一种可行的实现方式中,缓冲区为循环缓冲区,循环缓冲区配置有宿主机对应的第一偏移字段、每个中间处理器对应的第二偏移字段及GPU对应的第三偏移字段,第一偏移字段用于表征宿主机最后写入循环缓冲区的命令在循环缓冲区中的位置,每个中间处理器对应的第二偏移字段用于表征相应中间处理器最后从循环缓冲区读取的命令在循环缓冲区中的位置,第三偏移字段用于表征GPU最后从循环缓冲区读取的命令在循环缓冲区中的位置;中间处理器在从缓冲区读取命令时,被配置为:根据第二目标模块的偏移字段,从循环缓冲区读取命令,并更新自身的第二偏移字段;其中,若N的取值为1,第二目标模块为宿主机;若N的取值大于1,第一个中间处理器对应的第二目标模块为宿主机,其余中间处理器对应的第二目标模块为前一个中间处理器;GPU在从缓冲区读取命令时,被配置为:根据向其发送读取指示的中间处理器的第
二偏移字段,从循环缓冲区读取命令,并更新第三偏移字段。
[0006]本公开一种可行的实现方式中,中间处理器在根据第二目标模块的偏移字段,从循环缓冲区读取命令,并更新自身的第二偏移字段时,被配置为:在自身的第二偏移字段不等于第二目标模块的偏移字段的情况下,从循环缓冲区逐个读取命令,每读取一个命令,更新一次自身的第二偏移字段,直至自身的第二偏移字段等于第二目标模块的偏移字段,停止读取命令。
[0007]本公开一种可行的实现方式中,中间处理器在向第一目标模块发送读取指示时,被配置为:在自身的第二偏移字段等于第二目标模块的偏移字段的情况下,向第一目标模块发送读取指示。
[0008]本公开一种可行的实现方式中,GPU在根据向其发送读取指示的中间处理器的第二偏移字段,从循环缓冲区读取命令,并更新第三偏移字段时,被配置为:在第三偏移字段不等于向GPU发送读取指示的中间处理器的第二偏移字段的情况下,从循环缓冲区逐个读取命令,每读取一个命令,更新一次第三偏移字段,直至第三偏移字段等于向GPU发送读取指示的中间处理器的第二偏移字段,停止读取命令。
[0009]本公开一种可行的实现方式中,中间处理器还被配置为:在从缓冲区读取命令后,判断读取的命令是否需要对应的第一目标模块执行,并判断读取的命令是否需要自身先执行且对应的第一目标模块后执行,根据判断结果,在缓冲区该命令的对应位置填充第一标识和第二标识,第一标识用于表征读取的命令是否需要对应的第一目标模块执行,第二标识用于表征读取的命令是否需要自身先执行且对应的第一目标模块后执行;在N的取值大于1的情况下,中间处理器还被配置为:在循环缓冲区读取命令后,根据相应位置的第一标识,判断读取的命令是否需要自身执行,并根据相应位置的第二标识,判断读取的命令是否需要前一个中间处理器先执行且自身后执行;GPU还被配置为:在从循环缓冲区读取命令后,根据相应位置的第一标识,判断读取的命令是否需要GPU执行,并根据相应位置的第二标识,判断读取的命令是否需要向GPU发送读取指示的中间处理器先执行且GPU后执行。
[0010]本公开一种可行的实现方式中,最后一个中间处理器还被配置为:针对需要最后一个中间处理器先执行且GPU后执行的命令,在处理完该命令后,更新该命令的fence状态,并通知GPU。
[0011]本公开一种可行的实现方式中,系统还包括宿主机,宿主机被配置为:向缓冲区中写入一个或多个命令,并向N个中间处理器中的第一个中间处理器发送读取指示。
[0012]本公开一种可行的实现方式中,宿主机在向缓冲区中写入一个或多个命令时,被配置为:根据第三偏移字段,向循环缓冲区中写入一个或多个命令,并更新第一偏移字段。
[0013]本公开一种可行的实现方式中,宿主机在根据第三偏移字段,向循环缓冲区中写入一个或多个命令时,被配置为:根据第三偏移字段,向循环缓冲区中写入一批命令,直至写入位置比所述第三偏移字段对应的位置小1,或者直至一批命令被全部写完。
[0014]本公开一种可行的实现方式中,宿主机还被配置为:针对需要中间处理器先执行且GPU后执行的命令,将中间处理器的执行部分打包至GPU的执行部分内,并将中间处理器的执行部分和GPU的执行部分整体作为一个命令写入所述循环缓冲区。
[0015]根据本公开的另一方面,还提供一种电子装置,该电子装置包括上述任一实施例
中所述的命令处理系统。在一些使用场景下,该电子装置的产品形式体现为显卡;在另一些使用场景下,该电子装置的产品形式体现为CPU主板。
[0016]根据本公开的另一方面,还提供一种电子设备,该电子设备包括上述的电子装置。在一些使用场景下,该电子设备的产品形式是便携式电子设备,例如智能手机、平板电脑、VR设备等;在一些使用场景下,该电子设备的产品形式是个人电脑、游戏主机等。
附图说明
[0017]图1是本公开一实施例提出的命令处理系统的结构示意图;图2是本公开一实施例提出的循环缓冲区的示意图;图3是本公开另一实施例提出的命令处理系统的结构示意图;图4是本公开另一实施例提出的循环缓冲区的示意图;图5是本公开另一实施例提出的命令处理系本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种命令处理系统,包括N个中间处理器和GPU,在N的取值大于1的情况下,所述N个中间处理器之间具有顺序关系;所述中间处理器被配置为:在接收到读取指示后,从缓冲区读取命令,向第一目标模块发送读取指示,并在读取的命令需要中间处理器自身执行的情况下,执行读取的命令;其中,若N的取值为1,所述第一目标模块为所述GPU;若N的取值大于1,最后一个中间处理器对应的第一目标模块为所述GPU,其他中间处理器对应的第一目标模块为下一个中间处理器;所述GPU被配置为:在接收到读取指示后,从所述缓冲区读取命令,在读取的命令需要中间处理器先执行且所述GPU后执行的情况下,对读取的命令进行预处理,并等待中间处理器执行完命令后,根据预处理结果执行读取的命令。2.根据权利要求1所述的系统,所述缓冲区为循环缓冲区,所述循环缓冲区配置有宿主机对应的第一偏移字段、每个所述中间处理器对应的第二偏移字段及所述GPU对应的第三偏移字段,所述第一偏移字段用于表征所述宿主机最后写入所述循环缓冲区的命令在所述循环缓冲区中的位置,每个中间处理器对应的第二偏移字段用于表征相应中间处理器最后从所述循环缓冲区读取的命令在所述循环缓冲区中的位置,所述第三偏移字段用于表征所述GPU最后从所述循环缓冲区读取的命令在所述循环缓冲区中的位置;所述中间处理器在从缓冲区读取命令时,被配置为:根据第二目标模块的偏移字段,从所述循环缓冲区读取命令,并更新自身的第二偏移字段;其中,若N的取值为1,所述第二目标模块为宿主机;若N的取值大于1,第一个中间处理器对应的第二目标模块为宿主机,其余中间处理器对应的第二目标模块为前一个中间处理器;所述GPU在从缓冲区读取命令时,被配置为:根据向其发送读取指示的中间处理器的第二偏移字段,从所述循环缓冲区读取命令,并更新所述第三偏移字段。3.根据权利要求2所述系统,所述中间处理器在根据第二目标模块的偏移字段,从所述循环缓冲区读取命令,并更新自身的第二偏移字段时,被配置为:在自身的第二偏移字段不等于所述第二目标模块的偏移字段的情况下,从所述循环缓冲区逐个读取命令,每读取一个命令,更新一次自身的第二偏移字段,直至自身的第二偏移字段等于所述第二目标模块的偏移字段,停止读取命令。4.根据权利要求2所述系统,所述中间处理器在向第一目标模块发送读取指示时,被配置为:在自身的第二偏移字段等于所述第二目标模块的偏移字段的情况下,向第一目标模块发送读取指示。5.根据权利要求2所述系统,所述GPU在根据向其发送读取指示的中间处理器的第二偏移字段,从所述循环缓冲区读取命令,并更新所述第三偏移字段时,被配置为:在所述第三偏移字段不等于向所述...

【专利技术属性】
技术研发人员:孙成昆唐志敏梁建胜
申请(专利权)人:北京象帝先计算技术有限公司
类型:发明
国别省市:

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

1