System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种多用户驱动与PCIe设备的信息交互方法和装置制造方法及图纸_技高网

一种多用户驱动与PCIe设备的信息交互方法和装置制造方法及图纸

技术编号:41087154 阅读:2 留言:0更新日期:2024-04-25 13:48
本发明专利技术提供了一种多用户驱动与PCIe设备的信息交互方法和装置,该方法包括:接收用户驱动的PCIe设备访问请求,通过所述用户驱动对应的地址空间读取驱动抢锁标志位;当所述驱动抢锁标志位无效时,确定所述用户驱动抢锁成功,将驱动抢锁标志位置为有效,并将用户驱动对应的抢锁成功标志位置为有效,然后通过所述用户驱动向所述PCIe设备的寄存器组下发访问命令;当访问命令下发完成时,通知所述PCIe设备的微控制单元执行所述寄存器组中的访问命令,在完成所述访问命令的执行后清除所述寄存器组,并将所述驱动抢锁标志位置为无效。本发明专利技术的技术方案提高了多个用户驱动对PCIe设备访问的安全性。

【技术实现步骤摘要】

本专利技术属于设备虚拟化领域,特别涉及一种多用户驱动与pcie设备的信息交互方法和装置。


技术介绍

1、pcie接口有着广泛的应用场景,如存储场景、ai智能场景等。随着虚拟化场景的应用,多个用户同时使用一个pcie设备的情况越来越普遍,通常会在一个pcie设备上虚拟出多个相同功能的设备,同时给主机侧多个用户使用,在每个用户的视角都是一个完整的pcie设备。例如,在pcie网卡设备场景中,主机可以同时运行多个用户的驱动程序,多用户驱动同时使用同一个网卡设备。在工作过程中,多用户驱动会通过同一个pcie链路访问自己用户的网卡信息,诸如用户各自的队列信息和配置项。

2、在信息交互中,由于使用的是同一个pcie链路通道,需要保证每个用户都能有访问机会,又要保证互相不影响。在多用户访问时,也需要保证每个用户的数据隐私,当前用户的数据信息不会被其他用户访问。

3、将实际pcie设备虚拟化为多个pcie设备可以通过以下两种方式实现,一种方式是将每个逻辑通道(function)虚拟为一个pcie设备,主机侧将每个function对应一个用户驱动,每个用户驱动通过function基地址寄存器(bar)调用pcie设备业务。以网卡为例,每个用户驱动可以拥有自己独立的网卡和远端进行通讯。另一种方式是将物理功能(pf)中bar的不同地址段虚拟出多个pcie设备。两种方式都是利用不同地址空间来虚拟化多个pcie设备,多function的bar和pf中bar的多地址段统称为多地址空间,每个地址空间可以对应主机侧的一个用户驱动。>

4、在当前多地址空间系统中,主机侧多用户驱动和pcie设备进行信息交互,通常有两种方式,即独立资源信息交互和共享资源信息交互。

5、独立资源信息交互是在多地址空间设备中,主机驱动通过各自的地址空间通道与设备进行信息交互,每个地址空间拥有各自独立的资源,使得每个用户驱动可以独立与设备进行信息通讯,但在地址空间比较多的时候,资源付出的代价会比较大。参见图1,主机侧多驱动102通过pcie链路103,访问用户各自的地址空间106,信息通过存储载体108,通过设备内微控制单元mcu 109,完成与设备固件的信息交互。

6、对于共享资源信息交互,主机侧的多用户驱动共享多地址空间设备的一套资源进行信息交互,多用户驱动通过抢锁与设备进行信息交互。参见图2,多用户驱动都共享存储载体208与设备固件进行信息交互。

7、当前的多地址空间独立资源信息交互方式,存在如下问题:在设备地址空间数量较多时,设备付出的代价就比较大,资源比较大。多用户驱动同时进行信息交互请求时,需要排队与设备固件进行通讯,导致每个用户驱动的信息交互的时间不可控。

8、当前的多地址空间共享资源信息交互方式,存在如下问题:每个用户驱动都可以访问共享资源,用户间信息互相可以访问共享资源,没有进行多用户间的数据保护隔离,存在用户信息泄密的风险。此外,不仅是主机侧多用户驱动之间需要抢锁,而且设备固件与用户驱动也要互相抢锁,导致通讯效率低下。


技术实现思路

1、本专利技术的目的在于提供一种多用户驱动与pcie设备的信息交互方法和装置,旨在实现多个用户驱动和pcie设备间的安全高效访问。

2、根据本专利技术的第一方面,提供了一种多用户驱动与pcie设备的信息交互方法,包括:

3、接收用户驱动的pcie设备访问请求,通过所述用户驱动对应的地址空间读取驱动抢锁标志位;

4、当所述驱动抢锁标志位无效时,确定所述用户驱动抢锁成功,将所述驱动抢锁标志位置为有效,并将所述用户驱动对应的抢锁成功标志位置为有效,然后通过所述用户驱动向所述pcie设备的寄存器组下发访问命令;

5、当访问命令下发完成时,通知所述pcie设备的微控制单元执行所述寄存器组中的访问命令,在完成所述访问命令的执行后清除所述寄存器组,并将所述驱动抢锁标志位置为无效。

6、优选地,在所述通过所述用户驱动对应的地址空间读取驱动抢锁标志位之后,进一步包括:

7、当所述驱动抢锁标志位有效时,确定所述用户驱动抢锁失败,禁止该用户驱动访问所述寄存器组,并重试读取驱动抢锁标志位的操作。

