PCIe设备与主机设备的通信方法、系统及设备技术方案

技术编号:32818418 阅读:17 留言:0更新日期:2022-03-26 20:15
本发明专利技术公开了一种PCIe设备与主机设备的通信方法、系统及设备,其中该方法包括:PCIe设备在IPC请求消息长度小于或等于预先配置的第一环形队列缓冲区的当前可用长度时,根据消息长度和该当前可用长度确定第一环形队列缓冲区的当前深度;根据该当前深度确定可写入第一环形队列缓冲区中IPC请求消息的第一数量;将第一数量的消息写入第一环形队列缓冲区;生成第一中断信息发送至主机设备;第一环形队列缓冲区为将通过PCIe共享的仅能被PCIe访问的预设空间大小的内存配置成的缓冲区;主机设备在接收到第一中断信息时从第一环形队列缓冲区中获取IPC请求消息进行处理。本发明专利技术可以保证PCIe设备与主机设备高效安全地进行通信。PCIe设备与主机设备高效安全地进行通信。PCIe设备与主机设备高效安全地进行通信。

【技术实现步骤摘要】
PCIe设备与主机设备的通信方法、系统及设备


[0001]本专利技术涉及数据通信
,尤其涉及一种PCIe设备与主机设备的通信方法、系统及设备。

技术介绍

[0002]本部分旨在为权利要求书中陈述的本专利技术实施例提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
[0003]目前主机系统对PCIe设备的通信,主要通过以下两种方式:1. 将PCIe(PCI

Express,peripheral component interconnect express,高速串行计算机扩展总线标准)设备的寄存器空间地址映射到PCIe BAR(Base Address Registers,基址寄存器)空间,使设备寄存器空间,暴露在主机侧,然后主机通过对映射的BAR空间进行相关的读写来达到与PCIe设备通信的目的。由于设备寄存器空间暴露在主机端,对于某些敏感寄存器,比如复位、重启等,攻击者可以通过写BAR空间对设备进行一定的攻击,导致PCIe设备异常。
[0004]2. 主机访问通过PCIe通道,实现硬件IPC(Inter

Process Communication,进程间通信)通信机制进行获取配置。
[0005]上述两种通信方式存在的问题是:1. 针对PCIe BAR完全映射方式,PCIe设备资源不安全,会被随意篡改。
[0006]2. 针对硬件IPC方式:硬件实现的IPC深度小,IPC消息长度固定,使用不方便,导致通信效率低;同时,为了确保通信同步性,一次只能发送一个信息,也会导致通信效率低。

技术实现思路

