CN117271105A - 芯片、芯片控制方法及相关装置 - Google Patents
芯片、芯片控制方法及相关装置 Download PDFInfo
- Publication number
- CN117271105A CN117271105A CN202210675596.XA CN202210675596A CN117271105A CN 117271105 A CN117271105 A CN 117271105A CN 202210675596 A CN202210675596 A CN 202210675596A CN 117271105 A CN117271105 A CN 117271105A
- Authority
- CN
- China
- Prior art keywords
- address
- chip
- circuit
- resource
- space
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 103
- 238000013507 mapping Methods 0.000 claims abstract description 149
- 238000013519 translation Methods 0.000 claims abstract description 15
- 238000013468 resource allocation Methods 0.000 claims description 133
- 238000004590 computer program Methods 0.000 claims description 3
- 230000002093 peripheral effect Effects 0.000 claims description 3
- 230000006870 function Effects 0.000 description 38
- 238000010586 diagram Methods 0.000 description 19
- 238000005516 engineering process Methods 0.000 description 19
- 230000014616 translation Effects 0.000 description 13
- 230000008569 process Effects 0.000 description 12
- 239000003999 initiator Substances 0.000 description 7
- 238000013473 artificial intelligence Methods 0.000 description 6
- 230000008878 coupling Effects 0.000 description 6
- 238000010168 coupling process Methods 0.000 description 6
- 238000005859 coupling reaction Methods 0.000 description 6
- 230000006399 behavior Effects 0.000 description 5
- 230000000694 effects Effects 0.000 description 5
- 238000007726 management method Methods 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 230000003863 physical function Effects 0.000 description 3
- 230000001960 triggered effect Effects 0.000 description 3
- 230000009471 action Effects 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 230000003068 static 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
- G06F13/4221—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
-
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Bus Control (AREA)
Abstract
本申请实施例公开了一种芯片、芯片控制方法及相关装置,用于实现PCIe设备的硬件资源被不同应用程序安全且准确地访问,同时降低芯片功耗。本申请通过以目标连续地址空间作为ATU电路的目的地址,以及通过地址映射电路进行从目标连续地址空间到该芯片的物理地址空间的地址翻译,减少ATU电路中的ATU数量,一方面可以降低ATU电路所在的PCIe功能模块电路的延迟,防止该PCIe功能模块电路的时序过长,导致无法满足芯片应用要求中的时序约束;另一方面可以降低芯片功耗。
Description
技术领域
本申请涉及计算机虚拟化技术领域,具体涉及一种芯片、芯片控制方法及相关装置。
背景技术
单根I/O虚拟化(single root I/O virtualization,SR-IOV)技术,是计算机虚拟化技术中的一个重要部分。主机(host)通过SR-IOV技术将***设备高速互联(peripheralcomponent interconnect express,PCIe)设备的物理功能(physical function,PF)虚拟化为多个虚拟功能(virtual function,VF);PF为对应的每个VF提供独立的基地址寄存器(base address register,BAR)空间,并将PCIe设备的硬件资源在该PF和与该PF对应的多个VF之间分配,使得主机的应用程序能够通过VF访问归属于该PCIe设备的多种硬件资源。
主机可以通过一个VF的BAR空间访问该VF被分配的硬件资源。PCIe设备的芯片在处理主机访问该VF被分配的硬件资源的请求时,需要该芯片上的地址翻译单元(addresstranslation unit,ATU)进行从该VF的BAR空间到对应的硬件资源地址空间的翻译。
在PF为对应的VF分配多种类的硬件资源的情况下,该VF的BAR空间对应的是不连续的硬件资源地址空间。因此,芯片需要在PCIe功能模块电路的ATU电路中设置大量的ATU以进行从VF的BAR空间到对应的不连续的硬件资源地址空间的翻译,导致PCIe功能模块电路的时序过长,功耗增大。
发明内容
本申请提供一种芯片、芯片控制方法及相关装置,用于实现PCIe设备的硬件资源能够被不同应用程序安全且准确地隔离访问,同时降低芯片功耗。
本申请第一方面提供一种芯片,该芯片归属于PCIe设备,具体的芯片类型可以是神经网络处理器(Neural Processing Unit,NPU)或图形处理器(Graphical ProcessingUnit,GPU),也可以是现场可编程门阵列(Field Programmable Gate Array,FPGA)。
该芯片具体可以包括PCIe接口、ATU电路和地址映射电路。
该ATU电路,用于通过该PCIe接口接收第一访问请求,其中,该第一访问请求包括目标BAR空间的第一地址。
其中,该ATU电路归属于该芯片的PCIe功能模块电路,该PCIe功能模块电路用于支持该芯片的PCIe功能,该ATU电路负责PCIe功能中的地址翻译工作;因此,当该PCIe接口接收到第一访问请求时,将该第一访问请求转发到该ATU电路进行地址翻译。
其中,目标BAR空间是该芯片根据预设的配置项提供的多个BAR空间中的任意一个,该多个BAR空间中不同的BAR空间,对应不同的该PCIe设备的硬件资源。每个该BAR空间的地址是该PCIe设备的总BAR空间的地址的子集。
该ATU电路,还用于根据该目标BAR空间的第一地址,获取目标连续地址空间的第二地址,其中该第二地址是连续地址。
其中,目标连续地址空间是该芯片提供的多个连续地址空间中的一个,该目标连续地址空间与该目标BAR空间具有对应关系;可以理解的是,目标连续地址空间可以是芯片提供的物理地址空间,也可以是虚拟的逻辑地址空间。
其中,当ATU电路接收到该第一访问请求后,该ATU电路中的各个ATU可以根据地址映射表或配置的映射关系对该第一地址将进行地址匹配,由匹配成功的ATU获取该第二地址。
该地址映射电路,用于根据该第二地址,至少获取该芯片的物理地址空间中的第三地址,其中该第三地址是不连续地址。
其中,该芯片的物理地址空间的第四地址为该PCIe设备被分配的一段总线域地址,该第四地址对应该PCIe设备的硬件资源;每个第四地址对应一份PCIe设备的硬件资源,该芯片可以将多份硬件资源作为一个对外提供服务的逻辑单元。
具体地,芯片可以为该多份硬件资源提供独立的BAR空间以及与该BAR空间对应的连续地址空间,以将该多份硬件资源作为一个逻辑单元对外提供服务。
其中,第三地址是与目标BAR空间对应的多份硬件资源的物理地址,该第三地址为该第四地址的子集。可以理解的是,构成一个逻辑单元的硬件资源的种类为多种,每个BAR空间对应的硬件资源的物理地址是不连续地址,因此该第三地址为不连续地址。
其中,目标连续地址空间的第二地址可以与该芯片的物理地址空间中的地址有多种映射关系;该地址映射电路通过该多种映射关系中的一种,根据该第二地址,至少获取该芯片的物理地址空间中的第三地址。
其中,该地址映射电路为独立于前述PCIe功能模块电路部署的电路。
需要说明的是,该PCIe功能模块电路为时序逻辑电路,时序逻辑电路中的寄存器或ATU等构成时序逻辑电路的元件为时序单元,时序逻辑电路的时序为该PCIe功能模块电路任意两个时序单元之间的最大延迟。
本申请中,通过以目标连续地址空间作为该ATU电路的目的地址,以及通过地址映射电路进行从目标连续地址空间到该芯片的物理地址空间的地址翻译,减少ATU电路中的ATU数量,一方面可以降低ATU电路所在的PCIe功能模块电路的延迟,防止该PCIe功能模块电路的时序过长,导致无法满足芯片应用要求中的时序约束;另一方面,减少了根据该第一访问请求进行地址匹配的ATU数量,可以降低芯片功耗。
在一种可能的实现中,该第一访问请求还包括该目标BAR空间的标识信息;该地址映射电路具体用于根据该第二地址,获取该芯片的物理地址空间的第四地址,其中该第四地址是包括该第三地址的连续地址;该芯片还包括:地址鉴权电路,用于根据该第四地址和该标识信息鉴权该第一访问请求。
其中,该第一访问请求的发起者是通过访问该目标BAR空间发起该第一访问请求,因此该第一访问请求中包括该目标BAR空间的标识信息。
其中,该第二地址和该第四地址具有映射关系;该第二地址和该第四地址均为连续地址,因此,可以通过该地址映射电路中的ATU以进行从该第二地址到该第四地址的翻译。这样可以无需因为目的地址为不连续的第三地址而增加的ATU数量,也无需因为部署多个寄存器进行从该第二地址到该第四地址的翻译而增加芯片面积,从而能够减小芯片的面积,降低芯片的功耗。
可以理解的是,通过目标BAR空间的第一地址进行访问,应当只能访问该目标BAR空间对应的硬件资源,也即芯片在通过第一地址和第二地址得到非该第三地址的第四地址后,需要限制该访问行为。
其中,一个BAR空间与其对应硬件资源的物理地址具有关联,地址鉴权电路根据硬件资源的物理地址可以得到与其对应的BAR空间的标识信息。因此,地址鉴权电路可以通过该第四地址和该标识信息鉴权该第一访问请求。
具体地,鉴权该第一访问请求是指验证第一访问请求的发起者是否具有访问该第四地址对应硬件资源的权利;而该发起者通过目标BAR空间发起第一访问请求,仅拥有访问目标BAR空间对应的硬件资源的权利。因此,地址鉴权电路可以通过比对该第四地址对应的标识信息和目标BAR空间的标识信息的方式进行鉴权,若二者一致则鉴权通过,地址鉴权电路允许该第一访问请求的发起者对该第四地址进行读写;若二者不一致则鉴权失败,地址鉴权电路拒绝或丢弃该第一访问请求。
本申请中,通过比对第四地址对应的标识信息和目标BAR空间的标识信息以鉴权第一访问请求,可以实现应用程序对PCIe设备的硬件资源的隔离访问,使得访问过程更安全。
在一种可能的实现中,该地址映射电路具体用于通过该地址映射电路中的多个映射窗口寄存器,根据该第二地址,获取该第三地址。
其中,该多个映射窗口寄存器的数量根据该第三地址的地址空间大小确定,该多个映射窗口寄存器中的每个映射窗口寄存器用于映射一个第三地址;该多个映射窗口寄存器用于作为地址映射窗口,进行从目标连续地址空间到目标资源的物理地址空间的地址翻译。
本申请中,相较于采用ATU进行从该第三地址到该第三地址的映射,通过采用映射窗口寄存器进行地址映射的方法,可以使地址映射电路根据该第二地址直接确定对应的映射窗口寄存器,进而获取该第三地址。无需让地址映射电路中的所有ATU进行地址匹配,可以降低芯片功耗。
在一种可能的实现中,该芯片还包括:资源配置电路,用于通过该PCIe接口接收资源分配请求,该资源分配请求包含该目标BAR空间的资源配置信息;该资源配置电路还用于根据该资源配置信息配置该第三地址。
其中,芯片可以根据不同功能需求,以不同硬件资源的组合构建不同的逻辑单元以对外提供服务,该资源配置信息用于记载功能需求。
资源配置电路可以根据该资源配置信息确定能够满足对应功能需求的空闲的硬件资源组合;再将该硬件资源组合作为一个逻辑单元与该目标BAR空间进行关联。具体地,资源配置电路将该硬件资源组合对应的物理地址,也即该第三地址,与该目标BAR空间进行关联,完成该第三地址的配置。
本申请中,通过根据资源配置信息进行该第三地址和目标BAR空间的实时关联配置,使得芯片能够动态分配硬件资源,提高硬件资源的利用率。
在一种可能的实现中,该资源配置电路还用于根据该第三地址更新与该目标BAR空间对应的资源配置表;其中,该资源配置表包含地址偏移量,该地址偏移量用于指示该第三地址对应的该第一地址。
其中,每个BAR空间中设置有对应的资源配置表。
本申请中,该资源配置电路在动态分配硬件资源后更新目标BAR空间对应的资源配置表,使得目标BAR空间对应的硬件资源能够被准确快捷地访问;同时,芯片无需通过重启的方式重新分配资源,提高了芯片对外提供服务的灵活性。
在一种可能的实现中,该芯片还包括:资源访问鉴权模块,用于接收被访硬件资源访问该第四地址的第二访问请求,该被访硬件资源是该第三地址对应的硬件资源;该资源访问鉴权模块还用于根据该第三地址和该第四地址鉴权该第二访问请求。
其中,被访硬件资源是指正在被访问的硬件资源,也是通过鉴权的第一访问请求所访问的硬件资源;在逻辑单元对外提供功能服务,且需要该逻辑单元的多个硬件资源协同工作时,被访硬件资源可以向资源访问鉴权模块发出该第二访问请求,该第二访问请求中包括发出该第二访问请求的被访硬件资源的第三地址,以及作为访问目标的硬件资源的第四地址。
资源访问鉴权模块可以通过比对该第三地址对应的标识信息和该第四地址对应的标识信息是否一致进行鉴权。
本申请中,通过对PCIe设备的硬件资源间的访问行为进行鉴权,进一步地提高了访问过程的安全性。
本申请第二方面提供一种PCIe设备,该PCIe设备包括上述第一方面所述的芯片。
该PCIe设备可以是PCIe卡,具体可以是网卡、显卡或人工智能(artificialintelligence,AI)加速卡等等有PCIe接口的设备。
本申请第三方面提供一种计算机***,该***包括主机和PCIe设备;该PCIe设备的芯片包括PCIe接口、ATU电路和地址映射电路。
其中,该PCIe设备的芯片可以支持虚拟化功能分组,具体可以为支持SR-IOV技术,也可以是其他的用于功能分组的虚拟化技术,本申请文件中均以支持SR-IOV技术的芯片为例进行说明。可以理解的是,当采用其他虚拟化技术时,芯片虚拟化进行功能分组之后得到的独立提供功能服务的逻辑单元等同于SR-IOV技术中的VF。
通过该支持SR-IOV技术的芯片,该主机可以虚拟化该PCIe设备的PF得到一个或多个VF。
具体地,在该PCIe设备的SR-IOV使能(SR-IOV capability)模块中可以预先设定VF的数量,以及相应的设置;在上电后,该PCIe设备能够对支持SR-IOV技术的主机提供该一个或多个VF,以及对应的功能服务。
该主机用于向该PCIe接口发送第一访问请求,该第一访问请求包括目标VF的BAR空间的第一地址。
其中,该目标VF为该一个或多个VF中的任意一个。
该ATU电路,用于通过该PCIe接口接收该第一访问请求。
该ATU电路还用于根据该第一地址,获取目标连续地址空间的第二地址,其中该第二地址是连续地址。
其中,目标连续地址空间为芯片提供的多个连续地址空间中的一个,该多个连续地址空间中的每个连续地址空间对应一个VF的BAR空间,目标连续地址空间与该目标VF的BAR空间对应。
该地址映射电路,用于根据该第二地址,至少获取该芯片的物理地址空间中的第三地址,其中该第三地址是不连续地址。
其中,该第三地址是目标VF被分配的硬件资源对应的物理地址。
在一种可能的实现中,该第一访问请求还包括该目标VF的标识信息;该地址映射电路具体用于根据该第二地址,获取该芯片的物理地址空间的第四地址,其中该第四地址是包括该第三地址的连续地址;该芯片还包括:地址鉴权电路,用于根据该第四地址和该标识信息鉴权该第一访问请求。
在一种可能的实现中,该地址映射电路具体用于通过该地址映射电路中的多个映射窗口寄存器,根据该第二地址,获取该第三地址。
在一种可能的实现中,该芯片还包括资源配置电路;该主机还用于向该PCIe接口发送资源分配请求,该资源分配请求包含该目标VF的资源配置信息;该资源配置电路用于通过该PCIe接口接收该资源分配请求;该资源配置电路还用于根据该资源配置信息配置该第三地址。
其中,主机可以将VF分配给虚拟机,该VF可以被视为目标VF;并根据虚拟机的功能需求计算得到该目标VF的资源配置信息,向芯片发送包含该资源配置信息的资源分配请求。
其中,资源配置电路可以根据目标VF的资源配置信息确认目标资源,也即分配给目标VF的硬件资源;再配置该目标资源的物理地址,也即第三地址,与该目标VF相关联,以完成目标资源的分配。
在一种可能的实现中,该资源配置电路还用于根据该第三地址更新该目标VF的资源配置表;其中,该资源配置表包含地址偏移量,该地址偏移量用于指示该第三地址对应的该第一地址;该主机还用于获取该资源配置表;该主机还用于根据该地址偏移量向该PCIe接口发送该第一访问请求。
其中,主机可以通过目标VF的BAR空间获取该目标VF的资源配置表,并根据该PCIe设备被分配的基地址以及该资源配置表中的地址偏移量,获取与该第三地址对应的第一地址。
具体地,主机可以将该基地址与该资源配置表中的地址偏移量相加得到该第一地址。
在一种可能的实现中,该芯片还包括:资源访问鉴权模块,用于接收被访硬件资源访问该第四地址的第二访问请求,该被访硬件资源是该第三地址对应的硬件资源;该资源访问鉴权模块还用于根据该第三地址和该第四地址鉴权该第二访问请求。
在一种可能的实现中,该标识信息为VF的功能身份识别号(function ID)。
本申请第四方面提供一种芯片控制方法,该方法应用于芯片,该芯片包括PCIe接口、ATU电路和地址映射电路;该方法包括:
该ATU电路通过该PCIe接口接收第一访问请求,其中,该第一访问请求包括目标BAR空间的第一地址。
该ATU电路根据该目标BAR空间的第一地址,获取目标连续地址空间的第二地址,其中该第二地址是连续地址。
该地址映射电路根据该第二地址,至少获取该芯片的物理地址空间中的第三地址,其中该第三地址是不连续地址。
在一种可能的实现中,该芯片还包括地址鉴权电路,该第一访问请求还包括该目标BAR空间的标识信息;该地址映射电路根据该第二地址,至少获取该芯片的物理地址空间中的第三地址,包括:该地址映射电路根据该第二地址,获取该芯片的物理地址空间的第四地址,其中该第四地址是包括该第三地址的连续地址;在获取该芯片的物理地址空间的第四地址之后,该方法还包括:该地址鉴权电路根据该第四地址和该标识信息鉴权该第一访问请求。
在一种可能的实现中,该地址映射电路根据该第二地址,至少获取该芯片的物理地址空间中的第三地址,包括:该地址映射电路中的多个映射窗口寄存器根据该第二地址,获取该第三地址。
在一种可能的实现中,该芯片还包括资源配置电路;在该ATU电路通过该PCIe接口接收第一访问请求之前,该方法还包括:该资源配置电路通过该PCIe接口接收资源分配请求,该资源分配请求包含该目标BAR空间的资源配置信息;该资源配置电路根据该资源配置信息配置该第三地址。
在一种可能的实现中,在该资源配置电路根据该资源配置信息配置该第三地址之后,该方法还包括:该资源配置电路根据该第三地址更新与该目标BAR空间对应的资源配置表;其中,该资源配置表包含地址偏移量,该地址偏移量用于指示该第三地址对应的该第一地址。
在一种可能的实现中,该芯片还包括资源访问鉴权模块;在该地址映射电路根据该第二地址,至少获取该芯片的物理地址空间中的第三地址之后,该方法还包括:该资源访问鉴权模块接收被访硬件资源访问该第四地址的第二访问请求,该被访硬件资源是该第三地址对应的硬件资源;该资源访问鉴权模块根据该第三地址和该第四地址鉴权该第二访问请求。
本申请第五方面提供一种芯片控制方法,该方法应用于计算机***,该***包括主机和PCIe设备;该PCIe设备的芯片包括PCIe接口、ATU电路和地址映射电路;该主机通过虚拟化该PCIe设备的物理功能PF得到一个或多个虚拟功能VF;该方法还包括:
该主机向该PCIe接口发送第一访问请求,该第一访问请求包括该目标VF的BAR空间的第一地址。
该ATU电路通过该PCIe接口接收该第一访问请求。
该ATU电路根据该第一地址,获取目标连续地址空间的第二地址,其中该第二地址是连续地址。
该地址映射电路根据该第二地址,至少获取该芯片的物理地址空间中的第三地址,其中该第三地址是不连续地址。
在一种可能的实现中,该芯片还包括地址鉴权电路;该第一访问请求还包括目标VF的标识信息;该地址映射电路根据该第二地址,至少获取该芯片的物理地址空间中的第三地址,包括:该地址映射电路根据该第二地址,获取该芯片的物理地址空间的第四地址,其中该第四地址是包括该第三地址的连续地址;在该获取该芯片的物理地址空间的第四地址之后,该方法还包括:该地址鉴权电路根据该第四地址和该标识信息鉴权该第一访问请求。
在一种可能的实现中,该地址映射电路根据该第二地址,至少获取该芯片的物理地址空间中的第三地址,包括:该地址映射电路中的多个映射窗口寄存器根据该第二地址,获取该第三地址。
在一种可能的实现中,该芯片还包括资源配置电路;在该主机向该ATU电路发送第一访问请求之前,该方法还包括:该主机向该PCIe接口发送资源分配请求,该资源分配请求包含该目标VF的资源配置信息;该资源配置电路通过该PCIe接口接收该资源分配请求;该资源配置电路根据该资源配置信息配置该第三地址。
在一种可能的实现中,在该资源配置电路根据该资源配置信息配置该第三地址之后,该方法还包括:该资源配置电路根据该第三地址更新该目标VF的资源配置表;其中,该资源配置表包含地址偏移量,该地址偏移量用于指示该第三地址对应的该第一地址;该主机获取该资源配置表;该主机向该PCIe接口发送第一访问请求,包括:该主机根据该地址偏移量向该PCIe接口发送该第一访问请求。
在一种可能的实现中,该芯片还包括资源访问鉴权模块;在该地址映射电路根据该第二地址,至少获取该芯片的物理地址空间中的第三地址之后,该方法还包括:该资源访问鉴权模块接收被访硬件资源访问该第四地址的第二访问请求,该被访硬件资源是该第三地址对应的硬件资源;该资源访问鉴权模块根据该第三地址和该第四地址鉴权该第二访问请求。
本申请第六方面提供一种计算机可读存储介质,该计算机可读存储介质包括指令,当该指令在计算机上运行时,使得计算机执行如上述第四方面和第五方面中任一种可能实现中的方法。
本申请第七方面提供一种计算机程序产品,包括计算机可读指令,当该计算机可读指令在计算机设备上运行时,使得该计算机设备执行如如上述第四方面和第五方面中任一种可能实现中的方法。
上述第二方面和第四方面所获得的技术效果与第一方面中的技术手段获得的技术效果类似,第五方面所获得的技术效果与第三方面中的技术手段获得的技术效果类似,第六方面所获得的技术效果与第一方面或第三方面中的技术手段获得的技术效果类似,第七方面所获得的技术效果与第一方面或第三方面中的技术手段获得的技术效果类似,此处不再赘述。
附图说明
图1为传统技术中一种主机***的框架示意图;
图2为本申请实施例提供的一种芯片200的结构示意图;
图3为本申请实施例提供的另一芯片300的结构示意图;
图4为本申请实施例提供的一种计算机***的结构示意图;
图5为本申请实施例提供的另一计算机***的结构示意图;
图6为本申请实施例提供的VF资源配置流程和VF资源初始化流程的数据流向示意图;
图7为本申请实施例提供的一种芯片控制方法的流程示意图;
图8为本申请实施例提供的另一芯片控制方法的流程示意图;
图9为本申请实施例提供的一种地址映射关系示意图;
图10为本申请实施例提供的主机访问目标资源的过程示意图;
图11为本申请实施例提供的另一地址映射关系示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,下面结合附图,对本申请的实施例进行描述。显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。本领域普通技术人员可知,随着新应用场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的描述在适当情况下可以互换,以便使实施例能够以除了在本申请图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或模块的过程、方法、***、产品或设备不必限于清楚地列出的那些步骤或模块,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或模块。在本申请中出现的对步骤进行的命名或者编号,并不意味着必须按照命名或者编号所指示的时间/逻辑先后顺序执行方法流程中的步骤,已经命名或者编号的流程步骤可以根据要实现的技术目的变更执行顺序,只要能达到相同或者相类似的技术效果即可。本申请中所出现的单元的划分,是一种逻辑上的划分,实际应用中实现时可以有另外的划分方式,例如多个单元可以结合成或集成在另一个***中,或一些特征可以忽略,或不执行,另外,所显示的或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元之间的间接耦合或通信连接可以是电性或其他类似的形式,本申请中均不作限定。并且,作为分离部件说明的单元或子单元可以是也可以不是物理上的分离,可以是也可以不是物理单元,或者可以分布到多个电路单元中,可以根据实际的需要选择其中的部分或全部单元来实现本申请方案的目的。
计算机虚拟化,是指将计算机的物理设备进行逻辑化,以实现软硬件的解耦,使得计算机上的不同软件能够共用同一物理设备的硬件资源。
在虚拟机技术(virtual machine monitor)中,不再对底层的硬件资源进行划分,而是部署一个统一的主机***。在主机***上,虚拟层会给每个虚拟机(virtual machine,VM)模拟一套独立的硬件设备,包含CPU、内存、网卡等硬件资源,分别对应CPU虚拟化技术、内存虚拟化技术和输入/输出(input/output,I/O)设备虚拟化技术。
其中,运行虚拟机的物理主机被称为主机。
SR-IOV技术是一种基于硬件的虚拟化解决方案,在SR-IOV技术中,单个I/O设备可由许多虚拟机共享。共享的I/O设备将为每个虚拟机提供专用的资源,这样,每个虚拟机都可访问唯一的硬件资源。因此,启用了SR-IOV技术并且具有适当的硬件和操作***支持的PCIe设备(例如以太网端口),可以在***层面显示为PF和虚拟化得到的对应多个单独的VF,每个VF都能够作为独立的逻辑单元向虚拟机提供功能服务。
可以参阅图1,图1为传统技术中一种主机***的***框架示意图。其中,主机110和PCIe设备130通过PCIe总线120进行连接。主机中包括VM111,VM112和SR-IOV模块113;PCIe设备130包括芯片131。
主机110可以是终端,也可以是服务器,或者是其他能够运行虚拟机的计算机设备。
需要说明的是,本申请文档中的***框架示意图和结构示意图中,实线框用于表示实体部件和实体模块,虚线框用于表示无实体的软件模块或数据文件。
其中,主机110通过虚拟机技术得到VM111和VM112,具体的VM数目可以更多,也可以更少,此处不作具体限定;主机110通过SR-IOV模块113,将PCIe设备130的PF虚拟化为多个VF分别为不同的VM提供功能服务。
具体地,VM111和VM112通过VF驱动访问主机110分配的VF,从而对PCIe设备130的硬件资源进行读写等操作。
PCIe设备130可以是支持SR-IOV技术的I/O设备,例如PCIe卡,具体可以是网卡、显卡或人工智能(artificial intelligence,AI)加速卡等等具有PCIe接口的设备;芯片131可以是NPU或GPU,也可以是FPGA,用于提供特定的功能服务,例如可以是提供AI计算服务或AI加速器,也可以是提供视频编解码服务,或是提供网络报文处理服务。
需要说明的是,PCIe设备130上电时,主机110在处理器域的地址空间中为PCIe设备130划出一个地址段作为PCIe设备130的总BAR空间,芯片131通过PCIe设备130的PF根据该总BAR空间和预设的VF配置项为每个VF提供独立的BAR空间;应用程序通过VF的BAR空间中的地址访问该VF被分配的硬件资源。
需要说明的是,图1中,主机110通过PCIe总线120访问PCIe设备130,在其它情况下,PCIe总线120也可以是其他类型的总线,只要该总线不影响主机110和PCIe设备130对于上述虚拟化技术的支持性即可。
值得注意的,图1仅是一种***框架的示意图,图1中所示设备、器件、模块等之间的位置关系不构成任何限制。
随着硬件技术的发展,PCIe设备中的硬件资源种类在增加。在同一VF被分配多种类的硬件资源的情况下,该VF的BAR空间对应的是不连续的硬件资源地址空间。而传统技术中,芯片设置的ATU专用于翻译连续地址到连续地址,因此,传统技术的芯片需要在PCIe功能模块电路的ATU电路中设置大量的ATU以进行从VF的BAR空间到对应的不连续的硬件资源地址空间的翻译,导致PCIe功能模块电路的时序过长,功耗增大。
有鉴于此,本申请实施例提供一种芯片以解决上述缺陷。
请参阅图2,图2为本申请实施例提供的一种芯片200的结构示意图,如图2所示,芯片200包括PCIe接口210、ATU电路220和地址映射电路230,芯片200归属于PCIe设备,该PCIe设备和主机连接构成主机***。
ATU电路220,用于通过PCIe接口210接收第一访问请求,其中,该第一访问请求包括目标BAR空间的第一地址。
其中,该PCIe设备上电后,该PCIe设备被分配该PCIe设备的BAR空间基地址,以及作为该PCIe设备的总BAR空间的处理器域地址段;芯片200可以根据预设的配置项,将该总BAR空间划分为多个BAR空间,通过该多个BAR空间以及每个BAR空间对应的该PCIe设备的硬件资源对外提供服务。
其中,该PCIe设备的硬件资源为多种,每个BAR空间对应的硬件资源的种类为多种。
可以理解的是,目标BAR空间为该多个BAR空间中的任意一个,目标BAR空间对应的硬件资源可以被称为目标资源,该第一访问请求为主机访问目标资源的请求。
ATU电路220还用于根据该目标BAR空间的第一地址,获取目标连续地址空间的第二地址,其中该第二地址是连续地址。
其中,ATU电路220根据该第一地址,以及该第一地址和该第二地址的映射关系,获取第二地址。
具体地,芯片200可以在该PCIe设备上电后,根据该PCIe设备被分配的BAR空间基地址,以及向主机申请的该总BAR空间的大小,获取总BAR空间中的地址;再根据预设的配置项获取该多个BAR空间中每个BAR空间的地址。另一方面,芯片200可以给每个BAR空间提供对应的连续地址空间,并配置对应的BAR空间和连续地址空间之间的映射关系。
具体地,芯片200可以根据该对应的BAR空间和连续地址空间生成地址映射表,也可以配置ATU电路220中的ATU。
例如,芯片200可以将将目标BAR空间中的第一地址输入ATU电路220中的一组ATU的源地址寄存器中,将该目标连续地址空间中的第二地址输入该组ATU的目的地址寄存器中。
具体地,ATU电路220可以根据第一地址在源地址寄存器中的偏移量,获取该目的地址寄存器中偏移量相同的第二地址。
可以理解的是,上述映射关系可以由地址映射电路230进行配置,也可以由芯片的其他模块进行配置。进一步地,可以通过硬件进行配置,也可以通过软件进行配置。
地址映射电路230,用于根据该第二地址,获取芯片200的物理地址空间的第四地址,其中该第四地址为芯片200的物理地址空间中的所有地址。
其中,在该PCIe设备上电后,该PCIe设备被分配一段总线域地址,该段总线域地址寄存于芯片200的物理地址空间中,该段总线域地址,也即该第四地址,对应该PCIe设备的硬件资源;该第四地址包含第三地址,该第三地址为目标BAR空间对应的硬件资源的物理地址,该第三地址为不连续地址。
其中,地址映射电路230根据该第二地址获取该第四地址的原理与ATU电路220根据该第一地址获取第二地址的原理类似,此处不再赘述。
其中,地址映射电路230中可以部署ATU或用于地址映射的映射窗口寄存器,以进行该第二地址到该第四地址的地址转换。
由于该第二地址和该第四地址均为连续地址,因此,可以在该地址映射电路中部署ATU以进行从该第二地址到该第四地址的翻译。这样可以无需因为目的地址为不连续的第三地址而增加的ATU数量,也无需因为部署多个寄存器而增加芯片面积,从而能够减小芯片的面积,降低芯片的功耗。
需要说明的是,图2中的硬件资源为PCIe设备的硬件资源,该PCIe设备的硬件资源受到芯片200的管理。可以理解的是,该PCIe设备的硬件资源并非全部用于对外提供服务,其中一部分硬件资源可以用于支持自身运行所需或作其他用途。例如,该PCIe设备的硬件资源的地址空间为1至200,其中地址10至20,80至90对应的硬件资源不对外提供服务。
此时主机能够通过目标BAR空间和第一访问请求访问任一硬件资源,为了控制主机的访问行为,避免不同应用程序的交织访问引起芯片故障,在一种可能的实现中,本申请实施例提供的芯片200还包括地址鉴权电路240。
其中,来自主机的第一访问请求携带目标BAR空间的标识信息,该第一访问请求为该主机上的应用程序通过该目标BAR空间发送。地址鉴权电路240用于根据地址映射电路230得到的该第四地址和该目标BAR空间的标识信息鉴权该访问请求。可以理解的是,地址鉴权电路240通过判断第四地址对应的硬件资源是否归属于目标BAR空间,以验证发起该第一访问请求的应用程序是否具有访问该第四地址对应的硬件资源的权利。
地址鉴权电路240通过第四地址可以得到该第四地址对应的BAR空间的标识信息;再将第四地址对应的标识信息和目标BAR空间的标识信息进行比对,若一致,则鉴权通过,允许主机中发起该第一访问请求的应用程序对第四地址进行读写;若不一致,则拒绝或丢弃该第一访问请求。
可以理解的是,该第一访问请求为访问目标资源的请求,若该第一访问请求鉴权成功,则说明该第四地址为目标资源的物理地址,也即该第三地址。
在一种可能的实现中,为了进一步限制应用程序对PCIe设备的访问行为,本申请实施例提供的芯片200还包括资源访问鉴权电路260;资源访问鉴权电路260用于接收被访硬件资源访问该第四地址的第二访问请求,该被访硬件资源是该第三地址对应的硬件资源;该资源访问鉴权模块还用于根据该第三地址和该第四地址鉴权该第二访问请求。
其中,在第一访问请求鉴权成功后,资源访问鉴权电路260可以接收该第三地址对应的目标资源发起的该第二访问请求。
具体地,资源访问鉴权电路260可以获取该第三地址对应的标识信息和该第四地址对应的标识信息,并判断此二者是否一致;若一致,则同意该第二访问请求;若不一致,则终止该第二访问请求。
在一种可能的实现中,为了提高PCIe设备的硬件资源的资源利用率,本申请实施例提供的芯片200还包括资源配置电路250。资源配置电路250用于通过PCIe接口210接收该主机发送的资源分配请求,该资源分配请求包含目标BAR空间的资源配置信息;根据该资源配置信息将配置该第三地址。
其中,资源配置电路250可以根据实际功能需求配置对外提供功能服务的逻辑单元。具体地,资源配置电路250可以将能够满足实际功能需求的硬件资源集合作为该目标BAR空间对应的物理地址,与目标BAR空间相关联。
相较于传统的以固定硬件资源集合对外提供功能服务的方法,本申请实施例可以根据需求实时配置对外提供功能服务的逻辑单元,能够提高资源的利用率。
可以理解的是,资源配置电路250的功能也可以通过软件实现。
在一种可能的实现中,为了PCIe的硬件资源能够被准确的访问,降低非法访问和误访问的概率,资源配置电路250还用于根据该第三地址更新目标BAR空间对应的资源配置表。
其中,该资源配置表包含地址偏移量,该地址偏移量用于指示该第三地址对应的该第一地址。
可以理解的是,主机通过目标BAR空间的第一地址可以请求访问该PCIe设备的所有硬件资源,但若该第一访问请求中的第一地址与该第三地址不对应,则该第一访问请求将被拒绝,因此主机需要获取与该第三地址对应的该第一地址。
通过更新资源配置表的方式实时告知主机目标BAR空间当前被配置的硬件资源,使得在资源配置电路250的每一次动态分配后,主机都能够通过该第三地址对应的第一地址准确地访问目标BAR空间对应的硬件资源。相对于传统技术中需要重启以初始化芯片才能完成硬件资源的再分配过程,本申请实施例提供的芯片200的动态分配更便捷,无需重启芯片,也无需停止运行芯片上的已有业务。
本申请实施例中,通过以目标连续地址空间为ATU电路220的目的地址,并且在该地址映射电路230中部署ATU以进行从该第二地址到该第四地址的翻译,再通过地址鉴权电路240限制主机的访问行为,可以芯片的硬件资源能够被安全准确地访问,且无需因为目的地址为不连续的第三地址而增加的ATU数量,从而减小芯片的面积,降低芯片的功耗。
请参阅图3,图3为本申请实施例提供的另一芯片300的结构示意图,如图3所示,芯片300包括PCIe接口310、ATU电路320和地址映射电路330,芯片300归属于PCIe设备,该PCIe设备和主机连接构成主机***。
ATU电路320用于通过PCIe接口310接收第一访问请求,其中,第一访问请求包括目标BAR空间的第一地址。
ATU电路320还用于根据目标BAR空间的第一地址,获取目标连续地址空间的第二地址,其中第二地址是连续地址。
地址映射电路330用于通过多个映射窗口寄存器3301,根据第二地址,获取芯片300的物理地址空间中的第三地址,其中第三地址是不连续地址。
可以理解的是,ATU电路320的具体功能实现和图2所示实施例中的ATU电路220的具体功能实现类似,此处不再赘述。
具体地,配置该多个映射窗口寄存器3301,以及通过该多个映射窗口寄存器3301进行地址映射的实现方式与图2所示实施例中的配置ATU以及通过ATU进行地址映射的实现方式类似,该多个映射窗口寄存器相当于ATU电路中的一组ATU,此处不再赘述。
在一种可能的实现中,为了限制应用程序对PCIe设备的访问行为,本申请实施例提供的芯片300还包括资源访问鉴权电路350;资源访问鉴权电路350用于用于接收被访硬件资源访问该第四地址的第二访问请求,该被访硬件资源是该第三地址对应的硬件资源;该资源访问鉴权模块还用于根据该第三地址和该第四地址鉴权该第二访问请求。
在一种可能的实现中,为了提高PCIe设备的硬件资源的资源利用率,本申请实施例提供的芯片300还包括资源配置电路340。资源配置电路340用于接收该主机发送的资源分配请求,该资源分配请求包含目标BAR空间的资源配置信息;根据该资源配置信息配置该第三地址。可以理解的是,该部分电路的功能也可以通过软件实现。
本申请实施例中,通过将目标连续地址空间中的连续地址作为该ATU电路320的目标地址,以及通过地址映射电路330中的映射窗口寄存器3301根据该目标连续地址空间的第二地址获取该第三地址,以进行从目标连续地址空间到该芯片300的物理地址空间的地址翻译,可以减少ATU电路320中的ATU数量,一方面可以降低ATU电路320所在的PCIe功能模块电路的延迟,防止该PCIe功能模块电路的时序过长,导致无法满足芯片300的应用要求中的时序约束;另一方面,减少ATU电路320中的ATU数量可以降低芯片功耗。
在上述两种芯片的基础上,本申请实施例进一步提供了对应的两种计算机***。
请参阅图4,图4为本申请实施例提供的一种计算机***的结构示意图,该***中包括主机410和PCIe设备430,主机410和PCIe设备430通过PCIe总线420连接,PCIe设备430包括芯片431,主机410通过虚拟化PCIe设备430的PF得到VF。
其中,芯片管理软件411用于获取VM413中的应用程序4131的功能支持需求,并将该功能支持需求发送到资源管理模块412,并为VM413分配VF。
资源管理模块412用于管理芯片431所管理的硬件资源的虚拟化切分,具体用于根据上述功能支持需求计算得到VM413的资源需求信息;并将该资源需求信息与分配给VM413的VF相关联,通过PF驱动414驱动对应的PF向PCIe接口4310发送资源分配请求,该资源分配请求包含与该资源需求信息对应的资源配置信息和该VF的标识信息。
应用程序4131用于通过VF驱动4132打开对应的VF,并通过VF的BAR空间访问该VF的资源配置表;资源初始化模块41321用于根据该资源配置表初始化该VF,获取该VF被分配的硬件资源的信息。
可以理解的是资源初始化模块41321通过固定周期获取或触发式获取的方式,获取资源配置表中的信息,以实现应用程序4131对VF的准确访问。
其中,触发式获取可以是资源配置电路4314在更新资源配置表后,芯片431向对应的VF驱动发送通知消息,资源初始化模块41321被该通知消息触发获取资源配置表信息的操作。
应用程序4131还用于通过该VF的BAR空间访问芯片431管理的硬件资源。
具体地,资源配置表中可以记载该VF被分配的硬件资源相对于该PCIe设备的硬件资源的物理地址空间的地址偏移量,应用程序4131结合该地址偏移量和该PCIe设备的BAR空间的起始地址,得到对应的BAR空间地址。
在另一种可能的实现方式中,资源配置表中还可以记载该VF被分配的硬件资源相对于同类硬件资源的地址偏移量,应用程序4131结合该地址偏移量和该类硬件资源的起始空间得到对应的BAR空间地址。可以理解的是,同类硬件资源的BAR空间地址为连续地址。
例如,该PCIe设备的资源1有1024个寄存器用于存放数据,每个寄存器是32位。在SR-IOV互联场景下,每个VF的BAR空间的部分配置可以如下:
上表中的x,y,z分别代表映射区大小、源地址、目的地址的某个取值;
当该PCIe设备支持16个VF设备的时候,假设给VF0分配的资源是128个寄存器,这128个寄存器来自1024个寄存器中的第1至64个和第961至1024个。资源1对应的1024个寄存器的映射区间大小为4KB,该4KB大小的内存空间被映射到该PCIe设备的物理地址空间中。主机访问归属VF0的资源1的第1021个寄存器的时候,需要通过公式:
最小资源单位映射区间大小=映射区间大小/最小资源单位数量
第n个寄存器的BAR起始地址=资源N的BAR0的起始地址+(n-1)*最小资源单位映射区间大小
可以计算得到,每个寄存器对应的最小资源单位映射区间大小为4KB/1024=4Byte;得到该第1021个寄存器对应的BAR空间起始地址为第4080Byte。
获取目标资源对应的BAR空间的起始地址后,可以根据该起始地址和对应的地址偏移量得到目标资源对应的BAR空间地址,进而能够访问该目标资源。
应用程序4131访问VF的BAR空间的第一地址后,VF还用于处理该第一访问请求,并将携带前述第一地址的该第一访问请求发送至芯片431的PCIe接口4310。
SR-IOV模块415为主机410的处理器支持的软件模块。SR-IOV模块415用于将PCIe设备的PF虚拟化得到一个或多个对应的VF。
芯片431包括PCIe接口4310、ATU电路4311和地址映射电路4312。
可选的,芯片431还可以包括地址鉴权电路4313,资源配置电路4314以及资源访问鉴权电路4315中的一个或多个。
可以理解的是,芯片431的具体功能及有益效果均与如图2所示的芯片200类似,其中VF的BAR空间相当于图2相关说明中的目标BAR空间,具体可以参考芯片200相关部分的说明,此处不再赘述。
请参阅图5,图5为本申请实施例提供的另一计算机***的结构示意图,该***中包括主机510和PCIe设备530,主机510和PCIe设备530通过PCIe总线520连接,PCIe设备530包括芯片531,主机510通过虚拟化PCIe设备530的PF得到VF。
主机510可以包括芯片管理软件511,资源管理模块512,VM513,PF驱动514以及SR-IOV模块515。
VM513中运行有应用程序5131和VF驱动5132,VF驱动5132包括资源初始化模块51321。
其中,由于应用程序5131通过VF仅能访问该VF对应的硬件资源,资源配置电路5314无需再提供资源配置表,应用程序5131可以直接通过VF对应的BAR地址访问VF对应的硬件资源。也就是说,由芯片531根据应用程序5131的功能支持需求完成硬件资源的配置后,应用程序5131即可通过该VF的BAR空间的任一地址使用对应的硬件资源。
可以理解的是,主机510及其中模块的具体功能及有益效果均与如图4所示的主机410类似,具体可以参考主机410相关部分的说明,此处不再赘述。
芯片531包括ATU电路5311和地址映射电路5312。地址映射电路5312中包括多个映射窗口寄存器53121。
可选的,芯片531还可以包括资源配置电路5314和资源访问鉴权电路5315中的一个或两个。
可以理解的是,芯片531及其中模块的具体功能及有益效果均与如图3所示的芯片300类似,其中VF的BAR空间相当于图3相关说明中的BAR地址子空间,具体可以参考芯片300相关部分的说明,此处不再赘述。
在图4所示实施例提供的计算机***的基础上,本申请实施例还提供一种VF资源配置流程和VF资源初始化流程。具体请参阅图6,图6为VF资源配置流程610和VF资源初始化流程620中的数据流向示意图,该图中的实线框用于表示软件模块或数据文件。
其中,VF资源配置流程610具体可以如下:
芯片管理软件611获取应用程序621的功能支持需求,并将该功能支持需求发送给资源管理模块612;资源管理模块612根据该功能支持需求计算满足功能需求所需的资源需求信息,并向资源配置模块613发送包含该与该资源需求信息对应的资源配置信息的资源分配请求;资源配置模块613根据该资源分配请求中的资源配置信息为VF分配对应的硬件资源,以及更新资源配置表630。
其中,VF资源初始化流程620具体可以如下:
第一种情况,资源配置表630的初始状态可以包含预设的资源配置信息,在PCIe设备上电后,由资源初始化模块622获取资源配置表630中的该资源配置信息,并根据该预设的资源配置信息进行VF资源的初始化。
第二种情况,资源配置表630的初始状态可以为空表,芯片管理软件611第一次获取到应用程序621的功能支持需求时,启动VF设备资源配置流程610和VF设备资源初始化流程630,资源初始化模块622根据资源配置模块613写入资源配置表630中的资源配置信息进行VF资源的初始化。
在完成以上流程后,每次资源配置模块更新资源配置表630后,资源初始化模块622从对应VF的资源配置表630中获取最新的资源配置信息,以使得应用程序621能够准确地访问PCIe设备的硬件资源。
在了解了本申请实施例提供的上述芯片、计算机***和VF配置流程后,下面将对本申请实施例提供的芯片控制方法进行说明。
本申请实施例还提供了一种芯片控制方法。可以参阅图7,图7为一个实施例中芯片控制方法的流程示意图,该芯片控制方法可以应用于芯片,该芯片包括PCIe接口、ATU电路和地址映射电路,该芯片归属于PCIe设备。如图7所示,该芯片控制方法可以包括步骤701至703。
701、接收第一访问请求,该第一访问请求包括第一地址。
其中,该ATU电路通过该PCIe接口接收该第一访问请求,该第一地址为目标BAR空间的第一地址。
其中,目标BAR空间为芯片提供的多个BAR空间中的任意一个,每个BAR空间用于为一个逻辑单元提供对外访问空间,以使得通过一个BAR空间的地址可以访问对应逻辑单元的硬件资源。
其中,芯片可以切分该PCIe设备的硬件资源,得到一个或多个对外提供服务的逻辑单元。例如,该PCIe设备的硬件资源有h种,每种m份,这里的m份是指该种硬件资源可以同时支持m个独立并行且隔离使用的功能实例;芯片可以以每种资源各n份的硬件资源集合构建单个逻辑单元,得到m/n个逻辑单元。
芯片可以以逻辑单元为单位,关联每个逻辑单元对应的BAR空间和连续地址空间,以及建立每个逻辑单元对应的BAR空间和连续地址空间的映射关系、每个连续地址空间和芯片的物理地址空间中的部分地址或全部地址的映射关系。可以理解的是,该建立映射关系的工作可以由地址映射电路完成,也可以由芯片的其他模块电路或软件模块完成。
其中,芯片的物理地址空间为连续的地址空间,其中寄存该PCIe设备被分配的总线域地址段;该目标连续地址空间为该芯片提供的一个或多个连续地址空间中的一个,该目标连续地址空间与该目标BAR空间对应。
其中,芯片可以在该PCIe设备上电后,获取对应的地址段以建立上述映射关系,具体实现方式与图2所示实施例中地址映射电路230获取对应地址段并建立映射关系的实现方式类似,此处不再赘述。
在一种可能的实现中,芯片还包括资源配置电路;在该ATU电路通过PCIe接口接收第一访问请求之前,该方法还包括:该资源配置电路可以接收该资源分配请求,该资源分配请求包含目标BAR空间的资源配置信息;该资源配置电路根据该资源配置信息为配置第三地址。
其中,芯片可以根据目标BAR空间的实际功能需求调整或重新分配对应的硬件资源。具体地,调整或重新分配后的硬件资源为目标BAR空间对应的硬件资源,也可以被称为目标资源;该目标资源的物理地址为该第三地址。芯片可以将该第三地址与目标BAR空间相关联,以完成该第三地址的配置。
在另一种可能的实现中,该芯片可以根据该PCIe设备的预设配置,配置第三地址。
其中,该芯片可以在该PCIe设备上电后进行资源分配。
在一种可能的实现中,在该资源配置电路根据该资源配置信息为配置第三地址之后,该方法还包括:该资源配置电路根据该第三地址更新该目标BAR空间的资源配置表。
其中,该资源配置表包含地址偏移量,该地址偏移量用于指示该第三地址对应的第一地址。
其中,地址偏移量可以根据前述映射关系得到。
可以理解的是,每当芯片根据资源分配请求进行一次硬件资源调整或再分配后,将以被动态分配的BAR空间作为目标BAR空间更新对应的资源配置表。
702、根据第一地址,获取第二地址。
其中,当接收到该访问请求后,ATU电路可以根据该第一地址,以及目标BAR空间和目标连续地址空间的映射关系,获取目标连续地址空间中的第二地址。
703、根据第二地址,至少获取第三地址。
同理,地址映射电路可以根据该第二地址,以及目标连续地址空间和芯片的物理地址空间的映射关系,至少获取该第三地址。
在一种可能的实现中,芯片建立每个连续地址空间均与芯片的物理地址空间的映射关系,地址映射电路可以根据该第二地址和该映射关系,获取芯片的物理空间的第四地址。
其中,地址映射电路可以包括ATU,通过ATU进行从该第二地址到该第四地址的地址翻译工作以获取该第四地址。由于第二地址和第四地址都是连续地址,通过ATU进行地址翻译,可以减少芯片中ATU或用于地址翻译的寄存器的数量,从而减小芯片面积,降低芯片功耗。
在该种可能实现中,芯片还包括地址鉴权电路,第一访问请求中还包括目标BAR空间的标识信息;在地址映射电路获取该第四地址后,地址鉴权电路根据该第四地址和目标BAR空间的标识信息鉴权该第一访问请求。
可以理解的是,通过目标BAR空间仅有访问目标资源的权利,因此,当该第四地址对应的硬件资源不为目标资源时,第一访问请求的发起者没有权利访问该第四地址。
具体地,可以通过硬件资源的物理地址和对应BAR空间的标识信息的关联关系进行鉴权。地址鉴权电路根据该第四地址可以得到该第四地址归属的BAR空间的标识信息;再比对该第四地址对应的标识信息和目标BAR空间的标识信息,若一致则鉴权通过,允许该第一访问请求的发起者对该第四地址的资源进行读写;若不一致则鉴权失败,拒绝或丢弃该第一访问请求。
在该种可能实现中,目标BAR空间的资源配置表可以提供该第三地址对应的第一地址,第一访问请求的发起者可以根据该资源配置表发起第一访问请求,减少非法访问或错误访问。
在另一种可能的实现中,地址映射电路还包括多个映射窗口寄存器;芯片建立目标连续地址空间均与目标资源的物理地址空间的映射关系,也即第二地址和第三地址的映射关系;该多个映射窗口寄存器根据该第二地址,获取该第三地址。
在以上两种可能实现的基础上,芯片还包括资源访问鉴权电路;在该地址映射电路根据第二地址,至少获取第三地址后,该方法还包括:资源访问鉴权电路接收被访硬件资源访问第四地址的第二访问请求,该被访硬件资源是该第三地址对应的硬件资源;根据该第三地址和该第四地址鉴权该第二访问请求。
具体地,该第三地址对应的BAR空间标识信息为目标BAR空间的标识信息;芯片可以获取判断该第四地址对应的BAR空间的标识信息与目标BAR空间的标识信息是否一致;若一致,则鉴权成功,允许该第三地址对应的硬件资源对该第四地址进行读写;若不一致,则拒绝或丢弃该第二访问请求。
本申请实施例中,通过以连续地址空间作为该ATU电路的目的地址,以及通过地址映射电路进行从目标连续地址空间到该芯片的物理地址空间的地址翻译,可以减少ATU电路中的ATU数量,一方面可以降低ATU电路所在的PCIe功能模块电路的延迟,防止该PCIe功能模块电路的时序过长,导致无法满足芯片应用要求中的时序约束;另一方面,减少ATU电路中的ATU数量可以降低芯片功耗。
本申请实施例还提供了另一芯片控制方法。可以参阅图8,图8为一个实施例中芯片控制方法的流程示意图,该芯片控制方法可以应用于计算机***,该计算机***包括主机和PCIe设备,该PCIe设备的芯片包括PCIe接口、ATU电路和地址映射电路;该主机通过虚拟化该PCIe设备的PF得到一个或多个VF。如图9所示,该芯片控制方法可以包括步骤801至804。
801、主机向PCIe接口发送第一访问请求。
在该PCIe设备上电后,主机根据SR-IOV技术虚拟化该PCIe设备的PF得到一个或多个VF,并为该PCIe设备分配对应的BAR地址段以及总线域地址段。
其中,该第一访问请求包括目标VF的BAR空间的第一地址,该目标VF为该一个或多个VF中的任意一个。
其中,主机可以根据VMM技术得到VM,并根据VM的功能需求分配VF给VM。此时,被分配给VM的VF可以被称为目标VF。
在获取目标VF后,主机根据VM的功能支持需求计算得到目标VF的资源配置信息,并向芯片发送包含该资源配置信息的资源分配请求。
资源配置电路可以根据该资源分配请求中的资源配置信息,为目标VF分配相应的该PCIe设备的硬件资源,这些被分配给目标VF分硬件资源可以被称为目标资源,该目标资源的物理地址为第三地址。
其中,芯片将该第三地址与目标VF的功能ID相关联,以完成资源分配。
具体地,该目标VF的标识信息可以为该目标VF的功能ID(function ID)。功能ID可以是一个64位或者48位总线地址中的某些高位地址,例如在64位地址里,使用高16位用于描述功能ID。如果功能ID为0,那么低48位为属于功能ID为0的VF的地址;如果功能ID为1,那么低48位为属于功能ID为1的VF的地址。
在为目标VF分配目标资源后,资源配置电路可以更新目标VF的资源配置表。具体地,将第三地址在芯片的物理地址空间中的地址偏移量写入该资源配置表中,以使得主机能够准确地访问目标资源。
可以理解的是,目第三地址在芯片的物理地址空间中的地址偏移量,与对应的第一地址在目标VF的BAR空间中的地址偏移量具有对应关系。具体地,该对应关系与映射粒度相关。
可选的,从目标连续地址空间到芯片的物理地址空间的映射粒度可以为4KB、2MB、1GB或2GB。
其中,该资源配置表位于目标VF的BAR空间中,主机通过VF驱动打开目标VF的BAR空间,并访问其中的资源配置表,获取第三地址对应的地址偏移量。
其中,主机根据获取的目标资源对应的地址偏移量和PCIe设备的BAR基地址,得到该第一地址。
可以理解的是,主机也可以根据PCIe设备的预设配置项对发起该第一访问请求,对应地,芯片中不再采用资源配置电路进行动态分配,而是根据该预设配置项在上电后进行静态分配。
该PCIe设备在被分配上述BAR地址段以及总线域地址段之后,芯片可以建立如图9或图11所示的地址映射关系。
请参阅图9,芯片为每个VF提供独立的BAR空间和连续地址空间,芯片建立每个VF的BAR空间和对应连续地址空间的映射关系;可以理解的是,在将某一VF看做目标VF时,其对应的连续地址空间即为目标连续地址空间。另外,芯片还建立了每个VF的连续地址空间和该芯片的物理地址空间的映射关系,芯片的物理地址空间对应该PCIe设备的所有硬件资源。
在图9所示的映射关系的基础上,可以参阅图10,图10为基于图9所示的映射关系,主机访问目标资源的过程示意图。
主机中的VM被分配目标VF后,VM的应用程序向目标VF的BAR空间的第一地址发起第一访问请求,由目标VF处理该第一访问请求;目标VF将该第一访问请求转发至该芯片的PCIe接口,由芯片上的ATU电路通过该PCIe接口接收该第一访问请求,并执行步骤803中的根据第一地址获取第二地址的动作;得到第二地址后,由地址映射电路执行步骤804中的根据第二地址,至少获取第三地址的动作,在图10所示的实现中,地址映射电路根据第二地址可以获取芯片的物理地址空间的任一地址,也即第四地址。
在该种实现中,芯片还需要通过地址鉴权电路对访问请求进行鉴权,鉴权通过后,主机才能对目标VF对应的目标资源的物理地址进行读写。
请参阅图11,芯片建立每个VF的BAR空间和对应连续地址空间的映射关系,芯片还建立了每个VF的连续地址空间和该对应硬件资源的物理地址空间的映射关系。
802、接收第一访问请求。
其中,芯片的ATU电路通过PCIe接口接收该第一访问请求。
803、根据第一地址,获取第二地址。
804、根据第二地址,至少获取第三地址。
本实施例中的步骤803至804与前述图7所示实施例中的步骤702至703类似,目标VF的BAR空间相当于图7相关说明中的目标BAR空间,具体此处不再赘述。
本实施例的有益效果与图7所示的芯片控制方法的有益效果类似,可以参阅图7所示的芯片控制方法的相关部分,此处不再赘述。
本申请实施例还提供一种PCIe设备,该PCIe设备包括如上述图2或图3部分实施例所描述的芯片。
其中,该PCIe设备可以是PCIe卡,具体可以是网卡、显卡或人工智能(artificialintelligence,AI)加速卡等等有PCIe接口的设备。
本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质包括指令,当该指令在计算机上运行时,使得计算机执行如上述图7或图8部分实施例所描述的的方法。
本申请实施例还提供一种计算机程序产品,包括计算机可读指令,当该计算机可读指令在计算机设备上运行时,使得该计算机设备执行如上述图7或图8部分实施例所描述的的方法。
以上对本申请实施例进行了详细介绍,本申请实施例方法中的步骤可以根据实际需要进行顺序调度、合并或删减;本申请实施例装置中的模块可以根据实际需要进行划分、合并或删减。
应理解,说明书通篇中提到的“一个实施例”或“一实施例”意味着与实施例有关的特定特征、结构或特性包括在本申请的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
应理解,在本申请实施例中,“与A相应的B”表示B与A相关联,根据A可以确定B。但还应理解,根据A确定B并不意味着仅仅根据A确定B,还可以根据A和/或其它信息确定B。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的***、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请实施例所提供的几个实施例中,应该理解到,所揭露的***、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请实施例各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请实施例各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
Claims (27)
1.一种芯片,其特征在于,所述芯片包括:***设备高速互联PCIe接口、地址翻译单元ATU电路和地址映射电路;
所述ATU电路,用于通过所述PCIe接口接收第一访问请求,其中,所述第一访问请求包括目标基地址寄存器BAR空间的第一地址;
所述ATU电路,还用于根据所述目标BAR空间的第一地址,获取目标连续地址空间的第二地址,其中所述第二地址是连续地址;
所述地址映射电路,用于根据所述第二地址,至少获取所述芯片的物理地址空间中的第三地址,其中所述第三地址是不连续地址。
2.根据权利要求1所述的芯片,其特征在于,所述第一访问请求还包括所述目标BAR空间的标识信息;所述地址映射电路具体用于根据所述第二地址,获取所述芯片的物理地址空间的第四地址,其中所述第四地址是包括所述第三地址的连续地址;
所述芯片还包括:
地址鉴权电路,用于根据所述第四地址和所述标识信息鉴权所述第一访问请求。
3.根据权利要求1所述的芯片,其特征在于,所述地址映射电路具体用于通过所述地址映射电路中的多个映射窗口寄存器,根据所述第二地址,获取所述第三地址。
4.根据权利要求1至3中任一项所述的芯片,其特征在于,所述芯片还包括:
资源配置电路,用于通过所述PCIe接口接收资源分配请求,所述资源分配请求包含所述目标BAR空间的资源配置信息;
所述资源配置电路还用于根据所述资源配置信息配置所述第三地址。
5.根据权利要求4所述的芯片,其特征在于,所述资源配置电路还用于根据所述第三地址更新与所述目标BAR空间对应的资源配置表;其中,所述资源配置表包含地址偏移量,所述地址偏移量用于指示所述第三地址对应的所述第一地址。
6.根据权利要求1至5中任一项所述的芯片,其特征在于,所述芯片还包括:
资源访问鉴权模块,用于接收被访硬件资源访问所述芯片的物理地址空间的第四地址的第二访问请求,所述被访硬件资源是所述第三地址对应的硬件资源;
所述资源访问鉴权模块还用于根据所述第三地址和所述第四地址鉴权所述第二访问请求。
7.一种PCIe设备,其特征在于,所述PCIe设备包括权利要求1至6中任一项所述的芯片。
8.一种计算机***,其特征在于,包括主机和PCIe设备;所述PCIe设备的芯片包括PCIe接口、ATU电路和地址映射电路;所述主机通过虚拟化所述PCIe设备的物理功能PF得到一个或多个虚拟功能VF;
所述主机用于向所述PCIe接口发送第一访问请求,所述第一访问请求包括目标VF的BAR空间的第一地址;
所述ATU电路,用于通过所述PCIe接口接收所述第一访问请求;
所述ATU电路还用于根据所述第一地址,获取目标连续地址空间的第二地址,其中所述第二地址是连续地址;
所述地址映射电路,用于根据所述第二地址,至少获取所述芯片的物理地址空间中的第三地址,其中所述第三地址是不连续地址。
9.根据权利要求8所述的***,其特征在于,所述第一访问请求还包括所述目标VF的标识信息;所述地址映射电路具体用于根据所述第二地址,获取所述芯片的物理地址空间的第四地址,其中所述第四地址是包括所述第三地址的连续地址;
所述芯片还包括:
地址鉴权电路,用于根据所述第四地址和所述标识信息鉴权所述第一访问请求。
10.根据权利要求8所述的***,其特征在于,所述地址映射电路具体用于通过所述地址映射电路中的多个映射窗口寄存器,根据所述第二地址,获取所述第三地址。
11.根据权利要求8至10中任一项所述的***,其特征在于,所述芯片还包括资源配置电路;
所述主机还用于向所述PCIe接口发送资源分配请求,所述资源分配请求包含所述目标VF的资源配置信息;
所述资源配置电路用于通过所述PCIe接口接收所述资源分配请求;
所述资源配置电路还用于根据所述资源配置信息配置所述第三地址。
12.根据权利要求11所述的***,其特征在于,所述资源配置电路还用于根据所述第三地址更新所述目标VF的资源配置表;其中,所述资源配置表包含地址偏移量,所述地址偏移量用于指示所述第三地址对应的所述第一地址;
所述主机还用于获取所述资源配置表;
所述主机具体用于根据所述地址偏移量向所述PCIe接口发送所述第一访问请求。
13.根据权利要求8至12中任一项所述的***,其特征在于,所述芯片还包括:
资源访问鉴权模块,用于接收被访硬件资源访问所述芯片的物理地址空间的第四地址的第二访问请求,所述被访硬件资源是所述第三地址对应的硬件资源;
所述资源访问鉴权模块还用于根据所述第三地址和所述第四地址鉴权所述第二访问请求。
14.一种芯片控制方法,其特征在于,所述方法应用于芯片,所述芯片包括PCIe接口、ATU电路和地址映射电路;所述方法包括:
所述ATU电路通过所述PCIe接口接收第一访问请求,其中,所述第一访问请求包括目标BAR空间的第一地址;
所述ATU电路根据所述目标BAR空间的第一地址,获取目标连续地址空间的第二地址,其中所述第二地址是连续地址;
所述地址映射电路根据所述第二地址,至少获取所述芯片的物理地址空间中的第三地址,其中所述第三地址是不连续地址。
15.根据权利要求14所述的方法,其特征在于,所述芯片还包括地址鉴权电路,所述第一访问请求还包括所述目标BAR空间的标识信息;所述地址映射电路根据所述第二地址,至少获取所述芯片的物理地址空间中的第三地址,包括:
所述地址映射电路根据所述第二地址,获取所述芯片的物理地址空间的第四地址,其中所述第四地址是包括所述第三地址的连续地址;
在获取所述芯片的物理地址空间的第四地址之后,所述方法还包括:
所述地址鉴权电路根据所述第四地址和所述标识信息鉴权所述第一访问请求。
16.根据权利要求14所述的方法,其特征在于,所述地址映射电路根据所述第二地址,至少获取所述芯片的物理地址空间中的第三地址,包括:
所述地址映射电路中的多个映射窗口寄存器根据所述第二地址,获取所述第三地址。
17.根据权利要求14至16中任一项所述的方法,其特征在于,所述芯片还包括资源配置电路;在所述ATU电路通过所述PCIe接口接收第一访问请求之前,所述方法还包括:
所述资源配置电路通过所述PCIe接口接收资源分配请求,所述资源分配请求包含所述目标BAR空间的资源配置信息;
所述资源配置电路根据所述资源配置信息配置所述第三地址。
18.根据权利要求17所述的方法,其特征在于,在所述资源配置电路根据所述资源配置信息配置所述第三地址之后,所述方法还包括:
所述资源配置电路根据所述第三地址更新与所述目标BAR空间对应的资源配置表;其中,所述资源配置表包含地址偏移量,所述地址偏移量用于指示所述第三地址对应的所述第一地址。
19.根据权利要求14至18中任一项所述的方法,其特征在于,所述芯片还包括资源访问鉴权模块;在所述地址映射电路根据所述第二地址,至少获取所述芯片的物理地址空间中的第三地址之后,所述方法还包括:
所述资源访问鉴权模块接收被访硬件资源访问所述芯片的物理地址空间的第四地址的第二访问请求,所述被访硬件资源是所述第三地址对应的硬件资源;
所述资源访问鉴权模块根据所述第三地址和所述第四地址鉴权所述第二访问请求。
20.一种芯片控制方法,其特征在于,所述方法应用于计算机***,该***包括主机和PCIe设备;所述PCIe设备的芯片包括PCIe接口、ATU电路和地址映射电路;所述主机通过虚拟化所述PCIe设备的物理功能PF得到一个或多个虚拟功能VF;所述方法包括:
所述主机向所述PCIe接口发送第一访问请求,所述第一访问请求包括目标VF的BAR空间的第一地址;
所述ATU电路通过所述PCIe接口接收所述第一访问请求;
所述ATU电路根据所述第一地址,获取目标连续地址空间的第二地址,其中所述第二地址是连续地址;
所述地址映射电路根据所述第二地址,至少获取所述芯片的物理地址空间中的第三地址,其中所述第三地址是不连续地址。
21.根据权利要求20所述的方法,其特征在于,所述芯片还包括地址鉴权电路;所述第一访问请求还包括所述目标VF的标识信息;所述地址映射电路根据所述第二地址,至少获取所述芯片的物理地址空间中的第三地址,包括:
所述地址映射电路根据所述第二地址,获取所述芯片的物理地址空间的第四地址,其中所述第四地址是包括所述第三地址的连续地址;
在所述获取所述芯片的物理地址空间的第四地址之后,所述方法还包括:
所述地址鉴权电路根据所述第四地址和所述标识信息鉴权所述第一访问请求。
22.根据权利要求20所述的方法,其特征在于,所述地址映射电路根据所述第二地址,至少获取所述芯片的物理地址空间中的第三地址,包括:
所述地址映射电路中的多个映射窗口寄存器根据所述第二地址,获取所述第三地址。
23.根据权利要求20至22中任一项所述的方法,其特征在于,所述芯片还包括资源配置电路;在所述主机向所述ATU电路发送第一访问请求之前,所述方法还包括:
所述主机向所述PCIe接口发送资源分配请求,所述资源分配请求包含所述目标VF的资源配置信息;
所述资源配置电路通过所述PCIe接口接收所述资源分配请求;
所述资源配置电路根据所述资源配置信息配置所述第三地址。
24.根据权利要求23所述的方法,其特征在于,在所述资源配置电路根据所述资源配置信息配置所述第三地址之后,所述方法还包括:
所述资源配置电路根据所述第三地址更新所述目标VF的资源配置表;其中,所述资源配置表包含地址偏移量,所述地址偏移量用于指示所述第三地址对应的所述第一地址;
所述主机获取所述资源配置表;
所述主机向所述PCIe接口发送第一访问请求,包括:
所述主机根据所述地址偏移量向所述PCIe接口发送所述第一访问请求。
25.根据权利要求20至24中任一项所述的方法,其特征在于,所述芯片还包括资源访问鉴权模块;在所述地址映射电路根据所述第二地址,至少获取所述芯片的物理地址空间中的第三地址之后,所述方法还包括:
所述资源访问鉴权模块接收被访硬件资源访问所述芯片的物理地址空间的第四地址的第二访问请求,所述被访硬件资源是所述第三地址对应的硬件资源;
所述资源访问鉴权模块根据所述第三地址和所述第四地址鉴权所述第二访问请求。
26.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括指令,当所述指令在计算机上运行时,使得计算机执行如权利要求14至25中任一所述的方法。
27.一种计算机程序产品,其特征在于,包括计算机可读指令,当所述计算机可读指令在计算机设备上运行时,使得所述计算机设备执行如权利要求14至25中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210675596.XA CN117271105A (zh) | 2022-06-15 | 2022-06-15 | 芯片、芯片控制方法及相关装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210675596.XA CN117271105A (zh) | 2022-06-15 | 2022-06-15 | 芯片、芯片控制方法及相关装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117271105A true CN117271105A (zh) | 2023-12-22 |
Family
ID=89218340
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210675596.XA Pending CN117271105A (zh) | 2022-06-15 | 2022-06-15 | 芯片、芯片控制方法及相关装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117271105A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117707709A (zh) * | 2024-02-05 | 2024-03-15 | 珠海星云智联科技有限公司 | Sr-iov配置使能控制方法及相关装置 |
-
2022
- 2022-06-15 CN CN202210675596.XA patent/CN117271105A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117707709A (zh) * | 2024-02-05 | 2024-03-15 | 珠海星云智联科技有限公司 | Sr-iov配置使能控制方法及相关装置 |
CN117707709B (zh) * | 2024-02-05 | 2024-05-17 | 珠海星云智联科技有限公司 | Sr-iov配置使能控制方法及相关装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3206124B1 (en) | Method, apparatus and system for accessing storage device | |
CN107015845B (zh) | Gpu虚拟化 | |
US9734096B2 (en) | Method and system for single root input/output virtualization virtual functions sharing on multi-hosts | |
WO2017024783A1 (zh) | 一种虚拟化方法、装置和*** | |
US7464191B2 (en) | System and method for host initialization for an adapter that supports virtualization | |
US20200409603A1 (en) | Data accessing method and apparatus, and medium | |
WO2018041075A9 (zh) | 一种应用于计算机的资源访问方法和计算机 | |
WO2016119468A1 (zh) | 虚拟机内存管理方法、物理主机、pcie设备及其配置方法以及迁移管理设备 | |
US11023397B2 (en) | System and method for monitoring per virtual machine I/O | |
US20120284437A1 (en) | Pci express sr-iov/mr-iov virtual function clusters | |
US10140214B2 (en) | Hypervisor translation bypass by host IOMMU with virtual machine migration support | |
CN113312140B (zh) | 用于虚拟可信平台模块的***、存储介质和方法 | |
US11194735B2 (en) | Technologies for flexible virtual function queue assignment | |
US10713081B2 (en) | Secure and efficient memory sharing for guests | |
US10671419B2 (en) | Multiple input-output memory management units with fine grained device scopes for virtual machines | |
US10331591B2 (en) | Logical-to-physical block mapping inside the disk controller: accessing data objects without operating system intervention | |
CN110058946B (zh) | 设备虚拟化方法、装置、设备及存储介质 | |
US10013199B2 (en) | Translation bypass by host IOMMU for systems with virtual IOMMU | |
WO2023221847A1 (zh) | 基于虚拟机设备直通的数据访问方法、设备以及*** | |
CN117271105A (zh) | 芯片、芯片控制方法及相关装置 | |
US11150928B2 (en) | Hypervisor translation bypass | |
US10185679B2 (en) | Multi-queue device assignment to virtual machine groups | |
CN116737322A (zh) | 虚拟机同时支持PCIe虚拟设备和物理设备的方法 | |
CN111666579B (zh) | 计算机设备及其访问控制方法和计算机可读介质 | |
US20160026567A1 (en) | Direct memory access method, system and host module for virtual machine |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |