一种网卡芯片及其队列资源的锁定方法与流程
- 国知局
- 2024-12-06 12:09:17
本发明涉及集成电路,特别涉及一种网卡芯片及其队列资源的锁定方法。
背景技术:
1、单根i/o虚拟化(sr-iov,single-root i/o virtualization)是一种在物理网络接口卡(nic)上实现的io虚拟化技术。其利用物理网卡上的特殊硬件功能,将一张物理网卡划分为多个虚拟网卡(vf,virtual function),每个vf可被分配给不同的虚拟机或容器,具有自己的mac地址和pci设备id,所述vf直接通过物理网卡与外部网络通信,无需经过虚拟交换机或虚拟路由器,进而提供更高的网络性能和更低的延迟。
2、在网卡芯片的sr-iov应用中,通常需要给每个vf分配队列资源,所述队列资源例如包括发送队列资源、接收队列资源、以及事件队列资源等。网卡芯片内部硬件队列资源有唯一确定的物理地址。在队列资源分配好以后,每个队列资源应该被它所属的pciefunction独占,即只能被它所属的pcie function控制和改写对应队列管理寄存器的值。图1示出一种网卡芯片内部与主机接口部分的示意图。如图1所示,主机002通过片上的pcie模块011使用总线013配置和读取相应的发送队列管理模块014、接收队列管理模块015、事件队列管理模块016所管理的对应队列的配置和状态寄存器,例如取描述符、中断配置和产生等。
3、为了能够最大化硬件利用,所述网卡芯片还支持队列资源动态分配,即其通过地址映射模块012将pcie模块的虚拟网卡基地址寄存器(vf bar)内地址转换成物理地址,再配置和读取相应的队列管理寄存器。上电时每个vf根据应用需求可以分配不同数量的队列资源,甚至上电后可以重新分配每个vf的队列资源。为实现动态分配,所述地址映射模块012的硬件开销较大,且需要较为复杂的映射逻辑。若简化所述地址映射模块012的逻辑,和/或减小其硬件开销,vf bar就可能访问到映射成物理地址后分配给别的pcie function的队列资源,存在主机驱动误操作篡改别的pcie function对应的芯片中队列管理寄存器值的风险,从而可能导致传输错误、丢包、系统挂死等严重问题,同时这些问题在硬件上往往难以定位。
技术实现思路
1、针对现有技术中的部分或全部问题,本发明第一方面提供一种网卡芯片,包括:
2、发送队列管理模块,其包括第一控制和状态寄存器,所述第一控制和状态寄存器与发送队列一一对应,且所述第一控制和状态寄存器中存储有其对应的发送队列所属的pcie function;
3、接收队列管理模块,其包括第二控制和状态寄存器,所述第二控制和状态寄存器与接收队列一一对应,且所述第二控制和状态寄存器中存储有其对应的接收队列所属的pcie function;以及
4、事件队列管理模块,其包括第三控制和状态寄存器,所述第三控制和状态寄存器与事件队列一一对应,且所述第三控制和状态寄存器中存储有其对应的事件队列所属的pcie function。
5、进一步地,所述第一控制和状态寄存器包括多个数据段,分别存储发送队列对应主机里环形区的基地址、大小、头指针以及尾指针、发送队列有效位、以及发送队列对应的发送完成队列号,其中第一数据段包括64位数据;
6、所述第二控制和状态寄存器包括多个数据段,分别存储接收队列对应主机里环形区的基地址、大小、头指针以及尾指针、接收队列有效位、以及接收队列对应的接收完成队列号,其中第一数据段包括64位数据;以及
7、所述第三控制和状态寄存器包括多个数据段,分别存储事件队列对应主机里环形区的基地址、大小、头指针以及尾指针、事件队列有效位、装备提示位、以及事件队列对应的中断号,其中第一数据段包括64位数据。
8、进一步地,所述第一数据段用于表示队列对应主机里环形区的基地址。
9、进一步地,所述第一数据段的低n位用于表示所述pcie function,其余位用于表示队列对应主机里环形区的基地址,其中所述基地址有相应的边界对齐要求。
10、进一步地,所述网卡芯片与主机接口部分包括:
11、pcie模块,其用于与外部主机通信,所述外部主机通过所述pcie模块配置队列资源,和/或读取状态寄存器,其中所述队列资源包括发送队列资源、接收队列资源以及事件队列资源;以及
12、地址映射模块,其与所述pcie模块可通信地连接,且用于基于所述队列资源的配置将pcie模块的虚拟网卡基地址寄存器(vf bar)空间内的地址转换为内部物理地址。
13、进一步地,所述虚拟网卡基地址寄存器空间包括多个可动态分配的队列组,其中每个队列组中包括至少一个发送队列、一个接收队列以及一个事件队列,每个虚拟网卡可分配至少一个队列组。
14、进一步地,系统分配队列资源时需配置虚拟网卡的数量、各个虚拟网卡的基地址寄存器空间的大小、及每个虚拟网卡的队列组数量。
15、基于如前所述的网卡芯片,本发明第二方面提供其队列资源的锁定方法,包括:
16、当控制和状态寄存器接收到数据后,解析所述数据,以获得所述pcie function信息;以及
17、将所述pcie function信息与寄存器内预存储的对应队列的pcie function进行比对,若相等,则写入数据,若不同,则丢弃数据。
18、进一步地,所述数据包括发送队列头指针信息。
19、进一步地,所述发送队列头指针信息由外部主机发送并写入所述控制和状态寄存器。
20、进一步地,所述锁定方法还包括:
21、pcie function比对通过后,发送队列头指针寄存器被成功写入,进入发送数据流程。
22、本发明提供的一种网卡芯片队列资源的锁定方法及网卡芯片,在现有的访问网卡芯片的队列管理模块寄存器的条件中增加一个比对pcie function的条件,以给每个pciefunction队列资源上锁,使得物理上所有的队列资源被对应的pcie function独占锁定,以避免vf bar访问到别的pcie function的队列资源,进而即可在sr-iov动态分配队列资源时,避免主机驱动误操作篡改别的pcie function对应的芯片中队列管理寄存器值而发生的传输错误、丢包、系统挂死等严重问题。
技术特征:1.一种网卡芯片,其特征在于,包括:
2.如权利要求1所述的网卡芯片,其特征在于,所述第一控制和状态寄存器包括多个数据段,分别存储发送队列对应主机里环形区的基地址、大小、头指针以及尾指针、发送队列有效位、以及发送队列对应的发送完成队列号;
3.如权利要求2所述的网卡芯片,其特征在于,所述第一、第二及第三控制和状态寄存器的第一数据段被配置为表示队列对应主机里环形区的基地址。
4.如权利要求2所述的网卡芯片,其特征在于,所述第一、第二及第三控制和状态寄存器的第一数据段的低n位被配置为表示所述pc i e funct i on,其余位被配置为表示队列对应主机里环形区的基地址,其中所述基地址有相应的边界对齐要求。
5.如权利要求1所述的网卡芯片,其特征在于,其与主机接口部分包括:
6.如权利要求5所述的网卡芯片,其特征在于,所述队列的配置包括虚拟网卡的数量、各个虚拟网卡的基地址寄存器空间的大小、及每个虚拟网卡的队列组数量。
7.一种如权利要求1至6任一所述的网卡芯片的队列资源的锁定方法,其特征在于,包括步骤:
8.如权利要求7所述的锁定方法,其特征在于,所述数据包括发送队列头指针信息。
9.如权利要求8所述的锁定方法,其特征在于,所述发送队列头指针信息由外部主机发送并写入所述控制和状态寄存器。
10.如权利要求8所述的锁定方法,其特征在于,还包括步骤:
技术总结本发明公开一种网卡芯片,其包括发送队列管理模块、接收队列管理模块以及事件队列管理模块,其分别包括与发送队列、接收队列、以及事件队列一一对应的控制和状态寄存器,且各个控制和状态寄存器中存储有其对应的队列所属的PCIe function。在访问队列管理寄存器时,需要先比对PCIe function,进而仅用很少的硬件资源开销,即可方便地给每个PCIe function队列资源上锁,使得物理上所有的队列资源被对应的PCIe function独占锁定。技术研发人员:胡倩,周炜,徐茜受保护的技术使用者:青芯半导体科技(上海)有限公司技术研发日:技术公布日:2024/12/2本文地址:https://www.jishuxx.com/zhuanli/20241204/339643.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。