[0007]本专利技术实施例提供一种PCIe设备与主机设备的通信方法,用以保证PCIe设备与主机设备高效安全地进行通信,该方法包括:高速串行计算机扩展总线标准PCIe设备在进程间通信IPC请求消息长度小于或等于预先配置的第一环形队列缓冲区的当前可用长度时,根据IPC请求消息长度和第一环形队列缓冲区的当前可用长度,确定第一环形队列缓冲区的当前深度;根据第一环形队列缓冲区的当前深度,确定可写入第一环形队列缓冲区中的IPC请求消息的第一数量;将第一数量的IPC请求消息写入第一环形队列缓冲区;生成第一中断信息发送至主机设备;所述第一环形队列缓冲区为将通过PCIe共享的预设空间大小的内存预先配置成的环形队列缓冲区,所述预设空间大小的内存仅能被PCIe设备访问;主机设备在接收到第一中断信息时,从第一环形队列缓冲区中获取第一数量的IPC请求消息,对第一数量的IPC请求消息进行处理,得到IPC请求消息的处理结果。
[0008]本专利技术实施例还提供一种PCIe设备与主机设备的通信方法,用以保证PCIe设备与主机设备高效安全地进行通信,该方法应用于PCIe设备,该方法包括:在IPC请求消息长度小于或等于预先配置的第一环形队列缓冲区的当前可用长度
时,根据IPC请求消息长度和第一环形队列缓冲区的当前可用长度,确定第一环形队列缓冲区的当前深度;所述第一环形队列缓冲区为将通过PCIe共享的预设空间大小的内存预先配置成的环形队列缓冲区,所述预设空间大小的内存仅能被PCIe设备访问;根据第一环形队列缓冲区的当前深度,确定可写入第一环形队列缓冲区中的IPC请求消息的第一数量;将第一数量的IPC请求消息写入第一环形队列缓冲区;生成第一中断信息发送至主机设备。
[0009]本专利技术实施例还提供一种PCIe设备与主机设备的通信方法,用以保证PCIe设备与主机设备高效安全地进行通信,该方法应用于主机设备,该方法包括:在接收到第一中断信息时,从第一环形队列缓冲区中获取第一数量的IPC请求消息;所述第一环形队列缓冲区为将通过PCIe共享的预设空间大小的内存预先配置成的环形队列缓冲区,所述预设空间大小的内存仅能被PCIe设备访问;对第一数量的IPC请求消息进行处理,得到IPC请求消息的处理结果。
[0010]本专利技术实施例还提供一种PCIe设备与主机设备的通信系统,用以保证PCIe设备与主机设备高效安全地进行通信,该系统包括:PCIe设备,用于在IPC请求消息长度小于或等于预先配置的第一环形队列缓冲区的当前可用长度时,根据IPC请求消息长度和第一环形队列缓冲区的当前可用长度,确定第一环形队列缓冲区的当前深度;根据第一环形队列缓冲区的当前深度,确定可写入第一环形队列缓冲区中的IPC请求消息的第一数量;将第一数量的IPC请求消息写入第一环形队列缓冲区;生成第一中断信息发送至主机设备;所述第一环形队列缓冲区为将通过PCIe共享的预设空间大小的内存预先配置成的环形队列缓冲区,所述预设空间大小的内存仅能被PCIe设备访问;主机设备,用于在接收到第一中断信息时,从第一环形队列缓冲区中获取第一数量的IPC请求消息,对第一数量的IPC请求消息进行处理,得到IPC请求消息的处理结果。
[0011]本专利技术实施例还提供一种PCIe设备,用以保证PCIe设备与主机设备高效安全地进行通信,该PCIe设备包括:第一深度确定单元,用于在IPC请求消息长度小于或等于预先配置的第一环形队列缓冲区的当前可用长度时,根据IPC请求消息长度和第一环形队列缓冲区的当前可用长度,确定第一环形队列缓冲区的当前深度;所述第一环形队列缓冲区为将通过PCIe共享的预设空间大小的内存预先配置成的环形队列缓冲区,所述预设空间大小的内存仅能被PCIe设备访问;第一数量确定单元,用于根据第一环形队列缓冲区的当前深度,确定可写入第一环形队列缓冲区中IPC请求消息的第一数量;第一写入单元,用于将第一数量的IPC请求消息写入第一环形队列缓冲区;第一中断单元,用于生成第一中断信息发送至主机设备。
[0012]本专利技术实施例还提供一种主机设备,用以保证PCIe设备与主机设备高效安全地进行通信,该主机设备包括:第二获取单元,用于在接收到第一中断信息时,从第一环形队列缓冲区中获取第一数量的IPC请求消息;所述第一环形队列缓冲区为将通过PCIe共享的预设空间大小的内
存预先配置成的环形队列缓冲区,所述预设空间大小的内存仅能被PCIe设备访问;处理单元,用于对第一数量的IPC请求消息进行处理,得到IPC请求消息的处理结果。
[0013]本专利技术实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述PCIe设备与主机设备的通信方法。
[0014]本专利技术实施例还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现上述PCIe设备与主机设备的通信方法。
[0015]首先,与现有技术中针对PCIe BAR完全映射方式,PCIe设备资源不安全的技术方案相比,本专利技术实施例提供的PCIe设备与主机设备的通信方案中,将通过PCIe共享的预设空间大小的内存作为IPC通信的共享内存,将预设空间大小的内存配置成环形队列缓冲区,所述预设空间大小的内存仅能被PCIe设备访问,基于该预先配置的第一环形队列缓冲区进行PCIe设备与主机设备的通信,可以保证本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种PCIe设备与主机设备的通信方法,其特征在于,包括:高速串行计算机扩展总线标准PCIe设备在进程间通信IPC请求消息长度小于或等于预先配置的第一环形队列缓冲区的当前可用长度时,根据IPC请求消息长度和第一环形队列缓冲区的当前可用长度,确定第一环形队列缓冲区的当前深度;根据第一环形队列缓冲区的当前深度,确定可写入第一环形队列缓冲区中的IPC请求消息的第一数量;将第一数量的IPC请求消息写入第一环形队列缓冲区;生成第一中断信息发送至主机设备;所述第一环形队列缓冲区为将通过PCIe共享的预设空间大小的内存预先配置成的环形队列缓冲区,所述预设空间大小的内存仅能被PCIe设备访问;主机设备在接收到第一中断信息时,从第一环形队列缓冲区中获取第一数量的IPC请求消息,对第一数量的IPC请求消息进行处理,得到IPC请求消息的处理结果。2.如权利要求1所述的PCIe设备与主机设备的通信方法,其特征在于,还包括:PCIe设备在IPC请求消息长度大于第一环形队列缓冲区的当前可用长度时,将IPC请求消息的内容存放在PCIe设备的内存或系统内存内,将存放地址写入第一环形队列缓冲区;主机设备在接收到第一中断信息时,从第一环形队列缓冲区中获取存放地址,将直接存储器访问DMA的目的地址设为所述存放地址,触发DMA搬移,将IPC请求消息的内容搬移到预设地址的内存内。3.如权利要求1所述的PCIe设备与主机设备的通信方法,其特征在于,还包括:主机设备在处理完IPC请求消息后判断IPC请求消息需要回复时,在IPC请求消息对应的IPC答复消息长度小于或等于预先配置的第二环形队列缓冲区的当前可用长度时,根据IPC答复消息长度和第二环形队列缓冲区的当前可用长度,确定第二环形队列缓冲区的当前深度;根据第二环形队列缓冲区的当前深度,确定可写入第二环形队列缓冲区中的IPC答复消息的第二数量,将第二数量的IPC答复消息写入第二环形队列缓冲区;生成第二中断信息发送至PCIe设备;所述第二环形队列缓冲区为将通过PCIe共享的预设空间大小的内存预先配置成的环形队列缓冲区,所述预设空间大小的内存仅能被PCIe设备访问;所述IPC答复消息为IPC请求消息的处理结果;PCIe设备在接收到第二中断信息时,从第二环形队列缓冲区中获取第二数量的IPC答复消息。4.一种PCIe设备与主机设备的通信方法,其特征在于,该方法应用于PCIe设备,该方法包括:在IPC请求消息长度小于或等于预先配置的第一环形队列缓冲区的当前可用长度时,根据IPC请求消息长度和第一环形队列缓冲区的当前可用长度,确定第一环形队列缓冲区的当前深度;所述第一环形队列缓冲区为将通过PCIe共享的预设空间大小的内存预先配置成的环形队列缓冲区,所述预设空间大小的内存仅能被PCIe设备访问;根据第一环形队列缓冲区的当前深度,确定可写入第一环形队列缓冲区中的IPC请求消息的第一数量;将第一数量的IPC请求消息写入第一环形队列缓冲区;生成第一中断信息发送至主机设备。5.如权利要求4所述的PCIe设备与主机设备的通信方法,其特征在于,还包括:在IPC请求消息长度大于第一环形队列缓冲区的当前可用长度时,将IPC请求消息的内
容存放在PCIe设备的内存或系统内存内;将存放地址写入第一环形队列缓冲区。6.如权利要求4所述的PCIe设备与主机设备的通信方法,其特征在于,还包括:在接收到第二中断信息时,从第二环形队列缓冲区中获取第二数量的IPC答复消息。7.一种PCIe设备与主机设备的通信方法,其特征在于,该方法应用于主机设备,该方法包括:在接收到第一中断信息时,从第一环形队列缓冲区中获取第一数量的IPC请求消息;所述第一环形队列缓冲区为将通过PCIe共享的预设空间大小的内存预先配置成的环形队列缓冲区,所述预设空间大小的内存仅能被PCIe设备访问;对第一数量的IPC请求消息进行处理,得到IPC请求消息的处理结果。8.如权利要求7所述的PCIe设备与主机设备的通信方法,其特征在于,还包括:在接收到第一中断信息时,从第一环形队列缓冲区中获取存放地址;将DMA的目的地址设为所述存放地址;触发DMA搬移,将IPC请求消息的内容搬移到预设地址的内存内。9.如权利要求7所述的PCIe设备与主机设备的通信方法,其特征在于,对第一数量的IPC请求消息进行处理,得到IPC请求消息的处理结果,包括:在判断IPC请求消息为同步消息时,在预设时长内处理所述同步消息,得到IPC请求消息的处理结果。10.如权利要求9所述的PCIe设备与主机设备的通信方法,其特征在于,还包括:在判断IPC请求消息为异步消息时,将异步消息放入预先配置的待处理队列,在满足预设处理条件后处理所述异步消息,得到IPC请求消息的处理结果。11.如权利要求7所述的PCIe设备与主机设备的通...

【专利技术属性】
技术研发人员:罗建洪刘琛宋新立杨珏
申请(专利权)人:摩尔线程智能科技北京有限责任公司
类型:发明
国别省市:

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

1