8、优选地,所述通过所述用户驱动向所述pcie设备的寄存器组下发访问命令,进一步包括:

9、如果是所述用户驱动对pcie设备的写操作,则将写入命令、地址和数据分别写入所述寄存器组中命令域、地址域和数据域;

10、如果是所述用户驱动对pcie设备的读操作,则将读取命令和地址分别写入所述寄存器组中命令域和地址域。

11、优选地,所述通知所述pcie设备的微控制单元执行所述寄存器组中的访问命令,进一步包括:

12、通过所述用户驱动更新驱动完成标志位,将其置为有效;

13、当硬件逻辑检测到所述驱动完成标志位跳变为有效时,上报中断给所述微控制单元:

14、解析所述中断,读取并解析所述寄存器组的访问命令信息,以执行所述访问命令。

15、优选地,所述清除所述寄存器组,并将所述驱动抢锁标志位置为无效,进一步包括:

16、当完成访问命令执行后,将固件操作完成标志位置为有效;

17、当用户驱动通过对应地址空间读取固件操作完成标志位为有效时,确定设备完成命令执行,通过所述用户驱动对应的地址空间将所述驱动抢锁标志位、驱动完成标志位和固件操作完成标志位置为无效,将所述寄存器组清除为初始值。

18、根据本专利技术的第二方面,提供了一种多用户驱动与pcie设备的信息交互装置,包括:

19、请求单元,用于接收用户驱动的pcie设备访问请求,通过所述用户驱动对应的地址空间读取驱动抢锁标志位;

20、下发单元,用于当所述驱动抢锁标志位无效时,确定所述用户驱动抢锁成功,将所述驱动抢锁标志位置为有效,并将所述用户驱动对应的抢锁成功标志位置为有效,然后通过所述用户驱动向所述pcie设备的寄存器组下发访问命令;

21、完成单元,用于当访问命令下发完成时,通知所述pcie设备的微控制单元执行所述寄存器组中的访问命令,在完成所述访问命令的执行后清除所述寄存器组,并将所述驱动抢锁标志位置为无效。

22、相比于相关技术,本专利技术的技术方案具备以下优点:

23、首先,多用户驱动共享一套资源,以较小的资源代价,实现多个用户驱动和pcie设备间的安全访问。其次,多用户驱动间进行抢锁,而设备固件不参与抢锁,提高了主机驱动的访问效率。在用户驱动抢到锁后,设备固件可以专门为该用户驱动服务,提高了信息交互时间的可控性。本专利技术还支持多用户间抢锁超时机制,超时自动释放锁。使得所有用户都有抢锁的机会。此外,多用户驱动间通过多地址空间(多function或多地址段)访问是相互隔离的,相互之间不能访问其他用户的数据,保护用户隐私,提高了安全性。而且支持防攻击安全保护,防止其他用户驱动的恶意攻击,仅有抢到本文档来自技高网...

【技术保护点】

1.一种多用户驱动与PCIe设备的信息交互方法,其特征在于,包括:

2.根据权利要求1所述的多用户驱动与PCIe设备的信息交互方法,其特征在于,在所述通过所述用户驱动对应的地址空间读取驱动抢锁标志位之后,进一步包括:

3.根据权利要求1所述的多用户驱动与PCIe设备的信息交互方法,其特征在于,所述通过所述用户驱动向所述PCIe设备的寄存器组下发访问命令,进一步包括:

4.根据权利要求1所述的多用户驱动与PCIe设备的信息交互方法,其特征在于,所述通知所述PCIe设备的微控制单元执行所述寄存器组中的访问命令,进一步包括:

5.根据权利要求4所述的多用户驱动与PCIe设备的信息交互方法,其特征在于,所述清除所述寄存器组,并将所述驱动抢锁标志位置为无效,进一步包括:

6.一种多用户驱动与PCIe设备的信息交互装置,其特征在于,包括:

7.根据权利要求6所述的多用户驱动与PCIe设备的信息交互装置,其特征在于,所述请求单元,进一步用于:

8.根据权利要求6所述的多用户驱动与PCIe设备的信息交互装置,其特征在于,所述下发单元,进一步用于:

9.根据权利要求6所述的多用户驱动与PCIe设备的信息交互装置,其特征在于,所述完成单元,进一步用于:

10.根据权利要求9所述的多用户驱动与PCIe设备的信息交互方法,其特征在于,所述完成单元,进一步用于:

...

【技术特征摘要】

1.一种多用户驱动与pcie设备的信息交互方法,其特征在于,包括:

2.根据权利要求1所述的多用户驱动与pcie设备的信息交互方法,其特征在于,在所述通过所述用户驱动对应的地址空间读取驱动抢锁标志位之后,进一步包括:

3.根据权利要求1所述的多用户驱动与pcie设备的信息交互方法,其特征在于,所述通过所述用户驱动向所述pcie设备的寄存器组下发访问命令,进一步包括:

4.根据权利要求1所述的多用户驱动与pcie设备的信息交互方法,其特征在于,所述通知所述pcie设备的微控制单元执行所述寄存器组中的访问命令,进一步包括:

5.根据权利要求4所述的多用户驱动与pcie设备的信息交互...

【专利技术属性】
技术研发人员:苏海亮宁丽霞吴寅冯波
申请(专利权)人:无锡众星微系统技术有限公司
类型:发明
国别省市:

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

1