CN117112044A - 基于网卡的指令处理方法、装置、设备和介质 - Google Patents
基于网卡的指令处理方法、装置、设备和介质 Download PDFInfo
- Publication number
- CN117112044A CN117112044A CN202311372783.1A CN202311372783A CN117112044A CN 117112044 A CN117112044 A CN 117112044A CN 202311372783 A CN202311372783 A CN 202311372783A CN 117112044 A CN117112044 A CN 117112044A
- Authority
- CN
- China
- Prior art keywords
- instruction
- host
- hardware logic
- equipment
- logic device
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000003672 processing method Methods 0.000 title claims description 13
- 238000012545 processing Methods 0.000 claims abstract description 240
- 230000004044 response Effects 0.000 claims abstract description 190
- 238000000034 method Methods 0.000 claims abstract description 63
- 238000004590 computer program Methods 0.000 claims description 35
- 230000003068 static effect Effects 0.000 claims description 33
- 238000004088 simulation Methods 0.000 claims description 21
- 238000004891 communication Methods 0.000 claims description 14
- 238000010586 diagram Methods 0.000 description 14
- 230000008569 process Effects 0.000 description 12
- 238000005516 engineering process Methods 0.000 description 4
- 230000003139 buffering effect Effects 0.000 description 3
- 239000002699 waste material Substances 0.000 description 3
- 238000013475 authorization Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000004148 unit process Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4411—Configuring for operating with peripheral devices; Loading of device drivers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30076—Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请涉及一种基于网卡的指令处理方法、装置、设备和介质,属于云技术领域。方法由处理单元执行,处理单元设于网卡的可编程处理器中,可编程处理器还设有硬件逻辑器件,方法包括:从硬件逻辑器件的第一缓存队列读取缓存的指令,指令由主机发送到硬件逻辑器件,并由硬件逻辑器件缓存至第一缓存队列;当指令是访问为主机分配的设备的访问指令,按照针对主机模拟的设备拓扑信息,将指令发送到设备,以响应指令;当响应指令完毕,向硬件逻辑器件发送对指令响应完毕的状态信息,状态信息,用于指示硬件逻辑器件将指令从第一缓存队列中移除,并向主机反馈对指令的响应结果,以提醒主机针对指令的响应已完成。采用本方法能够节省网卡中的硬件资源。
Description
技术领域
本申请涉及计算机技术,更涉及云技术领域,特别是涉及一种基于网卡的指令处理方法、装置、设备和介质。
背景技术
网卡是计算机与局域网互连的设备,也叫网络适配器或网络接口卡,是构成计算机网络系统中最基本的、最重要的和必不可少的连接设备,计算机主要通过网卡接入网络,其具有整理计算机上发往网线上的数据的功能,并将数据分解为适当大小的数据包之后向网络上发送出去。
传统技术中,主要通过固化于网卡中的硬件逻辑实现数据处理,从而导致硬件资源的过度消耗。尤其是在设备密度较高的情况下,硬件资源的过度消耗表现尤为明显,从而影响网卡的性能。
发明内容
基于此,有必要针对上述技术问题,提供一种能够节省网卡中硬件资源的基于网卡的指令处理方法、装置、设备和介质。
第一方面,本申请提供了一种基于网卡的指令处理方法,其特征在于,由处理单元执行,所述处理单元设置于网卡的可编程处理器中,所述可编程处理器还设置有硬件逻辑器件,所述方法包括:
从硬件逻辑器件的第一缓存队列读取缓存的指令,所述指令由主机发送到所述硬件逻辑器件,并由所述硬件逻辑器件缓存至所述第一缓存队列;
当所述指令是访问为所述主机分配的设备的访问指令,按照针对所述主机模拟的设备拓扑信息,将所述指令发送到所述设备,以响应所述指令;
当响应所述指令完毕,向所述硬件逻辑器件发送对所述指令响应完毕的状态信息,所述状态信息,用于指示所述硬件逻辑器件将所述指令从所述第一缓存队列中移除,并向所述主机反馈对所述指令的响应结果。
第二方面,本申请提供了一种基于网卡的指令处理装置,所述装置包括:
读取模块,用于从硬件逻辑器件的第一缓存队列读取缓存的指令,所述指令由主机发送到可编程处理器中的硬件逻辑器件,并由所述硬件逻辑器件缓存至所述第一缓存队列,所述可编程处理器设置于网卡中;
发送模块,用于当所述指令是访问为所述主机分配的设备的访问指令,按照针对所述主机模拟的设备拓扑信息,将所述指令发送到所述设备,以响应所述指令;
所述发送模块还用于当响应所述指令完毕,向所述硬件逻辑器件发送对所述指令响应完毕的状态信息,所述状态信息,用于指示所述硬件逻辑器件将所述指令从所述第一缓存队列中移除,并向所述主机反馈对所述指令的响应结果。
在一个实施例中,所述装置还包括:
查询模块,用于当所述指令是针对为所述主机分配的设备的查询指令,按照针对所述主机模拟的设备拓扑信息,将所述指令路由到所述设备的配置空间; 响应于所述指令,从所述配置空间中,查询所述设备的配置信息,获得包括所述配置信息的响应结果。
在一个实施例中,所述装置还包括:
配置模块,用于当所述指令是针对为所述主机分配的设备的配置指令,按照针对所述主机模拟的设备拓扑信息,将所述指令路由到所述设备的配置空间;响应于所述指令,在所述配置空间中,执行所述配置指令所指示的针对设备的配置信息的配置操作。
在一个实施例中,所述装置还包括:
更新模块,用于当针对所述配置信息的配置操作变更了所述配置空间中的所述配置信息,根据变更后的配置信息,更新针对所述主机模拟的设备拓扑信息。
在一个实施例中,所述装置还包括:
获取模块,用于当所述指令是所述主机发起的拓扑获取指令,获取针对所述主机模拟的设备拓扑信息,以确定包括所述模拟的设备拓扑信息的响应结果;其中,所述响应结果,用于指示所述主机在接收到所述响应结果后,供所述主机编辑所述模拟的设备拓扑信息,触发为所述主机分配的设备的配置指令。
在一个实施例中,所述装置还包括:
模拟模块,用于当所述指令是申请为所述主机分配设备的设备分配指令,获取所述设备分配指令指定的设备配置信息;根据所述设备配置信息,从预先设置的设备池中为所述主机分配设备;模拟所述主机与分配的设备间的连接关系,形成针对所述主机模拟的设备拓扑信息。
在一个实施例中,所述装置还包括:
更新模块,用于当所述指令是更新针对所述主机模拟的设备拓扑信息的拓扑更新指令,获取所述拓扑更新指令指定的更新的设备配置信息;根据所述更新的设备配置信息,更新为所述主机分配的设备;基于更新的设备,更新针对所述主机模拟的设备拓扑信息。
在一个实施例中,所述更新模块还用于基于更新的设备,生成针对所述主机模拟的更新的设备拓扑信息;将所述更新的设备拓扑信息存储到静态拓扑存储区;当所述主机发生重启,从所述静态拓扑存储区读取所述更新的设备拓扑信息,获得包括所述更新的设备拓扑信息的响应结果。
在一个实施例中,对所述指令的响应结果缓存在所述硬件逻辑器件的第二缓存队列中,所述发送模块还用于从所述硬件逻辑器件的第二缓存队列中,读取所述响应结果,并将所述响应结果发送至所述主机。
在一个实施例中,所述网卡连接多个主机,所述可编程处理器与所述多个主机通过多个通道连接,所述多个通道与所述多个主机一一对应,所述硬件逻辑器件通过不同的通道与不同的主机分别通信。
在一个实施例中,所述硬件逻辑器件具有多个第一缓存队列,所述多个第一缓存队列与所述多个通道一一对应,用于缓存对应通道连接的主机发送的指令。
在一个实施例中,所述硬件逻辑器件具有多个第二缓存队列,所述多个第二缓存队列与所述多个第一缓存队列一一对应,用于缓存对所对应第一缓存队列中指令响应后的响应结果,所述发送模块还用于从与缓存所述指令的第一缓存队列对应的所述第二缓存队列中,读取所述响应结果,并将所述响应结果发送至与所述第一缓存队列对应的所述主机。
第三方面,本申请提供了一种计算机设备,包括网卡和存储器,所述网卡中设置有可编程处理器,所述可编程处理器中设置有硬件逻辑器件,所述硬件逻辑器件中设置有处理单元,所述存储器存储有计算机程序,其特征在于,所述处理单元执行计算机程序时实现本申请各方法实施例中的步骤。
第四方面,本申请提供了一种计算机可读存储介质,存储有计算机程序,该计算机程序被处理单元执行时实现本申请各方法实施例中的步骤。
第五方面,本申请提供了一种计算机程序产品,包括计算机程序,计算机程序被处理单元执行时实现本申请各方法实施例中的步骤。
上述基于网卡的指令处理方法、装置、设备、介质和计算机程序产品,网卡中设置有可编程处理器,可编程处理器中设置有处理单元和硬件逻辑器件。通过处理单元执行预先设置的计算机程序,从硬件逻辑器件的第一缓存队列读取缓存的指令,指令由主机发送到硬件逻辑器件,并由硬件逻辑器件缓存至第一缓存队列;当指令是访问为主机分配的设备的访问指令,按照针对主机模拟的设备拓扑信息,将指令发送到设备,以响应指令;当响应指令完毕,向硬件逻辑器件发送对指令响应完毕的状态信息,状态信息,用于指示硬件逻辑器件将指令从第一缓存队列中移除,并向主机反馈对指令的响应结果。相较于传统的通过固化于网卡中的硬件逻辑实现数据处理的方式,本申请将处理单元执行计算机程序、以及硬件逻辑器件中硬件逻辑相结合,通过软件与硬件结合的方式实现数据处理,能够节省网卡中的硬件资源,避免硬件资源的过度消耗,从而提升网卡的性能。
附图说明
图1为一个实施例中基于网卡的指令处理方法的应用环境图;
图2为一个实施例中基于网卡的指令处理方法的流程示意图;
图3为一个实施例中网卡的结构示意图;
图4为一个实施例中基于网卡的指令处理原理示意图;
图5为一个实施例中传统技术中网卡的数据处理原理示意图;
图6为一个实施例中多主机独立上电并独立进行指令处理的时序图;
图7为一个实施例中多主机独立重启并独立进行指令处理的时序图;
图8为另一个实施例中基于网卡的指令处理原理示意图;
图9为一个实施例中多主机更新设备拓扑信息的时序图;
图10为另一个实施例中多主机更新设备拓扑信息的时序图;
图11为另一个实施例中基于网卡的指令处理方法的流程示意图;
图12为一个实施例中基于网卡的指令处理装置的结构框图;
图13为另一个实施例中基于网卡的指令处理装置的结构框图;
图14为一个实施例中计算机设备的内部结构图;
图15为另一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的基于网卡的指令处理方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与服务器104进行通信,终端102中设置有网卡。数据存储系统可以单独设置,可以存储服务器104需要处理的数据。数据存储系统可以集成在服务器104上,也可以放在云上或其他服务器上。其中,终端102可以但不限于是各种台式计算机、笔记本电脑、智能手机、平板电脑、智能语音交互设备、物联网设备和便携式可穿戴设备,其中,物联网设备可以包括智能家电和车载终端。智能家电可以为智能音箱、智能电视、智能空调。便携式可穿戴设备可为智能手表、智能手环、头戴设备等。服务器104可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、云安全、主机安全等网络安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。终端102以及服务器104可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。
终端102中设置有网卡,网卡中设置有可编程处理器,可编程处理器中设置有处理单元和硬件逻辑器件。主机可以包括服务器104。处理单元可从硬件逻辑器件的第一缓存队列读取缓存的指令,指令由服务器104发送到硬件逻辑器件,并由硬件逻辑器件缓存至第一缓存队列;当指令是访问为服务器104分配的设备的访问指令,按照针对服务器104模拟的设备拓扑信息,将指令发送到设备,以响应指令;当响应指令完毕,向硬件逻辑器件发送对指令响应完毕的状态信息,状态信息,用于指示硬件逻辑器件将指令从第一缓存队列中移除,并向服务器104反馈对指令的响应结果。
在一个实施例中,如图2所示,提供了一种基于网卡的指令处理方法,本实施例以该方法应用于终端中的处理单元为例进行说明。可以理解,终端中设置有网卡,网卡中设置有可编程处理器,可编程处理器中设置有处理单元和硬件逻辑器件。该方法包括以下步骤:
步骤202,从硬件逻辑器件的第一缓存队列读取缓存的指令,指令由主机发送到硬件逻辑器件,并由硬件逻辑器件缓存至第一缓存队列。
其中,可编程处理器是一种支持编程的数据处理器,编程处理器中设置有处理单元和硬件逻辑器件。硬件逻辑器件中固化有使用硬件语言编写的硬件逻辑。处理单元负责执行预先存储的计算机程序,处理单元执行计算机程序时,实现本申请各方法实施例中的步骤。可以理解,计算机程序属于软件程序,其相较于硬件逻辑具有较高的灵活性,其无需固化于处理单元中。第一缓存队列是用于缓存主机发送过来的数据的存储队列。
具体地,硬件逻辑器件中包括第一缓存队列。主机可向网卡发送指令,网卡中的硬件逻辑器件可接收主机发送的指令,并将指令缓存至第一缓存队列中。进而,网卡中的处理单元可从硬件逻辑器件的第一缓存队列中读取缓存的指令。可以理解,硬件逻辑器件仅负责将主机发送的指令转发至处理单元,由处理单元在执行计算机程序时处理指令,硬件逻辑器件本身不处理指令,这样能够节省网卡中的硬件资源,避免硬件资源的过度消耗,从而提升网卡的性能。
在一个实施例中,如图3所示,网卡中设置有可编程处理器,可编程处理器中设置有处理单元和硬件逻辑器件。可以理解,处理单元可以与硬件逻辑器件分别设置于可编程处理器内部。处理单元还可以设置于硬件逻辑器件的内部,即,网卡中设置有可编程处理器,可编程处理器中设置硬件逻辑器件,硬件逻辑器件中设置有处理单元。
步骤204,当指令是访问为主机分配的设备的访问指令,按照针对主机模拟的设备拓扑信息,将指令发送到设备,以响应指令。
其中,针对主机模拟的设备拓扑信息,是处理单元为主机分配的各设备之间的拓扑结构信息。设备的访问指令是用于访问设备的计算机指令。
具体地,处理单元已预先为主机分配至少一个设备。当指令是访问为主机分配的任一设备的访问指令,处理单元可按照针对主机模拟的设备拓扑信息,将指令发送到指令所指定的设备,指令所指定的设备在接收到指令之后,可对指令进行处理。可以理解,处理单元可按照针对主机模拟的设备拓扑信息,将访问指令发送到访问指令所指定的设备,访问指令所指定的设备在接收到访问指令之后,可对访问指令进行处理,以实现对访问指令所指定的设备的访问。
可以理解,设备拓扑信息指定了处理单元与访问指令所指定的设备之间连接通道,处理单元可按照设备拓扑信息为相应设备指定的连接通道,将访问指令发送到访问指令所指定的设备,访问指令所指定的设备在接收到访问指令之后,可对访问指令进行处理。其中,访问指令所指定的设备,可以是访问指令携带设备的设备标识。
在一个实施例中,主机与网卡之间通过PCIE(Peripheral ComponentInterconnect Express,一种高速串行计算机扩展总线标准)总线进行连接通信,网卡与为主机分配的各设备之间也通过PCIE总线进行连接通信。
步骤206,当响应指令完毕,向硬件逻辑器件发送对指令响应完毕的状态信息,状态信息,用于指示硬件逻辑器件将指令从第一缓存队列中移除,并向主机反馈对指令的响应结果。
具体地,当处理单元响应指令完毕,处理单元可向硬件逻辑器件发送表示已响应指令完毕的状态信息。硬件逻辑器件在接收到表示已响应指令完毕的状态信息后,可将该指令从第一缓存队列中移除。进而,硬件逻辑器件可获取针对指令的响应结果,并向主机反馈针对指令的响应结果。
可以理解,硬件逻辑器件在接收到表示已响应指令完毕的状态信息后,通过将相应指令从第一缓存队列中移除,可以及时释放第一缓存队列的内存空间,提升了一缓存队列的内存空间的利用率。
在一个实施例中,当处理单元响应指令完毕,处理单元可向硬件逻辑器件发送表示已响应指令完毕的状态信息、以及针对指令的响应结果。硬件逻辑器件在接收到表示已响应指令完毕的状态信息后,可将该指令从第一缓存队列中移除,并向主机反馈针对指令的响应结果。
在一个实施例中,当处理单元响应指令完毕,处理单元可向硬件逻辑器件发送表示已响应指令完毕的状态信息。硬件逻辑器件在接收到表示已响应指令完毕的状态信息后,可将该指令从第一缓存队列中移除。进而,硬件逻辑器件可生成针对指令的响应结果,并向主机反馈针对指令的响应结果。
在一个实施例中,网卡可与多个主机连接。如图4所示,针对连接至网卡的每个主机,所针对主机可通过与所针对主机对应的通道向网卡发送指令,网卡中的硬件逻辑器件可接收所针对主机发送的指令,并将指令缓存至与所针对主机对应的第一缓存队列中。进而,网卡中的处理单元可从与所针对主机对应的第一缓存队列中读取缓存的指令。当指令是访问为所针对主机分配的任一设备的访问指令,处理单元可按照针对所针对主机模拟的设备拓扑信息,将指令发送到指令所指定的设备,指令所指定的设备在接收到指令之后,可对指令进行处理。可以理解,处理单元可按照针对所针对主机模拟的设备拓扑信息,将访问指令发送到访问指令所指定的设备,访问指令所指定的设备在接收到访问指令之后,可对访问指令进行处理,以实现对访问指令所指定的设备的访问。当处理单元响应指令完毕,处理单元可向硬件逻辑器件发送表示已响应指令完毕的状态信息。硬件逻辑器件在接收到表示已响应指令完毕的状态信息后,可将该指令从与所针对主机对应的第一缓存队列中移除。进而,硬件逻辑器件可获取针对指令的响应结果,并通过与所针对主机对应的通道向所针对主机反馈针对指令的响应结果。
上述基于网卡的指令处理方法中,网卡中设置有可编程处理器,可编程处理器中设置有处理单元和硬件逻辑器件。通过处理单元执行预先设置的计算机程序,从硬件逻辑器件的第一缓存队列读取缓存的指令,指令由主机发送到硬件逻辑器件,并由硬件逻辑器件缓存至第一缓存队列;当指令是访问为主机分配的设备的访问指令,按照针对主机模拟的设备拓扑信息,将指令发送到设备,以响应指令;当响应指令完毕,向硬件逻辑器件发送对指令响应完毕的状态信息,状态信息,用于指示硬件逻辑器件将指令从第一缓存队列中移除,并向主机反馈对指令的响应结果。相较于传统的通过固化于网卡中的硬件逻辑实现数据处理的方式,本申请将处理单元执行计算机程序、以及硬件逻辑器件中硬件逻辑相结合,通过软件与硬件结合的方式实现数据处理,能够节省网卡中的硬件资源,避免硬件资源的过度消耗,从而提升网卡的性能。
如图5所示,传统的网卡中,网卡可以提供多个卡槽与计算机设备相连。且传统的网卡主要通过固化于网卡中的硬件逻辑实现数据处理,从而导致硬件资源的过度消耗。尤其是在设备密度较高的情况下,硬件资源的过度消耗表现尤为明显,从而影响网卡的性能。而本申请通过将处理单元执行计算机程序、以及硬件逻辑器件中硬件逻辑相结合,通过软件与硬件结合的方式实现数据处理。相较于传统的通过固化于网卡中的硬件逻辑实现数据处理的方式,本申请能够提升网卡的性能。
在一个实施例中,方法还包括:当指令是针对为主机分配的设备的查询指令,按照针对主机模拟的设备拓扑信息,将指令路由到设备的配置空间;响应于指令,从配置空间中,查询设备的配置信息,获得包括配置信息的响应结果。
其中,设备的配置空间是存储设备的配置信息的区域。可以理解,设备的配置空间是一组特定的寄存器,其存储着设备的配置信息。设备的配置信息包括设备的设备信息、设备状态信息或中断信息等中的至少一种。设备信息包括设备标识、设备供应商、设备能力清单、设备内存大小、支持虚拟化为虚拟设备的数量或热插拔能力等中的至少一种。包括配置信息的响应结果,是指响应结果中包括查询得到的设备的配置信息。设备的查询指令,是用于查询设备的配置信息的计算机指令。
具体地,处理单元已预先为主机分配至少一个设备。当指令是针对为主机分配的任一设备的查询指令,处理单元可按照针对主机模拟的设备拓扑信息,将指令路由到该设备的配置空间,并响应于指令,从配置空间中,查询该设备的配置信息,获得包括配置信息的响应结果。可以理解,处理单元可按照针对主机模拟的设备拓扑信息,将查询指令路由到该设备的配置空间,并响应于查询指令,从配置空间中,查询该设备的配置信息,获得包括配置信息的响应结果。
可以理解,设备拓扑信息指定了处理单元与查询指令所指定的设备的配置空间之间连接通道,处理单元可按照设备拓扑信息为相应设备的配置空间指定的连接通道,将查询指令路由到相应设备的配置空间,以从配置空间中,查询设备的配置信息,获得包括配置信息的响应结果。其中,查询指令所指定的设备,可以是查询指令携带设备的设备标识。
上述实施例中,处理单元可按照针对主机模拟的设备拓扑信息,将针对为主机分配的设备的查询指令路由到设备的配置空间,响应于指令,从配置空间中,查询设备的配置信息,获得包括配置信息的响应结果,能够节省网卡中支持配置信息查询的硬件资源,避免硬件资源的过度消耗,从而进一步提升网卡的性能。
在一个实施例中,方法还包括:当指令是针对为主机分配的设备的配置指令,按照针对主机模拟的设备拓扑信息,将指令路由到设备的配置空间;响应于指令,在配置空间中,执行配置指令所指示的针对设备的配置信息的配置操作。
其中,设备的配置指令,是用于生成设备的配置信息的计算机指令。
具体地,处理单元已预先为主机分配至少一个设备。当指令是针对为主机分配的任一设备的配置指令,处理单元可按照针对主机模拟的设备拓扑信息,将指令路由到设备的配置空间,并响应于指令,在配置空间中,执行该配置指令所指示的针对配置信息的配置操作。可以理解,处理单元可按照针对主机模拟的设备拓扑信息,将配置指令路由到该设备的配置空间,并响应于配置指令,在配置空间中,执行该配置指令所指示的针对配置信息的配置操作。
可以理解,设备拓扑信息指定了处理单元与配置指令所指定的设备的配置空间之间连接通道,处理单元可按照设备拓扑信息为相应设备的配置空间指定的连接通道,将配置指令路由到相应设备的配置空间,并响应于配置指令,在配置空间中,执行该配置指令所指示的针对配置信息的配置操作。其中,配置指令所指定的设备,可以是配置指令携带设备的设备标识。
上述实施例中,处理单元可按照针对主机模拟的设备拓扑信息,将设备拓扑信息路由到设备的配置空间,响应于指令,在配置空间中,对设备进行配置,能够节省网卡中支持设备信息配置的硬件资源,避免硬件资源的过度消耗,从而进一步提升网卡的性能。
在一个实施例中,方法还包括:当针对配置信息的配置操作变更了配置空间中的配置信息,根据变更后的配置信息,更新针对主机模拟的设备拓扑信息。
具体地,当针对配置信息的配置操作变更了配置空间中的配置信息,说明设备的配置信息已经发生了改变,则处理单元可根据变更后的配置信息,更新针对主机模拟的设备拓扑信息。可以理解,设备的配置信息更新后,处理单元可基于设备的配置信息,更新为主机分配的设备。
上述实施例中,当针对配置信息的配置操作变更了配置空间中的配置信息,处理单元可根据变更后的配置信息,更新针对主机模拟的设备拓扑信息,这样可以灵活调整针对主机模拟的设备拓扑信息,提升设备拓扑信息的配置效率,从而可以避免用于支持设备拓扑信息配置的硬件资源的浪费。
在一个实施例中,方法还包括:当指令是主机发起的拓扑获取指令,获取针对主机模拟的设备拓扑信息,以确定包括模拟的设备拓扑信息的响应结果;其中,响应结果,用于指示主机在接收到响应结果后,供主机编辑模拟的设备拓扑信息,触发为主机分配的设备的配置指令。
其中,拓扑获取指令,是用于获取针对主机模拟的设备拓扑信息的计算机指令。
具体地,网卡中存储有预先针对主机模拟的设备拓扑信息。当指令是主机发起的拓扑获取指令,处理单元可获取预先针对主机模拟的设备拓扑信息,并生成包括设备拓扑信息的响应结果。处理单元可将包括设备拓扑信息的响应结果发送至硬件逻辑器件,硬件逻辑器件可将包括设备拓扑信息的响应结果发送至主机。主机在接收到包括设备拓扑信息的响应结果后,可基于该设备拓扑信息,生成为主机分配的任一设备的配置指令。
在一个实施例中,网卡可与多个主机连接,多个主机可以分别独立上电和运行,现以主机1和主机2举例说明。如图6所示,处理单元,硬件逻辑器件,主机1和主机2分别可以独立上电。具体地,处理单元,硬件逻辑器件和主机1独立上电之后,主机1可向网卡发送指令1,网卡中的硬件逻辑器件可接收主机1发送的指令1,并将指令1缓存至第一缓存队列中。进而,网卡中的处理单元可从硬件逻辑器件的第一缓存队列中读取缓存的指令1。处理单元可按照针对主机模拟的设备拓扑信息,对指令1进行路由,以对指令1进行相应处理。当处理单元响应指令1完毕,处理单元可向硬件逻辑器件发送表示已响应指令1完毕的状态信息和响应结果1。硬件逻辑器件在接收到表示已响应指令1完毕的状态信息后,可将该指令1从第一缓存队列中移除,并向主机反馈针对指令1的响应结果1。可以理解,指令1具体可以是访问为主机1分配的设备的访问指令、针对为主机1分配的设备的查询指令、针对为主机1分配的设备的配置指令、主机1发起的拓扑获取指令、申请为主机1分配设备的设备分配指令、或更新针对主机1模拟的设备拓扑信息的拓扑更新指令中的至少一种。
继续参考图6,当指令1是访问为主机1分配的设备的访问指令时,处理单元可按照针对主机1模拟的设备拓扑信息,将指令1发送到相应设备,以使得相应设备响应指令1。当指令1是针对为主机1分配的设备的查询指令1时,处理单元可按照针对主机1模拟的设备拓扑信息,将指令1路由到设备的配置空间,响应于指令1,从配置空间中,查询设备的配置信息,获得包括配置信息的响应结果。当指令1是针对为主机1分配的设备的配置指令1时,处理单元可按照针对主机1模拟的设备拓扑信息,将指令1路由到设备的配置空间,响应于指令1,在配置空间中,执行配置指令1所指示的针对配置信息的配置操作。当指令1是主机1发起的拓扑获取指令1时,处理单元可获取针对主机1模拟的设备拓扑信息,以确定包括模拟的设备拓扑信息的响应结果。当指令1是申请为主机1分配设备的设备分配指令1时,获取设备分配指令1指定的设备配置信息,根据设备配置信息,从预先设置的设备池中为主机1分配设备,模拟主机1与分配的设备间的连接关系,形成针对主机1模拟的设备拓扑信息。当指令1是更新针对主机1模拟的设备拓扑信息的拓扑更新指令1时,处理单元可获取拓扑更新指令1指定的更新的设备配置信息,根据更新的设备配置信息,更新为主机1分配的设备,基于更新的设备,生成针对主机1模拟的更新的设备拓扑信息,将更新的设备拓扑信息存储到静态拓扑存储区,当主机1发生重启,从静态拓扑存储区读取更新的设备拓扑信息,获得包括更新的设备拓扑信息的响应结果。
继续参考图6,处理单元,硬件逻辑器件和主机2独立上电之后,主机2可向网卡发送指令2,网卡中的硬件逻辑器件可接收主机2发送的指令2,并将指令2缓存至第一缓存队列中。进而,网卡中的处理单元可从硬件逻辑器件的第一缓存队列中读取缓存的指令2。处理单元可按照针对主机模拟的设备拓扑信息,对指令2进行路由,以对指令2进行相应处理。当处理单元响应指令2完毕,处理单元可向硬件逻辑器件发送表示已响应指令2完毕的状态信息和响应结果2。硬件逻辑器件在接收到表示已响应指令2完毕的状态信息后,可将该指令2从第一缓存队列中移除,并向主机反馈针对指令2的响应结果2。可以理解,指令2具体可以是访问为主机2分配的设备的访问指令、针对为主机2分配的设备的查询指令、针对为主机2分配的设备的配置指令、主机2发起的拓扑获取指令、申请为主机2分配设备的设备分配指令、或更新针对主机2模拟的设备拓扑信息的拓扑更新指令中的至少一种。
继续参考图6,当指令2是访问为主机2分配的设备的访问指令时,处理单元可按照针对主机2模拟的设备拓扑信息,将指令2发送到相应设备,以使得相应设备响应指令2。当指令2是针对为主机2分配的设备的查询指令2时,处理单元可按照针对主机2模拟的设备拓扑信息,将指令2路由到设备的配置空间,响应于指令2,从配置空间中,查询设备的配置信息,获得包括配置信息的响应结果。当指令2是针对为主机2分配的设备的配置指令2时,处理单元可按照针对主机2模拟的设备拓扑信息,将指令2路由到设备的配置空间,响应于指令2,在配置空间中,执行配置指令2所指示的针对配置信息的配置操作。当指令2是主机2发起的拓扑获取指令2时,处理单元可获取针对主机2模拟的设备拓扑信息,以确定包括模拟的设备拓扑信息的响应结果。当指令2是申请为主机2分配设备的设备分配指令2时,获取设备分配指令2指定的设备配置信息,根据设备配置信息,从预先设置的设备池中为主机2分配设备,模拟主机2与分配的设备间的连接关系,形成针对主机2模拟的设备拓扑信息。当指令2是更新针对主机22模拟的设备拓扑信息的拓扑更新指令2时,处理单元可获取拓扑更新指令2指定的更新的设备配置信息,根据更新的设备配置信息,更新为主机2分配的设备,基于更新的设备,生成针对主机2模拟的更新的设备拓扑信息,将更新的设备拓扑信息存储到静态拓扑存储区,当主机2发生重启,从静态拓扑存储区读取更新的设备拓扑信息,获得包括更新的设备拓扑信息的响应结果。
在一个实施例中,网卡可与多个主机连接,多个主机可以分别独立重启和运行,现以主机1和主机2举例说明。如图7所示,处理单元,硬件逻辑器件,主机1和主机2分别可以独立重启。具体地,处理单元和硬件逻辑器件上电,且主机1独立重启之后,主机1可向网卡发送指令1,网卡中的硬件逻辑器件可接收主机1发送的指令1,并将指令1缓存至第一缓存队列中。进而,网卡中的处理单元可从硬件逻辑器件的第一缓存队列中读取缓存的指令1。处理单元可按照针对主机模拟的设备拓扑信息,对指令1进行路由,以对指令1进行相应处理。当处理单元响应指令1完毕,处理单元可向硬件逻辑器件发送表示已响应指令1完毕的状态信息和响应结果1。硬件逻辑器件在接收到表示已响应指令1完毕的状态信息后,可将该指令1从第一缓存队列中移除,并向主机反馈针对指令1的响应结果1。可以理解,指令1具体可以是访问为主机1分配的设备的访问指令、针对为主机1分配的设备的查询指令、针对为主机1分配的设备的配置指令、主机1发起的拓扑获取指令、申请为主机1分配设备的设备分配指令、或更新针对主机1模拟的设备拓扑信息的拓扑更新指令中的至少一种。
继续参考图7,当指令1是访问为主机1分配的设备的访问指令时,处理单元可按照针对主机1模拟的设备拓扑信息,将指令1发送到相应设备,以使得相应设备响应指令1。当指令1是针对为主机1分配的设备的查询指令1时,处理单元可按照针对主机1模拟的设备拓扑信息,将指令1路由到设备的配置空间,响应于指令1,从配置空间中,查询设备的配置信息,获得包括配置信息的响应结果。当指令1是针对为主机1分配的设备的配置指令1时,处理单元可按照针对主机1模拟的设备拓扑信息,将指令1路由到设备的配置空间,响应于指令1,在配置空间中,执行配置指令1所指示的针对配置信息的配置操作。当指令1是主机1发起的拓扑获取指令1时,处理单元可获取针对主机1模拟的设备拓扑信息,以确定包括模拟的设备拓扑信息的响应结果。当指令1是申请为主机1分配设备的设备分配指令1时,获取设备分配指令1指定的设备配置信息,根据设备配置信息,从预先设置的设备池中为主机1分配设备,模拟主机1与分配的设备间的连接关系,形成针对主机1模拟的设备拓扑信息。当指令1是更新针对主机1模拟的设备拓扑信息的拓扑更新指令1时,处理单元可获取拓扑更新指令1指定的更新的设备配置信息,根据更新的设备配置信息,更新为主机1分配的设备,基于更新的设备,生成针对主机1模拟的更新的设备拓扑信息,将更新的设备拓扑信息存储到静态拓扑存储区,当主机1发生重启,从静态拓扑存储区读取更新的设备拓扑信息,获得包括更新的设备拓扑信息的响应结果。
继续参考图7,处理单元和硬件逻辑器件上电,且主机2独立重启之后,主机2可向网卡发送指令2,网卡中的硬件逻辑器件可接收主机2发送的指令2,并将指令2缓存至第一缓存队列中。进而,网卡中的处理单元可从硬件逻辑器件的第一缓存队列中读取缓存的指令2。处理单元可按照针对主机模拟的设备拓扑信息,对指令2进行路由,以对指令2进行相应处理。当处理单元响应指令2完毕,处理单元可向硬件逻辑器件发送表示已响应指令2完毕的状态信息和响应结果2。硬件逻辑器件在接收到表示已响应指令2完毕的状态信息后,可将该指令2从第一缓存队列中移除,并向主机反馈针对指令2的响应结果2。可以理解,指令2具体可以是访问为主机2分配的设备的访问指令、针对为主机2分配的设备的查询指令、针对为主机2分配的设备的配置指令、主机2发起的拓扑获取指令、申请为主机2分配设备的设备分配指令、或更新针对主机2模拟的设备拓扑信息的拓扑更新指令中的至少一种。
继续参考图7,当指令2是访问为主机2分配的设备的访问指令时,处理单元可按照针对主机2模拟的设备拓扑信息,将指令2发送到相应设备,以使得相应设备响应指令2。当指令2是针对为主机2分配的设备的查询指令2时,处理单元可按照针对主机2模拟的设备拓扑信息,将指令2路由到设备的配置空间,响应于指令2,从配置空间中,查询设备的配置信息,获得包括配置信息的响应结果。当指令2是针对为主机2分配的设备的配置指令2时,处理单元可按照针对主机2模拟的设备拓扑信息,将指令2路由到设备的配置空间,响应于指令2,在配置空间中,执行配置指令2所指示的针对配置信息的配置操作。当指令2是主机2发起的拓扑获取指令2时,处理单元可获取针对主机2模拟的设备拓扑信息,以确定包括模拟的设备拓扑信息的响应结果。当指令2是申请为主机2分配设备的设备分配指令2时,获取设备分配指令2指定的设备配置信息,根据设备配置信息,从预先设置的设备池中为主机2分配设备,模拟主机2与分配的设备间的连接关系,形成针对主机2模拟的设备拓扑信息。当指令2是更新针对主机22模拟的设备拓扑信息的拓扑更新指令2时,处理单元可获取拓扑更新指令2指定的更新的设备配置信息,根据更新的设备配置信息,更新为主机2分配的设备,基于更新的设备,生成针对主机2模拟的更新的设备拓扑信息,将更新的设备拓扑信息存储到静态拓扑存储区,当主机2发生重启,从静态拓扑存储区读取更新的设备拓扑信息,获得包括更新的设备拓扑信息的响应结果。
上述实施例中,处理单元可通过拓扑获取指令,获取针对主机模拟的设备拓扑信息,以确定包括模拟的设备拓扑信息的响应结果,能够节省网卡中支持设备拓扑信息获取的硬件资源,避免硬件资源的过度消耗,从而进一步提升网卡的性能。
在一个实施例中,方法还包括:当指令是申请为主机分配设备的设备分配指令,获取设备分配指令指定的设备配置信息;根据设备配置信息,从预先设置的设备池中为主机分配设备;模拟主机与分配的设备间的连接关系,形成针对主机模拟的设备拓扑信息。
其中,设备的设备分配指令,是用于为主机分配至少一个设备的计算机指令。
具体地,当指令是申请为主机分配设备的设备分配指令,设备分配指令携带设备配置信息,处理单元可获取设备分配指令携带的设备配置信息。预先设置的设备池中包括多个设备,处理单元可从预先设置的设备池中查找与设备配置信息匹配的至少一个设备,并将查找的至少一个设备分配给主机。进而,处理单元可模拟主机与分配的设备间的连接关系,形成针对主机模拟的设备拓扑信息。
在一个实施例中,设备配置信息包括设备数量、设备标识、设备供应商、设备能力清单、设备内存大小、支持虚拟化为虚拟设备的数量或热插拔能力等中的至少一种。
在一个实施例中,如图8所示,网卡可与多个主机连接,即主机可与主机1,主机2,…,主机n连接,网卡与多个主机通过多个通道连接,即网卡与通道1,通道2,…,通道n分别连接,其中n为正整数。多个通道与多个主机一一对应。针对连接至网卡的每个主机,所针对主机可通过与所针对主机对应的通道向网卡发送指令,网卡中的硬件逻辑器件可接收所针对主机发送的指令,并将指令缓存至与所针对主机对应的第一缓存队列中。进而,网卡中的处理单元可从与所针对主机对应的第一缓存队列中读取缓存的指令。当指令是申请为所针对主机分配设备的设备分配指令,设备分配指令携带设备配置信息,处理单元可获取设备分配指令携带的设备配置信息。预先设置的设备池中包括多个设备,即,设备1,设备2,设备3,…,设备m,其中m为正整数。处理单元可从该设备池中查找与设备配置信息匹配的至少一个设备,并将查找的至少一个设备分配给所针对主机。进而,处理单元可模拟所针对主机与分配的设备间的连接关系,形成针对所针对主机模拟的设备拓扑信息。
继续参考图8,以主机1,通道1,设备1、设备2和设备3举例说明,针对连接至网卡的主机1,主机1可通过与主机1对应的通道1向网卡发送指令,网卡中的硬件逻辑器件可接收主机1发送的指令,并将指令缓存至与主机1对应的第一缓存队列中。进而,网卡中的处理单元可从与主机1对应的第一缓存队列中读取缓存的指令。当指令是申请为主机1分配设备的设备分配指令,设备分配指令携带设备配置信息,处理单元可获取设备分配指令携带的设备配置信息。处理单元可从该设备池中查找与设备配置信息匹配的设备1、设备2和设备3,并将查找的设备1、设备2和设备3分配给主机1。进而,处理单元可模拟主机1与分配的设备1、设备2和设备3间的连接关系,形成针对主机1模拟的设备拓扑信息。
上述实施例中,通过处理单元获取设备分配指令指定的设备配置信息,根据设备配置信息,从设备池中为主机分配设备,并模拟主机与分配的设备间的连接关系,形成针对主机模拟的设备拓扑信息,无需提前在网卡中固化设备拓扑信息,使得设备拓扑信息可以灵活配置,从而可以避免用于支持设备拓扑信息配置的硬件资源的浪费。
在一个实施例中,方法还包括:当指令是更新针对主机模拟的设备拓扑信息的拓扑更新指令,获取拓扑更新指令指定的更新的设备配置信息;根据更新的设备配置信息,更新为主机分配的设备;基于更新的设备,更新针对主机模拟的设备拓扑信息。
其中,拓扑更新指令,是用于更新针对主机模拟的设备拓扑信息的计算机指令。
具体地,当指令是更新针对主机模拟的设备拓扑信息的拓扑更新指令,拓扑更新指令携带更新的设备配置信息。处理单元可获取拓扑更新指令携带的更新的设备配置信息,并根据更新的设备配置信息,更新为主机分配的设备,基于更新的设备,更新针对主机模拟的设备拓扑信息。可以理解,处理单元可从预先设置的设备池中查找与更新的设备配置信息匹配的至少一个设备,并将查找的至少一个设备重新分配给主机。进而,处理单元可模拟主机与重新分配的设备间的连接关系,形成更新后的针对主机模拟的设备拓扑信息。
在一个实施例中,处理单元可从预先设置的设备池中查找与更新的设备配置信息匹配的至少一个设备,并将查找的至少一个设备重新分配给主机。进而,处理单元可模拟主机与重新分配的设备间的连接关系,直接生成针对主机模拟的更新的设备拓扑信息,获得包括更新的设备拓扑信息的响应结果。
在一个实施例中,网卡可与多个主机连接,多个主机可以分别独立地进行拓扑更新,现以主机1和主机2举例说明。如图9所示,在处理单元、硬件逻辑器件和主机1上电后,主机1可向硬件逻辑器件发送更新针对主机模拟的设备拓扑信息1的拓扑更新指令1,硬件逻辑器件可接收拓扑更新指令1并将拓扑更新指令1缓存至第一缓存队列,处理单元可从硬件逻辑器件的第一缓存队列读取缓存的拓扑更新指令1,获取拓扑更新指令1携带的更新的设备配置信息,根据更新的设备配置信息,更新为主机1分配的设备,并基于更新的设备,更新针对主机1模拟的设备拓扑信息1,获得针对主机1模拟的更新后的设备拓扑信息2。在处理单元、硬件逻辑器件和主机2上电后,主机2可向硬件逻辑器件发送更新针对主机模拟的设备拓扑信息3的拓扑更新指令2,硬件逻辑器件可接收拓扑更新指令2并将拓扑更新指令2缓存至第一缓存队列,处理单元可从硬件逻辑器件的第一缓存队列读取缓存的拓扑更新指令2,获取拓扑更新指令2携带的更新的设备配置信息,根据更新的设备配置信息,更新为主机2分配的设备,并基于更新的设备,更新针对主机2模拟的设备拓扑信息3,获得针对主机2模拟的更新后的设备拓扑信息4。
上述实施例中,通过处理单元获取拓扑更新指令指定的更新的设备配置信息,根据更新的设备配置信息,更新为主机分配的设备,并基于更新的设备,更新针对主机模拟的设备拓扑信息。通过支持自定义更新设备拓扑信息,使得设备拓扑信息的配置更为灵活,可以进一步避免用于支持设备拓扑信息配置的硬件资源的浪费。
在一个实施例中,基于更新的设备,更新针对主机模拟的设备拓扑信息,包括:基于更新的设备,生成针对主机模拟的更新的设备拓扑信息;将更新的设备拓扑信息存储到静态拓扑存储区;当主机发生重启,从静态拓扑存储区读取更新的设备拓扑信息,获得包括更新的设备拓扑信息的响应结果。
其中,静态拓扑存储区,是网卡中用于存储设备拓扑信息的区域。
具体地,处理单元可从预先设置的设备池中查找与更新的设备配置信息匹配的至少一个设备,并将查找的至少一个设备重新分配给主机。进而,处理单元可模拟主机与重新分配的设备间的连接关系,生成针对主机模拟的更新的设备拓扑信息,并将更新的设备拓扑信息存储到静态拓扑存储区。当主机发生重启,即,主机授权指示开始更新之后,处理单元可从静态拓扑存储区读取更新的设备拓扑信息,获得包括更新的设备拓扑信息的响应结果,设备拓扑信息更新完成。可以理解,在主机重启之前,存储于静态拓扑存储区中的设备拓扑信息与主机所应用的设备拓扑信息不同。在主机重启之后,存储于静态拓扑存储区中的设备拓扑信息与主机所应用的设备拓扑信息相同。
在一个实施例中,网卡可与多个主机连接,多个主机可以分别独立重启和运行,现以主机1和主机2举例说明。如图10所示,在处理单元、硬件逻辑器件和主机1上电后,主机1可向硬件逻辑器件发送更新针对主机模拟的设备拓扑信息1的拓扑更新指令1,硬件逻辑器件可接收拓扑更新指令1并将拓扑更新指令1缓存至第一缓存队列,处理单元可从硬件逻辑器件的第一缓存队列读取缓存的拓扑更新指令1,获取拓扑更新指令1携带的更新的设备配置信息,根据更新的设备配置信息,更新为主机1分配的设备。处理单元可基于更新的设备,生成针对主机1模拟的更新的设备拓扑信息2,将更新的设备拓扑信息2存储到静态拓扑存储区。当主机1发生重启,且处理单元检测到主机1的重启信号,处理单元可从静态拓扑存储区读取更新的设备拓扑信息2,获得包括更新的设备拓扑信息2的响应结果,针对主机1的拓扑更新完毕。在处理单元、硬件逻辑器件和主机2上电后,主机2可向硬件逻辑器件发送更新针对主机模拟的设备拓扑信息3的拓扑更新指令2,硬件逻辑器件可接收拓扑更新指令2并将拓扑更新指令2缓存至第一缓存队列,处理单元可从硬件逻辑器件的第一缓存队列读取缓存的拓扑更新指令2,获取拓扑更新指令2携带的更新的设备配置信息,根据更新的设备配置信息,更新为主机2分配的设备,处理单元可基于更新的设备,生成针对主机2模拟的更新的设备拓扑信息4,将更新的设备拓扑信息4存储到静态拓扑存储区。当主机2发生重启,且处理单元检测到主机2的重启信号,处理单元可从静态拓扑存储区读取更新的设备拓扑信息4,获得包括更新的设备拓扑信息4的响应结果,针对主机2的拓扑更新完毕。
上述实施例中,通过将更新的设备拓扑信息存储到静态拓扑存储区,当主机发生重启,得到用户授权之后,再从静态拓扑存储区读取更新的设备拓扑信息,获得包括更新的设备拓扑信息的响应结果,可以避免处于运行中的主机的数据丢失,从而可以确保主机的安全运行。
在一个实施例中,对指令的响应结果缓存在硬件逻辑器件的第二缓存队列中,向主机反馈对指令的响应结果,包括:从硬件逻辑器件的第二缓存队列中,读取响应结果,并将响应结果发送至主机。
其中,第二缓存队列是用于缓存发送至主机的数据的存储队列。
具体地,硬件逻辑器件中设置有第一缓存队列和第二缓存队列。主机可向网卡发送指令,网卡中的硬件逻辑器件可接收主机发送的指令,并将指令缓存至第一缓存队列中。进而,网卡中的处理单元可从硬件逻辑器件的第一缓存队列中读取缓存的指令。当指令是访问为主机分配的设备的访问指令,处理单元可按照针对主机模拟的设备拓扑信息,将访问指令发送到访问指令所指定的设备,访问指令所指定的设备在接收到访问指令之后,可对访问指令进行处理,以实现对访问指令所指定的设备的访问。当处理单元响应指令完毕,处理单元可向硬件逻辑器件发送表示已响应指令完毕的状态信息。硬件逻辑器件在接收到表示已响应指令完毕的状态信息后,可将该指令从第一缓存队列中移除。进而,硬件逻辑器件可获取针对指令的响应结果,并将针对指令的响应结果缓存在硬件逻辑器件的第二缓存队列中,进而,硬件逻辑器件可从硬件逻辑器件的第二缓存队列中,读取针对指令的响应结果,并将针对指令的响应结果发送至主机。
上述实施例中,通过硬件逻辑器件从第二缓存队列中,读取响应结果,并将响应结果发送至主机,提升响应结果的发送效率,从而进一步提升网卡的性能。
在一个实施例中,网卡连接多个主机,可编程处理器与多个主机通过多个通道连接,多个通道与多个主机一一对应,硬件逻辑器件通过不同的通道与不同的主机分别通信。
具体地,硬件逻辑器件中包括第一缓存队列。针对连接至网卡的每个主机,所针对主机可向网卡发送指令,网卡中的硬件逻辑器件可接收所针对主机发送的指令,并将指令缓存至第一缓存队列中。进而,网卡中的处理单元可从硬件逻辑器件的第一缓存队列中读取缓存的指令。当指令是访问为所针对主机分配的设备的访问指令,处理单元可按照针对主机模拟的设备拓扑信息,将访问指令发送到访问指令所指定的设备,访问指令所指定的设备在接收到访问指令之后,可对访问指令进行处理,以实现对访问指令所指定的设备的访问。当处理单元响应指令完毕,处理单元可向硬件逻辑器件发送表示已响应指令完毕的状态信息。硬件逻辑器件在接收到表示已响应指令完毕的状态信息后,可将该指令从第一缓存队列中移除。进而,硬件逻辑器件可获取针对指令的响应结果,并通过与所针对主机对应的通道,将针对指令的响应结果发送至所针对主机。
上述实施例中,多个网卡连接多个主机,即多主机共享同一网卡,可编程处理器与多个主机通过多个通道连接,多个通道与多个主机一一对应,硬件逻辑器件通过不同的通道与不同的主机分别通信,可以使得网络中的设备数据大大减少,降低了设备成本。
在一个实施例中,硬件逻辑器件具有多个第一缓存队列,多个第一缓存队列与多个通道一一对应,用于缓存对应通道连接的主机发送的指令。
具体地,针对连接至网卡的每个主机,所针对主机可向网卡发送指令,网卡中的硬件逻辑器件可接收所针对主机发送的指令,并将指令缓存至所针对主机对应的通道所对应的第一缓存队列中。进而,网卡中的处理单元可从所针对主机对应的通道所对应的第一缓存队列中,读取缓存的指令。当指令是访问为所针对主机分配的设备的访问指令,处理单元可按照针对主机模拟的设备拓扑信息,将访问指令发送到访问指令所指定的设备,访问指令所指定的设备在接收到访问指令之后,可对访问指令进行处理,以实现对访问指令所指定的设备的访问。当处理单元响应指令完毕,处理单元可向硬件逻辑器件发送表示已响应指令完毕的状态信息。硬件逻辑器件在接收到表示已响应指令完毕的状态信息后,可将该指令从所针对主机对应的通道所对应的第一缓存队列中移除。进而,硬件逻辑器件可获取针对指令的响应结果,并通过与所针对主机对应的通道,将针对指令的响应结果发送至所针对主机。
上述实施例中,硬件逻辑器件具有多个第一缓存队列,多个第一缓存队列与多个通道一一对应,用于缓存对应通道连接的主机发送的指令,可以使得各主机可以准确地与网卡进行通信,提升了通信准确率,从而进一步提升网卡的性能。
在一个实施例中,硬件逻辑器件具有多个第二缓存队列,多个第二缓存队列与多个第一缓存队列一一对应,用于缓存对所对应第一缓存队列中指令响应后的响应结果,向主机反馈对指令的响应结果,包括:从与缓存指令的第一缓存队列对应的第二缓存队列中,读取响应结果,并将响应结果发送至与第一缓存队列对应的主机。
具体地,针对连接至网卡的每个主机,所针对主机可向网卡发送指令,网卡中的硬件逻辑器件可接收所针对主机发送的指令,并将指令缓存至所针对主机对应的通道所对应的第一缓存队列中。进而,网卡中的处理单元可从所针对主机对应的通道所对应的第一缓存队列中,读取缓存的指令。当指令是访问为所针对主机分配的设备的访问指令,处理单元可按照针对主机模拟的设备拓扑信息,将访问指令发送到访问指令所指定的设备,访问指令所指定的设备在接收到访问指令之后,可对访问指令进行处理,以实现对访问指令所指定的设备的访问。当处理单元响应指令完毕,处理单元可向硬件逻辑器件发送表示已响应指令完毕的状态信息。硬件逻辑器件在接收到表示已响应指令完毕的状态信息后,可将该指令从所针对主机对应的通道所对应的第一缓存队列中移除。进而,硬件逻辑器件可获取针对指令的响应结果,并将针对指令的响应结果缓存在相应的第二缓存队列中,进而,硬件逻辑器件可从相应的第二缓存队列中,读取针对指令的响应结果,并将针对指令的响应结果发送至主机。
在一个实施例中,继续参见图4,针对图4中的各缓存队列,即缓存队列1,缓存队列2,…,缓存队列n,其中,n为正整数,每个缓存队列包括相应的第一缓存队列和第二缓存队列。可以理解,缓存队列1包括相应的第一缓存队列和第二缓存队列,缓存队列2相应的第一缓存队列和第二缓存队列,…,缓存队列n相应的第一缓存队列和第二缓存队列。网卡连接多个主机,即主机1,主机2,…,主机n。硬件逻辑器件与上述多个主机分别通过多个通道连接,即,通道1,通道2,…,通道n,多个通道与多个主机一一对应,即通道1与主机1对应,通道2与主机2对应,…,通道n与主机n对应。
继续参见图4,现以主机1,通道1,缓存队列1举例说明,其中,缓存队列1包括相应的第一缓存队列和第二缓存队列。具体地,主机1可向网卡发送指令,网卡中的硬件逻辑器件可接收主机1发送的指令,并将指令缓存至主机1对应的通道1所对应的第一缓存队列中。进而,网卡中的处理单元可从主机1对应的通道1所对应的第一缓存队列中,读取缓存的指令。当指令是访问为主机1分配的设备的访问指令,处理单元可按照针对主机模拟的设备拓扑信息,将访问指令发送到访问指令所指定的设备,访问指令所指定的设备在接收到访问指令之后,可对访问指令进行处理,以实现对访问指令所指定的设备的访问。当处理单元响应指令完毕,处理单元可向硬件逻辑器件发送表示已响应指令完毕的状态信息。硬件逻辑器件在接收到表示已响应指令完毕的状态信息后,可将该指令从主机1对应的通道1所对应的第一缓存队列中移除。进而,硬件逻辑器件可获取针对指令的响应结果,并将针对指令的响应结果缓存在相应的第二缓存队列中,进而,硬件逻辑器件可从相应的第二缓存队列中,读取针对指令的响应结果,并将针对指令的响应结果发送至主机。
上述实施例中,通过从与缓存指令的第一缓存队列对应的第二缓存队列中,读取响应结果,并将响应结果发送至与第一缓存队列对应的主机,可以提升响应结果的发送准确率,从而进一步提升网卡的性能。
如图11所示,在一个实施例中,提供了一种基于网卡的指令处理方法,本实施例以该方法应用于终端中的处理单元为例进行说明,可以理解,终端中设置有网卡,网卡中设置有可编程处理器,可编程处理器中设置有处理单元和硬件逻辑器件。网卡连接多个主机,可编程处理器与多个主机通过多个通道连接,多个通道与多个主机一一对应,硬件逻辑器件通过不同的通道与不同的主机分别通信。硬件逻辑器件具有多个第一缓存队列,多个第一缓存队列与多个通道一一对应,用于缓存对应通道连接的主机发送的指令。硬件逻辑器件还具有多个第二缓存队列,多个第二缓存队列与多个第一缓存队列一一对应,用于缓存对所对应第一缓存队列中指令响应后的响应结果。该方法具体包括以下步骤:
步骤1102,从硬件逻辑器件的第一缓存队列读取缓存的指令,指令由主机发送到硬件逻辑器件,并由硬件逻辑器件缓存至第一缓存队列。
步骤1104,当指令是申请为主机分配设备的设备分配指令,获取设备分配指令指定的设备配置信息。
步骤1106,根据设备配置信息,从预先设置的设备池中为主机分配设备。
步骤1108,模拟主机与分配的设备间的连接关系,形成针对主机模拟的设备拓扑信息。
步骤1110,当指令是主机发起的拓扑获取指令,获取针对主机模拟的设备拓扑信息,以确定包括模拟的设备拓扑信息的响应结果。
其中,响应结果,用于指示主机在接收到响应结果后,供主机编辑模拟的设备拓扑信息,触发为主机分配的设备的配置指令。
步骤1112,当指令是针对为主机分配的设备的配置指令,按照针对主机模拟的设备拓扑信息,将指令路由到设备的配置空间。
步骤1114,响应于指令,在配置空间中,执行配置指令所指示的针对设备的配置信息的配置操作。
步骤1116,当指令是针对为主机分配的设备的查询指令,按照针对主机模拟的设备拓扑信息,将指令路由到设备的配置空间。
步骤1118,响应于指令,从配置空间中,查询设备的配置信息,获得包括配置信息的响应结果。
步骤1120,当指令是访问为主机分配的设备的访问指令,按照针对主机模拟的设备拓扑信息,将指令发送到设备,以响应指令。
步骤1122,当响应指令完毕,向硬件逻辑器件发送对指令响应完毕的状态信息,状态信息,用于指示硬件逻辑器件将指令从第一缓存队列中移除,并从与缓存指令的第一缓存队列对应的第二缓存队列中,读取响应结果,并将响应结果发送至与第一缓存队列对应的主机。
步骤1124,当针对配置信息的配置操作变更了配置空间中的配置信息,根据变更后的配置信息,更新针对主机模拟的设备拓扑信息。
步骤1126,当指令是更新针对主机模拟的设备拓扑信息的拓扑更新指令,获取拓扑更新指令指定的更新的设备配置信息。
步骤1128,根据更新的设备配置信息,更新为主机分配的设备。
步骤1130,基于更新的设备,生成针对主机模拟的更新的设备拓扑信息。
步骤1132,将更新的设备拓扑信息存储到静态拓扑存储区。
步骤1134,当主机发生重启,从静态拓扑存储区读取更新的设备拓扑信息,获得包括更新的设备拓扑信息的响应结果。
本申请还提供一种应用场景,该应用场景应用上述的基于网卡的指令处理方法。具体地,该基于网卡的指令处理方法可应用于多服务器共享同一个网卡的场景。可以理解,终端中设置有网卡,网卡中设置有可编程处理器,可编程处理器中设置有处理单元和硬件逻辑器件。主机可以为服务器,网卡连接多个服务器,可编程处理器与多个服务器通过多个通道连接,多个通道与多个服务器一一对应,硬件逻辑器件通过不同的通道与不同的服务器分别通信。硬件逻辑器件具有多个第一缓存队列,多个第一缓存队列与多个通道一一对应,用于缓存对应通道连接的服务器发送的指令。硬件逻辑器件还具有多个第二缓存队列,多个第二缓存队列与多个第一缓存队列一一对应,用于缓存对所对应第一缓存队列中指令响应后的响应结果。
处理单元可从硬件逻辑器件的第一缓存队列读取缓存的指令,指令由服务器发送到硬件逻辑器件,并由硬件逻辑器件缓存至第一缓存队列。当指令是申请为服务器分配设备的设备分配指令,获取设备分配指令指定的设备配置信息。根据设备配置信息,从预先设置的设备池中为服务器分配设备。模拟服务器与分配的设备间的连接关系,形成针对服务器模拟的设备拓扑信息。
当指令是服务器发起的拓扑获取指令,处理单元可获取针对服务器模拟的设备拓扑信息,以确定包括模拟的设备拓扑信息的响应结果。其中,响应结果,用于指示服务器在接收到响应结果后,供服务器编辑模拟的设备拓扑信息,触发为服务器分配的设备的配置指令。当指令是针对为服务器分配的设备的配置指令,按照针对服务器模拟的设备拓扑信息,将指令路由到设备的配置空间。响应于指令,在配置空间中,执行配置指令所指示的针对设备的配置信息的配置操作。当指令是针对为服务器分配的设备的查询指令,按照针对服务器模拟的设备拓扑信息,将指令路由到设备的配置空间。响应于指令,从配置空间中,查询设备的配置信息,获得包括配置信息的响应结果。当指令是访问为服务器分配的设备的访问指令,按照针对服务器模拟的设备拓扑信息,将指令发送到设备,以响应指令。
当响应指令完毕,处理单元可向硬件逻辑器件发送对指令响应完毕的状态信息,状态信息,用于指示硬件逻辑器件将指令从第一缓存队列中移除,并从与缓存指令的第一缓存队列对应的第二缓存队列中,读取响应结果,并将响应结果发送至与第一缓存队列对应的服务器。
当针对配置信息的配置操作变更了配置空间中的配置信息,处理单元可根据变更后的配置信息,更新针对服务器模拟的设备拓扑信息。当指令是更新针对服务器模拟的设备拓扑信息的拓扑更新指令,获取拓扑更新指令指定的更新的设备配置信息。根据更新的设备配置信息,更新为服务器分配的设备。基于更新的设备,生成针对服务器模拟的更新的设备拓扑信息。将更新的设备拓扑信息存储到静态拓扑存储区。当服务器发生重启,从静态拓扑存储区读取更新的设备拓扑信息,获得包括更新的设备拓扑信息的响应结果。
可以理解,通过将处理单元执行计算机程序、以及硬件逻辑器件中硬件逻辑相结合,通过软件与硬件结合的方式实现数据处理,能够节省网卡中的硬件资源,避免硬件资源的过度消耗,从而提升多服务器共享同一网卡的场景下,网卡的性能。
本申请还另外提供一种应用场景,该应用场景应用上述的基于网卡的指令处理方法。具体地,该基于网卡的指令处理方法可应用于单服务器连接至网卡的场景。可以理解,终端中设置有网卡,网卡中设置有可编程处理器,可编程处理器中设置有处理单元和硬件逻辑器件。主机可以为服务器,网卡连接单个服务器。处理单元可从硬件逻辑器件的第一缓存队列读取缓存的指令,指令由服务器发送到硬件逻辑器件,并由硬件逻辑器件缓存至第一缓存队列。当指令是访问为服务器分配的设备的访问指令,处理单元可按照针对服务器模拟的设备拓扑信息,将指令发送到设备,以响应指令。当响应指令完毕,处理单元可向硬件逻辑器件发送对指令响应完毕的状态信息,状态信息,用于指示硬件逻辑器件将指令从第一缓存队列中移除,并向服务器反馈对指令的响应结果。
可以理解,通过将处理单元执行计算机程序、以及硬件逻辑器件中硬件逻辑相结合,通过软件与硬件结合的方式实现数据处理,能够节省网卡中的硬件资源,避免硬件资源的过度消耗,从而提升单服务器连接至网卡的场景下,网卡的性能。
应该理解的是,虽然上述各实施例的流程图中的各个步骤按照顺序依次显示,但是这些步骤并不是必然按照顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,上述各实施例中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图12所示,提供了一种基于网卡的指令处理装置1200,该装置具体包括:
读取模块1202,用于从硬件逻辑器件的第一缓存队列读取缓存的指令,指令由主机发送到可编程处理器中的硬件逻辑器件,并由硬件逻辑器件缓存至第一缓存队列,可编程处理器设置于网卡中;
发送模块1204,用于当指令是访问为主机分配的设备的访问指令,按照针对主机模拟的设备拓扑信息,将指令发送到设备,以响应指令;
发送模块1204还用于当响应指令完毕,向硬件逻辑器件发送对指令响应完毕的状态信息,状态信息,用于指示硬件逻辑器件将指令从第一缓存队列中移除,并向主机反馈对指令的响应结果。
在一个实施例中,如图13所示,基于网卡的指令处理装置1200还包括:
查询模块1206,用于当指令是针对为主机分配的设备的查询指令,按照针对主机模拟的设备拓扑信息,将指令路由到设备的配置空间; 响应于指令,从配置空间中,查询设备的配置信息,获得包括配置信息的响应结果。
在一个实施例中,如图13所示,基于网卡的指令处理装置1200还包括:
配置模块1208,用于当指令是针对为主机分配的设备的配置指令,按照针对主机模拟的设备拓扑信息,将指令路由到设备的配置空间;响应于指令,在配置空间中,执行配置指令所指示的针对设备的配置信息的配置操作。
在一个实施例中,如图13所示,基于网卡的指令处理装置1200还包括:
更新模块1210,用于当针对配置信息的配置操作变更了配置空间中的配置信息,根据变更后的配置信息,更新针对主机模拟的设备拓扑信息。
在一个实施例中,如图13所示,基于网卡的指令处理装置1200还包括:
获取模块1212,用于当指令是主机发起的拓扑获取指令,获取针对主机模拟的设备拓扑信息,以确定包括模拟的设备拓扑信息的响应结果;其中,响应结果,用于指示主机在接收到响应结果后,供主机编辑模拟的设备拓扑信息,触发为主机分配的设备的配置指令。
在一个实施例中,如图13所示,基于网卡的指令处理装置1200还包括:
模拟模块1214,用于当指令是申请为主机分配设备的设备分配指令,获取设备分配指令指定的设备配置信息;根据设备配置信息,从预先设置的设备池中为主机分配设备;模拟主机与分配的设备间的连接关系,形成针对主机模拟的设备拓扑信息。
在一个实施例中,如图13所示,基于网卡的指令处理装置1200还包括:
更新模块1210,用于当指令是更新针对主机模拟的设备拓扑信息的拓扑更新指令,获取拓扑更新指令指定的更新的设备配置信息;根据更新的设备配置信息,更新为主机分配的设备;基于更新的设备,更新针对主机模拟的设备拓扑信息。
在一个实施例中,更新模块1210还用于基于更新的设备,生成针对主机模拟的更新的设备拓扑信息;将更新的设备拓扑信息存储到静态拓扑存储区;当主机发生重启,从静态拓扑存储区读取更新的设备拓扑信息,获得包括更新的设备拓扑信息的响应结果。
在一个实施例中,对指令的响应结果缓存在硬件逻辑器件的第二缓存队列中,发送模块1204还用于从硬件逻辑器件的第二缓存队列中,读取响应结果,并将响应结果发送至主机。
在一个实施例中,网卡连接多个主机,可编程处理器与多个主机通过多个通道连接,多个通道与多个主机一一对应,硬件逻辑器件通过不同的通道与不同的主机分别通信。
在一个实施例中,硬件逻辑器件具有多个第一缓存队列,多个第一缓存队列与多个通道一一对应,用于缓存对应通道连接的主机发送的指令。
在一个实施例中,硬件逻辑器件具有多个第二缓存队列,多个第二缓存队列与多个第一缓存队列一一对应,用于缓存对所对应第一缓存队列中指令响应后的响应结果,发送模块1204还用于从与缓存指令的第一缓存队列对应的第二缓存队列中,读取响应结果,并将响应结果发送至与第一缓存队列对应的主机。
上述基于网卡的指令处理装置,网卡中设置有可编程处理器,可编程处理器中设置有处理单元和硬件逻辑器件。通过处理单元执行预先设置的计算机程序,从硬件逻辑器件的第一缓存队列读取缓存的指令,指令由主机发送到硬件逻辑器件,并由硬件逻辑器件缓存至第一缓存队列;当指令是访问为主机分配的设备的访问指令,按照针对主机模拟的设备拓扑信息,将指令发送到设备,以响应指令;当响应指令完毕,向硬件逻辑器件发送对指令响应完毕的状态信息,状态信息,用于指示硬件逻辑器件将指令从第一缓存队列中移除,并向主机反馈对指令的响应结果。相较于传统的通过固化于网卡中的硬件逻辑实现数据处理的方式,本申请将处理单元执行计算机程序、以及硬件逻辑器件中硬件逻辑相结合,通过软件与硬件结合的方式实现数据处理,能够节省网卡中的硬件资源,避免硬件资源的过度消耗,从而提升网卡的性能。
上述基于网卡的指令处理装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图14所示。该计算机设备包括网卡和存储器、输入/输出接口(Input/Output,简称I/O)和通信接口。网卡中设置有可编程处理器,可编程处理器中设置有硬件逻辑器件,硬件逻辑器件中设置有处理单元。其中,处理单元、存储器和输入/输出接口通过系统总线连接,通信接口通过输入/输出接口连接到系统总线。其中,该计算机设备的处理单元用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的输入/输出接口用于处理单元与外部设备之间交换信息。该计算机设备的通信接口用于与外部的终端通过网络连接通信。该计算机程序被处理单元执行时以实现一种基于网卡的指令处理方法。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图15所示。该计算机设备包括网卡和存储器、输入/输出接口、通信接口、显示单元和输入装置。网卡中设置有可编程处理器,可编程处理器中设置有硬件逻辑器件,硬件逻辑器件中设置有处理单元。其中,处理单元、存储器和输入/输出接口通过系统总线连接,通信接口、显示单元和输入装置通过输入/输出接口连接到系统总线。其中,该计算机设备的处理单元用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的输入/输出接口用于处理单元与外部设备之间交换信息。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过WIFI、移动蜂窝网络、NFC(近场通信)或其他技术实现。该计算机程序被处理单元执行时以实现一种基于网卡的指令处理方法。该计算机设备的显示单元用于形成视觉可见的画面,可以是显示屏、投影装置或虚拟现实成像装置,显示屏可以是液晶显示屏或电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图14和图15中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,还提供了一种计算机设备,包括网卡和存储器,网卡中设置有可编程处理器,可编程处理器中设置有硬件逻辑器件,硬件逻辑器件中设置有处理单元,存储器存储有计算机程序,其特征在于,处理单元执行计算机程序时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,存储有计算机程序,该计算机程序被处理单元执行时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,计算机程序被处理单元执行时实现上述各方法实施例中的步骤。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-Only Memory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(DynamicRandom Access Memory,DRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (15)
1.一种基于网卡的指令处理方法,其特征在于,由处理单元执行,所述处理单元设置于网卡的可编程处理器中,所述可编程处理器还设置有硬件逻辑器件,所述方法包括:
从硬件逻辑器件的第一缓存队列读取缓存的指令,所述指令由主机发送到所述硬件逻辑器件,并由所述硬件逻辑器件缓存至所述第一缓存队列;
当所述指令是访问为所述主机分配的设备的访问指令,按照针对所述主机模拟的设备拓扑信息,将所述指令发送到所述设备,以响应所述指令;
当响应所述指令完毕,向所述硬件逻辑器件发送对所述指令响应完毕的状态信息,所述状态信息,用于指示所述硬件逻辑器件将所述指令从所述第一缓存队列中移除,并向所述主机反馈对所述指令的响应结果。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当所述指令是针对为所述主机分配的设备的查询指令,按照针对所述主机模拟的设备拓扑信息,将所述指令路由到所述设备的配置空间;
响应于所述指令,从所述配置空间中,查询所述设备的配置信息,获得包括所述配置信息的响应结果。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当所述指令是针对为所述主机分配的设备的配置指令,按照针对所述主机模拟的设备拓扑信息,将所述指令路由到所述设备的配置空间;
响应于所述指令,在所述配置空间中,执行所述配置指令所指示的针对设备的配置信息的配置操作。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
当针对所述配置信息的配置操作变更了所述配置空间中的所述配置信息,根据变更后的配置信息,更新针对所述主机模拟的设备拓扑信息。
5.根据权利要求3所述的方法,其特征在于,所述方法还包括:
当所述指令是所述主机发起的拓扑获取指令,获取针对所述主机模拟的设备拓扑信息,以确定包括所述模拟的设备拓扑信息的响应结果;
其中,所述响应结果,用于指示所述主机在接收到所述响应结果后,供所述主机编辑所述模拟的设备拓扑信息,触发为所述主机分配的设备的配置指令。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当所述指令是申请为所述主机分配设备的设备分配指令,获取所述设备分配指令指定的设备配置信息;
根据所述设备配置信息,从预先设置的设备池中为所述主机分配设备;
模拟所述主机与分配的设备间的连接关系,形成针对所述主机模拟的设备拓扑信息。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当所述指令是更新针对所述主机模拟的设备拓扑信息的拓扑更新指令,获取所述拓扑更新指令指定的更新的设备配置信息;
根据所述更新的设备配置信息,更新为所述主机分配的设备;
基于更新的设备,更新针对所述主机模拟的设备拓扑信息。
8.根据权利要求7所述的方法,其特征在于,所述基于更新的设备,更新针对所述主机模拟的设备拓扑信息,包括:
基于更新的设备,生成针对所述主机模拟的更新的设备拓扑信息;
将所述更新的设备拓扑信息存储到静态拓扑存储区;
当所述主机发生重启,从所述静态拓扑存储区读取所述更新的设备拓扑信息,获得包括所述更新的设备拓扑信息的响应结果。
9.根据权利要求1至8任一项所述的方法,其特征在于,对所述指令的响应结果缓存在所述硬件逻辑器件的第二缓存队列中,所述向所述主机反馈对所述指令的响应结果,包括:
从所述硬件逻辑器件的第二缓存队列中,读取所述响应结果,并将所述响应结果发送至所述主机。
10.根据权利要求1至8任一项所述的方法,其特征在于,所述网卡连接多个主机,所述可编程处理器与所述多个主机通过多个通道连接,所述多个通道与所述多个主机一一对应,所述硬件逻辑器件通过不同的通道与不同的主机分别通信。
11.根据权利要求10所述的方法,其特征在于,所述硬件逻辑器件具有多个第一缓存队列,所述多个第一缓存队列与所述多个通道一一对应,用于缓存对应通道连接的主机发送的指令。
12.根据权利要求11所述的方法,其特征在于,所述硬件逻辑器件具有多个第二缓存队列,所述多个第二缓存队列与所述多个第一缓存队列一一对应,用于缓存对所对应第一缓存队列中指令响应后的响应结果,所述向所述主机反馈对所述指令的响应结果,包括:
从与缓存所述指令的第一缓存队列对应的所述第二缓存队列中,读取所述响应结果,并将所述响应结果发送至与所述第一缓存队列对应的所述主机。
13.一种基于网卡的指令处理装置,其特征在于,所述装置包括:
读取模块,用于从硬件逻辑器件的第一缓存队列读取缓存的指令,所述指令由主机发送到可编程处理器中的硬件逻辑器件,并由所述硬件逻辑器件缓存至所述第一缓存队列,所述可编程处理器设置于网卡中;
发送模块,用于当所述指令是访问为所述主机分配的设备的访问指令,按照针对所述主机模拟的设备拓扑信息,将所述指令发送到所述设备,以响应所述指令;
所述发送模块还用于当响应所述指令完毕,向所述硬件逻辑器件发送对所述指令响应完毕的状态信息,所述状态信息,用于指示所述硬件逻辑器件将所述指令从所述第一缓存队列中移除,并向所述主机反馈对所述指令的响应结果。
14.一种计算机设备,包括网卡和存储器,所述网卡中设置有可编程处理器,所述可编程处理器中设置有硬件逻辑器件,所述硬件逻辑器件中设置有处理单元,所述存储器存储有计算机程序,其特征在于,所述处理单元执行所述计算机程序时实现权利要求1至12中任一项所述的方法的步骤。
15.一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理单元执行时实现权利要求1至12中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311372783.1A CN117112044B (zh) | 2023-10-23 | 2023-10-23 | 基于网卡的指令处理方法、装置、设备和介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311372783.1A CN117112044B (zh) | 2023-10-23 | 2023-10-23 | 基于网卡的指令处理方法、装置、设备和介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117112044A true CN117112044A (zh) | 2023-11-24 |
CN117112044B CN117112044B (zh) | 2024-02-06 |
Family
ID=88798740
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311372783.1A Active CN117112044B (zh) | 2023-10-23 | 2023-10-23 | 基于网卡的指令处理方法、装置、设备和介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117112044B (zh) |
Citations (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030018765A1 (en) * | 2001-06-28 | 2003-01-23 | Muhlestein Travis J. | System and related methods for accessing management functionality through a command line utility |
US20050034131A1 (en) * | 2003-08-07 | 2005-02-10 | Deshpande Sachin G. | Apparatus and methods for providing communication between systems having different protocol versions |
US20060259291A1 (en) * | 2005-05-12 | 2006-11-16 | International Business Machines Corporation | Internet SCSI communication via UNDI services |
CN105243033A (zh) * | 2015-09-28 | 2016-01-13 | 联想(北京)有限公司 | 数据处理方法及电子设备 |
CN106970827A (zh) * | 2017-03-27 | 2017-07-21 | 联想(北京)有限公司 | 信息处理方法、信息处理装置、电子设备 |
CN108023829A (zh) * | 2017-11-14 | 2018-05-11 | 东软集团股份有限公司 | 报文处理方法及装置、存储介质、电子设备 |
CN108833301A (zh) * | 2018-05-30 | 2018-11-16 | 杭州迪普科技股份有限公司 | 一种报文处理方法和装置 |
CN110661723A (zh) * | 2018-06-29 | 2020-01-07 | 华为技术有限公司 | 一种数据传输方法、计算设备、网络设备及数据传输系统 |
CN112463654A (zh) * | 2019-09-06 | 2021-03-09 | 华为技术有限公司 | 一种带预测机制的cache实现方法 |
CN113746749A (zh) * | 2020-05-29 | 2021-12-03 | 阿里巴巴集团控股有限公司 | 网络连接设备 |
CN113778320A (zh) * | 2020-06-09 | 2021-12-10 | 华为技术有限公司 | 网卡以及网卡处理数据的方法 |
CN114025018A (zh) * | 2021-11-29 | 2022-02-08 | 北京天融信网络安全技术有限公司 | 数据处理方法、装置、网络设备及计算机可读存储介质 |
CN114490085A (zh) * | 2022-02-16 | 2022-05-13 | 北京火山引擎科技有限公司 | 一种网卡配置方法、装置、设备及存储介质 |
CN114528030A (zh) * | 2022-03-01 | 2022-05-24 | 苏州浪潮智能科技有限公司 | 一种网络协议分组绑定的方法、系统、设备和存储介质 |
CN116204456A (zh) * | 2021-11-30 | 2023-06-02 | 华为技术有限公司 | 数据访问方法及计算设备 |
CN116414731A (zh) * | 2021-12-29 | 2023-07-11 | 北京字跳网络技术有限公司 | 一种特效编辑方法及装置 |
CN116450046A (zh) * | 2023-04-20 | 2023-07-18 | 迈普通信技术股份有限公司 | 云盘实现方法、装置、智能网卡、服务器及存储介质 |
CN116627888A (zh) * | 2023-07-25 | 2023-08-22 | 苏州浪潮智能科技有限公司 | 硬件计算模块、设备、方法、电子设备及存储介质 |
CN116700595A (zh) * | 2022-02-25 | 2023-09-05 | 华为技术有限公司 | 一种基于缓存的数据处理方法、系统及设备 |
CN116841629A (zh) * | 2023-06-30 | 2023-10-03 | 浪潮(山东)计算机科技有限公司 | 一种网卡功能配置方法、装置及其介质 |
-
2023
- 2023-10-23 CN CN202311372783.1A patent/CN117112044B/zh active Active
Patent Citations (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030018765A1 (en) * | 2001-06-28 | 2003-01-23 | Muhlestein Travis J. | System and related methods for accessing management functionality through a command line utility |
US20050034131A1 (en) * | 2003-08-07 | 2005-02-10 | Deshpande Sachin G. | Apparatus and methods for providing communication between systems having different protocol versions |
US20060259291A1 (en) * | 2005-05-12 | 2006-11-16 | International Business Machines Corporation | Internet SCSI communication via UNDI services |
CN105243033A (zh) * | 2015-09-28 | 2016-01-13 | 联想(北京)有限公司 | 数据处理方法及电子设备 |
CN106970827A (zh) * | 2017-03-27 | 2017-07-21 | 联想(北京)有限公司 | 信息处理方法、信息处理装置、电子设备 |
CN108023829A (zh) * | 2017-11-14 | 2018-05-11 | 东软集团股份有限公司 | 报文处理方法及装置、存储介质、电子设备 |
CN108833301A (zh) * | 2018-05-30 | 2018-11-16 | 杭州迪普科技股份有限公司 | 一种报文处理方法和装置 |
CN110661723A (zh) * | 2018-06-29 | 2020-01-07 | 华为技术有限公司 | 一种数据传输方法、计算设备、网络设备及数据传输系统 |
CN112463654A (zh) * | 2019-09-06 | 2021-03-09 | 华为技术有限公司 | 一种带预测机制的cache实现方法 |
CN113746749A (zh) * | 2020-05-29 | 2021-12-03 | 阿里巴巴集团控股有限公司 | 网络连接设备 |
CN113778320A (zh) * | 2020-06-09 | 2021-12-10 | 华为技术有限公司 | 网卡以及网卡处理数据的方法 |
CN114025018A (zh) * | 2021-11-29 | 2022-02-08 | 北京天融信网络安全技术有限公司 | 数据处理方法、装置、网络设备及计算机可读存储介质 |
CN116204456A (zh) * | 2021-11-30 | 2023-06-02 | 华为技术有限公司 | 数据访问方法及计算设备 |
CN116414731A (zh) * | 2021-12-29 | 2023-07-11 | 北京字跳网络技术有限公司 | 一种特效编辑方法及装置 |
CN114490085A (zh) * | 2022-02-16 | 2022-05-13 | 北京火山引擎科技有限公司 | 一种网卡配置方法、装置、设备及存储介质 |
CN116700595A (zh) * | 2022-02-25 | 2023-09-05 | 华为技术有限公司 | 一种基于缓存的数据处理方法、系统及设备 |
CN114528030A (zh) * | 2022-03-01 | 2022-05-24 | 苏州浪潮智能科技有限公司 | 一种网络协议分组绑定的方法、系统、设备和存储介质 |
CN116450046A (zh) * | 2023-04-20 | 2023-07-18 | 迈普通信技术股份有限公司 | 云盘实现方法、装置、智能网卡、服务器及存储介质 |
CN116841629A (zh) * | 2023-06-30 | 2023-10-03 | 浪潮(山东)计算机科技有限公司 | 一种网卡功能配置方法、装置及其介质 |
CN116627888A (zh) * | 2023-07-25 | 2023-08-22 | 苏州浪潮智能科技有限公司 | 硬件计算模块、设备、方法、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN117112044B (zh) | 2024-02-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2017133203A1 (zh) | 一种执行环境的虚拟化、虚拟执行环境的访问方法及装置 | |
WO2019042171A1 (zh) | 资源配置方法及相关产品 | |
CN105335309B (zh) | 一种数据传输方法及计算机 | |
CN108073423B (zh) | 一种加速器加载方法、系统和加速器加载装置 | |
US10198174B2 (en) | Electronic device and method of managing memory of electronic device | |
CN107580011B (zh) | 一种数据共享方法及桌面云服务端 | |
CN110222288B (zh) | 页面展示方法、装置及存储介质 | |
CN110520844A (zh) | 云管理平台、虚拟机管理方法及其系统 | |
CN111679790A (zh) | 远程软件开发存储空间分配方法及装置 | |
JP2017519294A (ja) | フラッシュメモリベースストレージデバイスのマルチホスト電力コントローラ(mhpc) | |
CN108073350A (zh) | 一种用于云渲染的对象存储系统和方法 | |
CN114817120A (zh) | 一种跨域数据共享方法、系统级芯片、电子设备及介质 | |
CN113448720A (zh) | 一种内存分配方法、装置、设备及存储介质 | |
CN110764688A (zh) | 对数据进行处理的方法和装置 | |
KR20200135715A (ko) | 데이터 처리 방법, 장치, 기기 및 매체 | |
CN110383254B (zh) | 优化与网络节点相关联的内存映射 | |
CN116800616B (zh) | 虚拟化网络设备的管理方法及相关装置 | |
WO2014190700A1 (zh) | 一种内存访问的方法、缓冲调度器和内存模块 | |
CN116721007B (zh) | 任务控制方法、系统及装置、电子设备和存储介质 | |
CN117112044B (zh) | 基于网卡的指令处理方法、装置、设备和介质 | |
CN108713193A (zh) | 混合并行串行存储器系统中的多序列冲突减少 | |
US11252457B2 (en) | Multimedia streaming and routing apparatus and operation method of the same | |
CN110474891A (zh) | 基于多系统智能设备的业务访问控制方法及装置 | |
CN115562871A (zh) | 内存分配管理的方法和装置 | |
CN114756788A (zh) | 一种缓存更新方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |