CN106095563B - 灵活的物理功能和虚拟功能映射 - Google Patents
灵活的物理功能和虚拟功能映射 Download PDFInfo
- Publication number
- CN106095563B CN106095563B CN201610264530.6A CN201610264530A CN106095563B CN 106095563 B CN106095563 B CN 106095563B CN 201610264530 A CN201610264530 A CN 201610264530A CN 106095563 B CN106095563 B CN 106095563B
- Authority
- CN
- China
- Prior art keywords
- function
- virtual
- physical
- functions
- mapping
- 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.)
- Active
Links
Images
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/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7867—Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7867—Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
- G06F15/7885—Runtime interface, e.g. data exchange, runtime control
- G06F15/7889—Reconfigurable logic implemented as a co-processor
-
- 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/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
-
- 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
-
- 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/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/4557—Distribution of virtual machine instances; Migration and load balancing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Stored Programmes (AREA)
- Logic Circuits (AREA)
- Advance Control (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
本发明公开了灵活的物理功能和虚拟功能映射。技术和机构提供了在包括虚拟机的环境中用于物理功能和虚拟功能之间的灵活映射。
Description
技术领域
本公开通常涉及集成电路。更具体地,本公开涉及在物理功能和虚拟功能之间的灵活映射。
背景技术
网络功能虚拟化(NFV)允许包括虚拟化功能的平台。在一些NFV平台中,处理器可以与提供附加功能的协处理器加速电路连接(interface)。处理器可以运行多个虚拟机(VM),每个虚拟机通过使用物理功能(PF)和虚拟功能的映射访问在协处理器加速电路中的附加功能。在PF和VF之间的映射可允许单个协处理器加速电路被视为可用于VM的多个资源。
在一些装置中,诸如为协处理器加速提供附加功能的可编程装置,该功能可以被改变。因此,设计者可希望在PF和VF之间更灵活的映射。
发明内容
本文描述的主题提供了在包括虚拟机的环境中物理功能和虚拟功能之间的灵活映射。
物理功能(PF)可为特定功能提供接口。虚拟功能(VF)可为虚拟机(VM)提供接口以通过将VF映射到PF而访问功能。PF到VF的映射可以是灵活的以允许特定场景实施更好的资源利用。
在一些实施方式中,用于在物理功能和虚拟功能之间映射的方法包括:在虚拟化管理单元处接收指示虚拟机被提供对在功能块中实施的功能的访问的数据;以及通过虚拟化管理单元建立在虚拟机和功能块之间的映射以提供虚拟机对在功能块中实施的功能的访问,该映射指示每个虚拟机与对应的虚拟功能相关联,每个虚拟功能与一个或多个物理功能相关联,并且一个或多个物理功能中的每个与一个或多个功能块相关联,其中该映射基于虚拟机的特性。
在一些实施方式中,一个或多个物理功能包括第一物理功能和第二物理功能,所述第一物理功能被映射到第一功能块,所述第二物理功能被映射到第一功能块和第二功能块。
在一些实施方式中,第一功能块提供第一功能,并且第二功能块提供第二功能。
在一些实施方式中,所述方法包括:重新配置第二功能块以提供第三功能;并且基于第二功能块的重新配置更新所述映射以提供第三功能。
在一些实施方式中,所述映射包括修改与第一虚拟功能相关联的虚拟机的映射,使得所述虚拟机与第二虚拟功能相关联。
在一些实施方式中,更新映射包括修改与第一物理功能相关联的第一虚拟功能的映射,使得第一虚拟功能与第二物理功能相关联。
在一些实施方式中,更新映射包括修改与第一功能块相关联的第一物理功能的映射,使得第一物理功能与第二功能块相关联。
在一些实施方式中,虚拟机的特性包括客户标识符。
在一些实施方式中,与第一客户标识符相关联的虚拟机被映射到第一组虚拟功能,所述第一组虚拟功能被映射到第一物理功能,并且与第二客户标识符相关联的虚拟机被映射到第二组虚拟功能,所述第二组虚拟功能被映射到第二物理功能。
在一些实施方式中,第一物理功能与第一优先级相关联,第二物理功能与第二优先级相关联,第一优先级是比第二优先级高的优先级。
在一些实施方式中,虚拟化管理单元通过协处理器电路来实施,并且虚拟机通过处理器电路来实施。
在一些实施方式中,虚拟化管理电路接收指示虚拟机被提供对在功能块中实施的功能的访问的数据;并且产生在虚拟机和功能块之间的映射以提供虚拟机对在功能块中实施的功能的访问,该映射指示每个虚拟机与对应的虚拟功能相关联,每个虚拟功能与一个或多个物理功能相关联,并且一个或多个物理功能中的每个与一个或多个功能块相关联,其中所述映射基于虚拟机的特性。
在一些实施方式中,一个或多个物理功能包括第一物理功能和第二物理功能,所述第一物理功能被映射到第一功能块,所述第二物理功能被映射到第一功能块和第二功能块。
在一些实施方式中,第一功能块提供第一功能,并且第二功能块提供第二功能。
在一些实施方式中,虚拟化管理电路基于第二功能块的重新配置而更新映射。
在一些实施方式中,虚拟机的特性包括客户标识符。
在一些实施方式中,与第一客户标识符相关联的虚拟机被映射到第一组虚拟功能,第一组虚拟功能被映射到第一物理功能,并且与第二客户标识符相关联的虚拟机被映射到第二组虚拟功能,第二组虚拟功能被映射到第二物理功能。
在一些实施方式中,第一物理功能与第一优先级相关联,第二物理功能与第二优先级相关联,第一优先级是比第二优先级更高的优先级。
在一些实施方式中,一种系统包括:实施虚拟机的处理器电路;以及协处理器电路,其包括虚拟化管理电路和功能块,所述虚拟化管理电路接收指示由处理器实施的虚拟机被提供对在功能块中实施的功能的访问的数据,并且所述虚拟化管理电路产生在虚拟机和功能块之间的映射以提供虚拟机对在功能块中实施的功能的访问,该映射指示每个虚拟机与对应的虚拟功能相关联,每个虚拟功能与一个或多个物理功能相关联,并且一个或多个物理功能中的每个与一个或多个功能块相关联,其中所述映射基于虚拟机的特性。
在一些实施方式中,一个或多个物理功能包括第一物理功能和第二物理功能,所述第一物理功能被映射到第一功能块,所述第二物理功能被映射到第一功能块和第二功能块。
在一些实施方式中,第一功能块提供第一功能,并且第二功能块提供第二功能。
在一些实施方式中,虚拟化管理电路基于第二功能块的重新配置而更新映射。
在一些实施方式中,虚拟机的特性包括客户标识符。
在一些实施方式中,与第一客户标识符相关联的虚拟机被映射到第一组虚拟功能,第一组虚拟功能被映射到第一物理功能,并且与第二客户标识符相关联的虚拟机被映射到第二组虚拟功能,第二组虚拟功能被映射到第二物理功能。
这些和其它特征将在以下说明书和附图中更详细地被呈现,以示例的方式示出。
附图说明
图1根据一些实施方式示出协处理器环境的示例。
图2根据一些实施方式示出提供灵活PF-VF映射的环境。
图3根据一些实施方式示出PF-VF映射。
图4根据一些实施方式示出另一PF-VF映射。
图5是根据一些实施方式示出用于灵活PF-VF映射的工艺流程的流程图。
图6示出用于实施可编程芯片的技术。
图7示出计算机系统的一个示例。
具体实施方式
图1根据一些实施方式示出协处理器环境的示例。在协处理器环境中的部件可允许物理装置作为用于在多个虚拟机(VM)中使用的多个装置而出现。每个VM可仿真计算机系统,其可以访问在协处理器环境中的部件。
例如,在图1中,处理器105可以是运行四个虚拟机(VM)110a、110b、110c和110d的处理器电路(或一起操作的多个处理器电路)。VM 110a至110d可能够利用接口120访问在协处理器135中的功能块130a和130b。接口120可以是用于在处理器105和协处理器135之间发送和接收数据的快速外设部件互连(PCIe)接口。在接口120上传输的数据可以被提供到或来自于处理器I/O逻辑115和协处理器I/O逻辑125。
在一些实施方式中,处理器I/O逻辑115和协处理器I/O逻辑125可以包括允许单根I/O虚拟化(SR-IOV)的各种逻辑功能,其可以允许在PCIe接口上的PCIe装置作为多个单独(separate)的物理PCIe装置而出现。例如,处理器I/O逻辑115可以包括PCIe SR-IOV根。协处理器I/O逻辑125可以包括包含PCIe SR-IOV端点(endpoint)和虚拟化管理逻辑的各种逻辑。因此,在协处理器135内(即,在SR-IOV PCIe接口的端点处)的部件可作为对VM 110a至110d的多个单独的物理PCIe装置(即,在SR-IOV PCIe接口的根处)而出现。因此,每个VM110a至110d可能够利用协处理器135仿真(emulate)计算机系统。
例如,功能块130a尽管只具有单个物理实例但是可作为对VM 110a至110d的四个单独的功能块而出现。如另一个示例,如果功能块130a提供实施网络接口控制器(NIC)的逻辑,则它可以作为四个单独的NIC而被呈现,每个NIC针对VM 110a至110d中的每个。NIC可以是与物理PICe装置一样可被发现、管理等的全功能的且可配置的PICe功能。通过协处理器135实施的物理功能(PF)可以提供对NIC的访问。所呈现的四个单独的NIC中的每个可以是可接收并提供数据的全功能NIC的虚拟功能(VF),但是可以没有PF的全功能方面。由协处理器135实施的VF可以允许VM通过VF访问PF和物理PCIe装置。同样地,功能块130b也可以呈现为对VM 110a至110d的四个单独的VF。
因此,每个PF可以是对具有作为VM的接口的多个VF的特定功能(例如,对于功能块130a的NIC)的接口,以使用该特定功能。在一个示例中,功能块130a可通过PF与针对NIC功能的高达16个VF而提供NIC的功能,以便VM利用,同时功能块130b可使用不同数目的VF(例如,128个)为VM提供不同功能以利用。因此,映射可包括对应于PF的功能块(例如,作为NIC的功能块130a),PF可对应于VF,其中每个VF对应于VM。
在一些系统中,在PF和VF之间的映射可为固定的。例如,如果功能块130a为NIC,那么映射到与功能块130a相关联的对应的PF的每个VF可表示NIC。然而,在使用可编程装置(例如,现场可编程门阵列、复杂可编程逻辑装置等)的系统中,对应于PF的功能可以被改变。例如,功能块130a可从NIC被重新配置成互联网小型计算机系统接口(iSCSI)。因此,使用PF映射的功能可以改变,并且因此,与VM 110a至110d相关联的VF或VF的数量可以例如通过具有VM 110a至110d的不同子集被提供对功能块130a的访问而改变。另外,新VM可被启动,其可需要VF映射到新PF,并且因此被提供对某些功能的访问。此外,新功能块可在协处理器135中被配置,并且可需要与对应的PF和VF相关联。因此,灵活的PF-VF映射在一些系统中可是有用的。
灵活的PF-VF映射还可以允许更好的平衡数据流。例如,由协处理器135提供的功能的任何组合可被映射到特定PF,并且PF可被映射到VF以提供灵活映射。因此,由协处理器135提供的功能的一些子集可通过第一PF提供,并且功能的第二子集可通过第二PF提供,其中在两个PF之间存在一些(或无)功能的重叠。例如,VF可基于VM的特性被映射到PF。如另一个示例,每个PF可与不同的客户端(client)相关联,并且每个客户端的VM的每个VF可被映射到PF,使得每个客户端可具有其自己的PF。这种类型的映射可允许更多控制数据流,因为一个PF(与一个客户端相关联)可以比另一个PF(与第二客户端相关联)被提供较高优先级以访问在协处理器135内的功能块。结果,每个PF可表示独立的客户端或客户端组,而不是表示特定功能。
图2根据一些实施方式示出提供灵活的PF-VF映射的环境。在图2中,协处理器I/O逻辑125包括用于管理在功能块、PF、VF和VM之间的关系的管理逻辑。例如,在图2中,PF0(即,物理功能)可与功能块130a相关联,并且PF1(即,另一物理功能)可与功能块130b相关联。因此,PF0可将由功能块130a提供的功能提供到映射到其的VF。同样地,PF1可将由功能块130b提供的功能提供到映射到其的VF。在图2中,VF0至VF4可为用于VM110a至110d的虚拟功能以通信以便访问功能块130a或130b。即,VF0至VF4可被映射到PF0和PF1,以允许VM110a至110d使用由功能块130a和130b提供的逻辑。例如,VM 110a可连接到2个VF:VF0和VF1。VF0可连接到PF0。VF1可连接到PF1。因为PF0提供对功能块130a的逻辑的访问,并且PF1提供对功能块130b的逻辑的访问,所以VM 110a可具有对功能块130a和130b两者的访问。
如先前所讨论的,灵活的PF-VF映射可允许对映射的不同设置。例如,VM的特性(例如,与特定客户相关联)可被用于映射。图3根据一些实施方式示出PF-VF映射。在图3中,PF-VF映射包括客户305a的VM 110a和110b以及客户305b的VM 110c和110d。即,协处理器环境的不同客户可以在相同的处理器105上具有VM。VM 110a至VM 110d中的每个映射到对应的VF0、VF1、VF3和VF4。VF0和VF1映射到PF0。VF3和VF4映射到PF1。PF0和PF1都映射到功能块130a和130b。因此,在图3的映射中,每个VM可以被提供由功能块130a和130b的逻辑提供的功能,因为功能块都映射到PF0和PF1的每个。因为客户305a和305b中的每个具有被映射到VF的其VM,该VF映射到具体的PF(例如,用于客户305a的VM的所有VF映射到PF0),PF可与优先级顺序相关联(例如,在PF0处接收的请求可具有较高优先级,并且因此该请求在PF1处所接收的请求之前被服务),并且客户的所有VM可通过具有以特定优先级顺序排序的PF根据优先级来组织。在一些实施方式中,优先级可在较高管理或编配(orchestration)层中被管理。
在一些实施方式中,当客户的新VM被实例化时(例如,当另一个计算机系统需要被仿真时),然后VM可被映射到新创建的VF,并且新创建的VF可被映射到针对客户的PF。例如,在图3中,如果客户305a的新VM被实例化,然后该新VM可以被映射到VF2,VF2可被映射到PF0,并且因此该新VM也可被提供功能块130a和130b的功能。如果客户305b的新VM被实例化,那么该新VM可以被映射到新VF,新VF可以被映射到PF1,从而也将功能块130a和130b的功能提供到新VM。
在一些实施方式中,协处理器I/O逻辑125的虚拟化管理逻辑可识别到VF2与客户305a相关联并随后将其分配到PF0。在一些实施方式中,协处理器I/O逻辑125可接收指示与客户305a相关联的新实例化的VM已经实例化的来自处理器105的客户标识符(例如,每个客户可具有可与它的所有VM一起使用的唯一识别)数据。因此,协处理器I/O逻辑125可然后将该新实例化的VM分配到新VF并且将该新VF分配到正确的PF。因此,虚拟化管理逻辑可追踪哪些PF和VF被分配到彼此。
在一些实施方式中,每个PF可表示协处理器135的所有能力。例如,如果协处理器135是可编程装置(例如,FPGA),那么它可包括硬逻辑功能(即,提供固定功能的固定电路)、软逻辑功能(即,被配置在FPGA内以提供功能的逻辑)以及作为可用于VM的资源的输入/输出(I/O),该VM被映射到VF,VF被映射到PF。
在一些实施方式中,每个PF可表示在协处理器135上的资源的组合。例如,PF0可提供协处理器135的100%可用功能,并且PF1可提供协处理器135的50%可用功能。因此,在图3的环境中,客户305a的每个VM可能够访问协处理器135的全部范围的可用功能,但是客户305b的每个VM可能够仅访问可用于客户305a的VM的功能的子集。
因此,每个PF可表示协处理器135的能力的任何组合,并且被映射到PF的任何VF可具有其被映射到的对应PF的能力的组合。例如,如果功能块130a提供用于NIC的功能,并且功能块130b提供用于iSCSI的功能,那么需要访问功能块130a和130b两者的VM可被映射到VF,该VF映射到被映射到两个功能的PF。
在一些实施方式中,由功能块130a和130b提供的逻辑可以改变。例如,如果协处理器135为FPGA(或其它可编程装置),那么功能块130a可以从一个功能被重新配置到另一个功能。即,协处理器135可被部分重新配置,使得功能块130a的功能可以被改变,同时功能块130b的功能保持相同并且对VM仍然是可访问的。
如示例,图4根据一些实施方式示出另一种PF-VF映射。在图4中,VM110a被映射到VF0(如通过关联405所示)。VF0被映射到PF0,该PF0被映射到功能块130a。功能块130a可提供用于密码学算法的功能。然而,功能块130a可被重新配置以提供压缩算法(并且不再提供密码学算法)。虚拟化管理逻辑可接收指示功能块130a已开始从密码学算法到压缩算法的重新配置的数据,并且因此可阻断与功能块130a相关联的所有流量(即,对功能块130a的请求或来自功能块130a的传输),因为功能块130a正被重新配置以提供压缩算法。当功能块130a已完成重新配置时,可允许流量重新开始。例如,虚拟化管理逻辑可通知VM功能块130a已完成重新配置,并且因此新请求可以被提供。
在一些实施方式中,由于重新配置功能块(例如,将功能块130a从密码学算法重新配置为压缩算法),PF-VF映射可以改变。例如,在图4中,VM 110a可被限制访问压缩算法,但是允许访问密码学算法。因此,在图4中,虽然功能块130a提供密码学算法,但是映射可以是适当的。然而,当功能块130a被重新配置成压缩算法时,虚拟化管理逻辑可以例如通过去除关联405来改变映射,使得当功能块130a被配置有压缩算法时,VM 110a不再具有对被映射到提供对功能块130a的访问的PF0的VF的访问。在另一示例中,关联406可被去除,使得VF0不再映射到PF0,并且因此确保VM 110a也不再具有对功能块130a的访问。在其它映射中,在PF和功能块自身之间的关联可以被更新(例如,被添加或被移除)。
因此,在VM到VF、VF与PF以及PF与功能块之间的映射可被添加或移除。例如,在图4中,表示VM 110a到VF0的映射的关联405可以被移除,并且VM 110a到另一VF的新映射可以产生,使得VM 110a被提供对另一功能块的访问(例如,通过将VM 110a映射到VF2或VF3来访问FB 130b而替代FB 130a)。在一些实施方式中,新VF可以被产生,并且VM 110a可被映射到新VF,或VM 110a可被映射到现有VF。在另一个示例中,关联406可被移除,并且VF0到另一PF(例如,PF1)的新映射可以被提供以使VM 110a访问功能块130b。在另一个示例中,在PF0到功能块130a自身之间的映射可被移除,并且在PF0到功能块130b之间的映射可以被产生。在这种情形下,VM 110a和VM 110b两者可不再具有对功能块130a的访问。在一些实施方式中,多个映射可以被调整。例如,在VF与PF以及PF到功能块之间的映射都可以被修改。因此,在VM与VF、VF与PF以及PF与功能块之间的映射可被移除和/或添加。
在一些实施方式中,某些客户和其对应的VM可被限制某些功能。因此,在功能块被重新配置时,虚拟化管理逻辑可识别VM到功能块的映射(包括VM到VF映射和VF到PF映射)可需要例如通过删除关联而被更新,使得VM不再具有对特定功能块的访问。
在一些实施方式中,额外的访问控制可以在虚拟化管理逻辑、功能块或两者内被实施。访问控制可以允许被映射到相同PF的不同VF具有对协处理器135的不同功能的访问。例如,如果功能块提供包处理和流量管理逻辑两者,那么一个VF可被允许访问包处理和流量管理两者,而另一VF可被允许仅访问包处理逻辑,尽管它可被映射到提供对包处理和流量管理逻辑两者的访问的PF。
图5是根据一些实施方式示出用于灵活的PF-VF映射的工艺流程的流程图。在方法500中,在方框510处,虚拟化管理电路可接收指示虚拟机将被提供对在功能块中实施的功能的访问的数据。例如,用户可以在由图7的处理器电路实施的基于软件的电子设计自动化(EDA)工具中的图形用户界面(GUI)中指定具体的VM映射,并且在VM、VF、PF和功能块之间的适当映射可被建立。如另一示例,虚拟化管理电路可以接收来自处理器105的指示VM、特性(例如,客户标识符)、分析功能块等的数据。在方框520处,虚拟化管理电路可建立映射以提供虚拟机对功能块中实施的功能的访问。
在一些实施方式中,本文公开的技术可以使用一个或多个可编程芯片来实施。例如,协处理器135可以在现场可编程门阵列(FPGA)或其它可编程芯片内实施。图6示出用于实施可编程芯片的技术。输入级1301接收通常来自用户的关于(诸如处理器核心以及将在电子装置上实施的其它部件)逻辑的选择信息。在一个示例中,接收的输入以高级语言程序的形式。生成器程序1305创建逻辑描述并将该逻辑描述与其它自定义逻辑一起提供到任何的各种合成(synthesis)工具、布局(place)和布线(route)程序以及逻辑配置工具,以允许逻辑描述在电子装置上被实施。
在一个示例中,输入级1301通常允许将在电子装置上使用的部件的选择和参数化。输入级1301还允许硬编码逻辑的配置。在一些示例中,被提供到输入级的组件包括知识产权功能、宏功能以及知识产权核心。输入级1301可以是使用向导以便允许有效或方便地输入信息的图形用户界面。输入级还可以是读取数据文件(诸如电子表格、数据库表或图表)以获得选择信息的文本接口或程序。输入级1301产生包含关于选择的各种模块的信息的输出。在该级中,用户可输入关于需要被隔离的个人组件的安全信息。例如,可以输入组件安全的不同等级以及哪些组件被允许彼此通信。
在典型的实施方式中,生成器程序1305可以识别选择并产生具有用于实施各种模块的信息的逻辑描述。生成器程序1305可以是创建HDL文件(诸如来自由用户输入的模块信息的Verilog、Abel、VHDL以及AHDL文件)的Perl脚本。在一个示例中,生成器程序识别一部分高级语言程序以便加速。其它编码被留下用于在处理器核心上执行。根据各种实施例,生成器程序1305识别指针(pointer)并为每个指针提供端口。具有生成器程序能力的一个工具是购自加利福尼亚州圣何塞的Altera公司的可编程芯片上系统(SOPC)生成器。生成器程序1305还可以将信息提供到合成工具1307以允许HDL文件被自动地合成。在一些示例中,逻辑描述由设计者直接提供。在由用户选择的各种部件之间的连接也可通过生成器程序互连。可用的合成工具中的一些为Leonardo Spectrum(购自威尔逊维尔的Mentor Graphics公司)、Oregon和Synplify(购自加利福尼亚州森尼维耳的Synplicity公司)。HDL文件可以包含仅通过合成工具可读的技术特定编码。在该点处的HDL文件还可被传递到仿真工具。
如本领域中的技术人员将理解的,输入级1301、生成器程序1305和合成工具1307可以是单独的程序。在单独的程序之间的接口可以是数据库文件、日志或在程序之间传输的简单消息。例如,代替将文件写入存储器,输入级1301可直接将消息发送到生成器程序1305以允许生成器程序创建逻辑描述。类似地,生成器程序可将信息直接提供到合成工具而替代写HDL文件。类似地,输入级1301、生成器程序1305和合成工具1307可被集成到单个程序。
用户可选择各种模块,并且集成的程序可以随后采用用户选择并以合成的网表(netlist)而非中间文件的形式输出逻辑描述。用于描述在电子装置上实施的逻辑的任何机制在本文被称为逻辑描述。根据各种实施例,逻辑描述是HDL文件,诸如VHDL、Abel、AHDL或Verilog文件。逻辑描述可在部件的用户选择和对装置的最终配置的参数之间处理的各种级中。根据其它实施例,逻辑描述为合成的网表,诸如电子设计交换格式输入文件(EDF文件)。EDF文件是可以通过合成工具1307输出的合成的网表文件。
合成工具1307可以采用HDL文件和输出EDF文件。用于合成的工具允许在电子装置上实施逻辑设计。可用的合成工具中的一些为Leonardo Spectrum(购自威尔逊维尔的Mentor Graphics公司),Oregon和Synplify(购自加利福尼亚州森尼维耳的Synplicity公司)。本领域的技术人员将理解各种合成网表格式。
检验级1313通常在合成级1307之后。检验级检查设计的准确性以确保中间或最终设计实现期望的要求。检验级通常包括仿真工具和定时(timing)分析工具。用于仿真的工具允许输入的应用和输出的观察而不必需实施物理装置。仿真工具为设计者提供用于设计的功能和定时检验两者的节省成本且有效的机制。功能检验包括独立于定时考虑的电路的逻辑操作。忽视参数,诸如门(gate)延迟。
定时检验包括对具有定时延迟的设计的操作的分析。确认用于连续的装置(诸如触发器)的设置、保持以及其它定时要求。一些可用的仿真工具包括Synopsys VCS、VSS和Scirocco(购自加利福尼亚州森尼维耳的Synopsys公司),以及Cadence NC-Verilog和NC-VHDL(购自加利福尼亚州圣何塞的Cadence设计系统)。在检验级1313之后,合成的网表文件可被提供到物理设计工具1319,其包括布局和布线工具以及配置工具。布局和布线工具定位在目标硬件装置的具体逻辑元件上的逻辑单元并且根据提供的逻辑和安全连接在各种逻辑元件的输入和输出之间的电线,以实施电子设计。根据本发明的各种实施例,布局和布线工具可执行本发明的技术以实施如由用户限定的各种安全要求和规则。迭代技术可以对用户是透明的,但是所得的装置可以在1323处被物理测试。
对于可编程逻辑装置,可编程逻辑配置级可以采用布局和布线工具的输出对具有用户选择和参数化的模块的逻辑装置进行编程。根据各种实施例,布局和布线工具和逻辑配置级在Quartus Development Tool(购自加利福尼亚州圣何塞的Altera公司)中被提供。如本领域技术人员将认识到的,通过使用本发明的各种技术,各种合成、布局和布线以及可编程逻辑配置工具可以被使用。
如上所述,不同的级和程序可以用各种方式集成。根据一个实施例,输入级1301、生成器程序1305、合成工具1307、检验工具1313以及物理设计工具1319可以被集成到单个程序。各种级自动地运行并对用户是透明的。程序可以接收用户选择的模块、产生描述用于实施各种选择的模块的逻辑的逻辑描述以及实施电子装置。如本领域技术人员将认识的,HDL文件和EDF文件仅是逻辑描述的示例。其它文件格式以及内部程序表示是逻辑描述的其它示例。
图7示出实施本文公开的技术的计算机系统的一个示例。计算机系统900包括任何数量的处理器1402(也被称为中央处理单元或CPU),所述处理器1402被耦合到包括存储器1406(通常为随机存取存储器或“RAM”)、存储器1404(通常为只读存储器或“ROM”)的装置。处理器1402可以被配置以产生电子设计。如本领域中熟知的,存储器1404起作用以单方向将数据和指令传送到CPU,并且存储器1406通常被用于以双向方式传送数据和指令。
这些存储器装置两者可以包括以上描述的任何合适类型的计算机可读介质。大容量存储装置1408还被双向耦合到CPU 1402并且提供附加的数据存储容量,并且大容量存储装置1408可以包括以上描述的任何计算机可读介质。大容量存储装置1408可以被用于存储程序、数据等并且通常为比存储器慢的次级存储介质诸如硬盘。大容量存储装置1408可以被用于容纳预先封装的逻辑或知识产权功能的库或数据库以及关于生成特定配置的信息。将理解的是,在适当的情况下,保留在大容量存储装置1408内的信息可以作为存储器1406的一部分以标准方式被并入作为虚拟存储器。具体的大容量存储装置诸如CD-ROM 1414也可以单方向将数据传递到CPU。
CPU 1402还被耦合到接口1410,该接口1410包括一个或多个输入/输出装置,诸如视频监测器、跟踪球、鼠标、键盘、麦克风、触敏显示器、换能器读卡器、磁带或纸带阅读器、输入板、指示笔、语音或手写识别器或其它公知的输入设备诸如当然其它计算机。CPU 1402可以是设计工具处理器。最后,CPU 1402可以可选地使用如通常在1412处所示的网络连接被耦合到计算机或远程通信网络。通过此类网络连接,可以设想,在执行上述过程步骤期间,CPU可以接收来自网络的信息或可以将信息输出到网络。应当注意,系统1400也可以与用于将完成的设计传送到可编程芯片上的装置相关联。计算机硬件和软件领域的技术人员将熟悉上述装置和材料。
虽然为了方便以上许多部件和过程以单数被描述,但是本领域的技术人员将理解,多个部件和重复的过程也可以被用于实践本发明的技术。
虽然本发明的具体实施例已经具体示出并参考其实施方式被描述,但是本领域的技术人员将理解,在不脱离本发明的实质和范围的前提下,可以改变所公开的实施例的形式和细节。例如,本发明的实施例可以使用多种部件并且不应被限制到上面提到的那些。因此,旨在本发明被解释为包括落入本发明的真实精神和范围内的所有变形和等同物。
Claims (17)
1.一种用于在物理功能和虚拟功能之间映射的方法,所述方法包括:
在虚拟化管理单元处接收指示虚拟机被提供对在功能块中实施的功能的访问的数据;
通过所述虚拟化管理单元建立在所述虚拟机和所述功能块之间的映射以提供所述虚拟机对在所述功能块中实施的所述功能的访问,所述映射指示每个虚拟机与对应的虚拟功能相关联,每个虚拟功能与一个或多个所述物理功能相关联,并且一个或多个所述物理功能中的每个与一个或多个所述功能块相关联,其中一个或多个所述物理功能包括第一物理功能和第二物理功能,所述第一物理功能被映射到提供第一功能的第一功能块,所述第二物理功能被映射到所述第一功能块和第二功能块,所述第二功能块提供第二功能;
重新配置所述第二功能块以提供第三功能,所述第三功能不同于所述第二功能;以及
基于所述第二功能块的所述重新配置由所述虚拟化管理单元更新所述映射以提供所述第三功能。
2.根据权利要求1所述的方法,其中更新所述映射包括修改与第一虚拟功能相关联的虚拟机的映射,使得所述虚拟机与第二虚拟功能相关联。
3.根据权利要求1所述的方法,其中更新所述映射包括修改与第一物理功能相关联的第一虚拟功能的映射,使得所述第一虚拟功能与第二物理功能相关联。
4.根据权利要求1所述的方法,其中更新所述映射包括修改所述第一物理功能的所述映射,使得所述第一物理功能与所述第二功能块相关联。
5.根据权利要求1至4中任一项所述的方法,其中所述映射基于所述虚拟机的特性,并且所述虚拟机的所述特性包括客户标识符。
6.根据权利要求1所述的方法,其中与第一客户标识符相关联的虚拟机被映射到第一组虚拟功能,所述第一组虚拟功能被映射到第一物理功能,并且与第二客户标识符相关联的虚拟机被映射到第二组虚拟功能,所述第二组虚拟功能被映射到第二物理功能。
7.根据权利要求1所述的方法,其中所述第一物理功能与第一优先级相关联,所述第二物理功能与第二优先级相关联,所述第一优先级是比所述第二优先级更高的优先级。
8.根据权利要求1所述的方法,其中所述虚拟化管理单元通过协处理器电路来实施,并且所述虚拟机通过处理器电路来实施。
9.一种用于在物理功能和虚拟功能之间映射的系统,其包括:
虚拟化管理电路,其接收指示虚拟机被提供对在功能块中实施的功能的访问的数据,并且产生在所述虚拟机和所述功能块之间的映射以提供所述虚拟机对在所述功能块中实施的所述功能的访问,所述映射指示每个虚拟机与对应的虚拟功能相关联,每个虚拟功能与一个或多个所述物理功能相关联,并且一个或多个所述物理功能中的每个与一个或多个所述功能块相关联,其中一个或多个所述物理功能包括第一物理功能和第二物理功能,所述第一物理功能被映射到第一功能块,所述第二物理功能被映射到所述第一功能块和第二功能块,其中所述第一功能块提供第一功能并且所述第二功能块提供第二功能,其中所述虚拟化管理电路被配置为基于所述第二功能块的重新配置更新所述映射以提供第三功能,所述第三功能不同于所述第二功能。
10.根据权利要求9所述的系统,其中所述映射基于所述虚拟机的特性,并且所述虚拟机的所述特性包括客户标识符。
11.根据权利要求9或10所述的系统,其中与第一客户标识符相关联的虚拟机被映射到第一组虚拟功能,所述第一组虚拟功能被映射到所述第一物理功能,并且与第二客户标识符相关联的虚拟机被映射到第二组虚拟功能,所述第二组虚拟功能被映射到所述第二物理功能。
12.根据权利要求9所述的系统,其中所述第一物理功能与第一优先级相关联,所述第二物理功能与第二优先级相关联,所述第一优先级是比所述第二优先级更高的优先级。
13.一种用于在物理功能和虚拟功能之间映射的系统,其包括:
实施虚拟机的处理器电路;以及
协处理器电路,其包括虚拟化管理电路和功能块,所述虚拟化管理电路接收指示由所述处理器实施的所述虚拟机被提供对在所述功能块中实施的功能的访问的数据,并且产生在所述虚拟机和所述功能块之间的映射以提供所述虚拟机对在所述功能块中实施的所述功能的访问,所述映射指示每个虚拟机与对应的虚拟功能相关联,每个虚拟功能与一个或多个所述物理功能相关联,并且一个或多个所述物理功能中的每个与一个或多个所述功能块相关联,其中一个或多个所述物理功能包括第一物理功能和第二物理功能,所述第一物理功能被映射到第一功能块,所述第二物理功能被映射到所述第一功能块和第二功能块,其中所述第一功能块提供第一功能并且所述第二功能块提供第二功能,其中所述虚拟化管理电路被配置为基于所述第二功能块的重新配置更新所述映射以提供第三功能,所述第三功能不同于所述第二功能。
14.根据权利要求13所述的系统,其中所述映射基于所述虚拟机的特性。
15.根据权利要求13所述的系统,其中与第一客户标识符相关联的虚拟机被映射到第一组虚拟功能,所述第一组虚拟功能被映射到所述第一物理功能,并且与第二客户标识符相关联的虚拟机被映射到第二组虚拟功能,所述第二组虚拟功能被映射到所述第二物理功能。
16.根据权利要求15所述的系统,其中所述第一物理功能与第一优先级相关联,所述第二物理功能与第二优先级相关联,所述第一优先级是比所述第二优先级更高的优先级。
17.根据权利要求14所述的系统,其中所述虚拟机的所述特性包括客户标识符。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010004047.0A CN111352697B (zh) | 2015-04-27 | 2016-04-26 | 灵活的物理功能和虚拟功能映射 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/697,307 US9588791B2 (en) | 2015-04-27 | 2015-04-27 | Flexible physical function and virtual function mapping |
US14/697,307 | 2015-04-27 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010004047.0A Division CN111352697B (zh) | 2015-04-27 | 2016-04-26 | 灵活的物理功能和虚拟功能映射 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106095563A CN106095563A (zh) | 2016-11-09 |
CN106095563B true CN106095563B (zh) | 2020-01-31 |
Family
ID=55860703
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010004047.0A Active CN111352697B (zh) | 2015-04-27 | 2016-04-26 | 灵活的物理功能和虚拟功能映射 |
CN201610264530.6A Active CN106095563B (zh) | 2015-04-27 | 2016-04-26 | 灵活的物理功能和虚拟功能映射 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010004047.0A Active CN111352697B (zh) | 2015-04-27 | 2016-04-26 | 灵活的物理功能和虚拟功能映射 |
Country Status (3)
Country | Link |
---|---|
US (4) | US9588791B2 (zh) |
EP (1) | EP3089030B1 (zh) |
CN (2) | CN111352697B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US12008389B2 (en) | 2018-11-13 | 2024-06-11 | Marvell Asia Pte, Ltd. | Flexible resource assignment to physical and virtual functions in a virtualized processing system |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10795742B1 (en) | 2016-09-28 | 2020-10-06 | Amazon Technologies, Inc. | Isolating unresponsive customer logic from a bus |
US10223317B2 (en) * | 2016-09-28 | 2019-03-05 | Amazon Technologies, Inc. | Configurable logic platform |
CN108259200B (zh) * | 2016-12-29 | 2019-11-29 | 华为技术有限公司 | 一种物理网络功能pnf迁移方法及相关设备 |
CN108737131B (zh) * | 2017-04-14 | 2021-04-20 | 中兴通讯股份有限公司 | 网络设备虚拟化的实现方法和装置 |
CN109657471B (zh) * | 2017-10-11 | 2023-02-28 | 阿里巴巴集团控股有限公司 | 云设备管理系统和方法 |
CN111176829B (zh) * | 2018-11-13 | 2023-07-14 | 马维尔亚洲私人有限公司 | 虚拟化处理系统中的物理功能和虚拟功能的灵活资源分配 |
Family Cites Families (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6728875B1 (en) * | 2000-11-09 | 2004-04-27 | International Business Machines Corporation | Network station suitable for identifying and prioritizing network adapters |
GB0304628D0 (en) * | 2003-02-28 | 2003-04-02 | Imec Inter Uni Micro Electr | Method for hardware-software multitasking on a reconfigurable computing platform |
EP1372084A3 (en) | 2002-05-31 | 2011-09-07 | Imec | Method for hardware-software multitasking on a reconfigurable computing platform |
US20050114549A1 (en) * | 2003-11-26 | 2005-05-26 | Durham David M. | Mechanism for extensible binary mappings for adaptable hardware/software interfaces |
EP2369479A3 (en) * | 2006-01-24 | 2011-12-21 | Citrix Systems, Inc. | Methods and systems for providing access to a computing environment |
US8065454B1 (en) * | 2009-08-20 | 2011-11-22 | Qlogic, Corporation | System and method for mapping functions to and from network devices using configuration compatible with an adapter by remapping plurality of logical ports of adapter |
US8561064B2 (en) * | 2010-10-26 | 2013-10-15 | International Business Machines Corporation | Retaining ownership of a virtual function while an adapter is replaced |
US9021475B2 (en) | 2011-05-04 | 2015-04-28 | Citrix Systems, Inc. | Systems and methods for SR-IOV pass-thru via an intermediary device |
US9218195B2 (en) * | 2011-05-17 | 2015-12-22 | International Business Machines Corporation | Vendor-independent resource configuration interface for self-virtualizing input/output device |
US9450873B2 (en) * | 2011-06-28 | 2016-09-20 | Microsoft Technology Licensing, Llc | Performance isolation for clouds |
JP5846836B2 (ja) * | 2011-10-11 | 2016-01-20 | 株式会社日立製作所 | 仮想計算機、仮想計算機システム、及び仮想計算機制御方法 |
US9311127B2 (en) * | 2011-12-16 | 2016-04-12 | International Business Machines Corporation | Managing configuration and system operations of a shared virtualized input/output adapter as virtual peripheral component interconnect root to single function hierarchies |
CN102591715B (zh) * | 2012-01-05 | 2014-02-12 | 北京航空航天大学 | 一种使用多队列技术的虚拟机网络性能优化的实现方法 |
JP5871233B2 (ja) * | 2012-03-22 | 2016-03-01 | 株式会社日立製作所 | 計算機及び帯域制御方法 |
US9311122B2 (en) * | 2012-03-26 | 2016-04-12 | Oracle International Corporation | System and method for providing a scalable signaling mechanism for virtual machine migration in a middleware machine environment |
CN102707991B (zh) * | 2012-05-17 | 2016-03-30 | 中国科学院计算技术研究所 | 多根i/o虚拟化共享方法和系统 |
US9201681B2 (en) * | 2013-02-13 | 2015-12-01 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Method and controller device for quality of service (QOS) caching in a virtualized environment |
WO2014201623A1 (zh) * | 2013-06-18 | 2014-12-24 | 华为技术有限公司 | 用于数据传输的方法、装置和系统以及物理网卡 |
CN105306241B (zh) * | 2014-07-11 | 2018-11-06 | 华为技术有限公司 | 一种业务部署方法及网络功能加速平台 |
US9569242B2 (en) * | 2014-07-16 | 2017-02-14 | International Business Machines Corporation | Implementing dynamic adjustment of I/O bandwidth for virtual machines using a single root I/O virtualization (SRIOV) adapter |
US10102165B2 (en) * | 2014-11-25 | 2018-10-16 | International Business Machines Corporation | Arbitration in an SRIOV environment |
US9594592B2 (en) * | 2015-01-12 | 2017-03-14 | International Business Machines Corporation | Dynamic sharing of unused bandwidth capacity of virtualized input/output adapters |
JP6388073B2 (ja) * | 2015-03-13 | 2018-09-12 | 日本電気株式会社 | 通信装置とシステムと方法並びに割り当て装置とプログラム |
-
2015
- 2015-04-27 US US14/697,307 patent/US9588791B2/en active Active
-
2016
- 2016-04-25 EP EP16166829.8A patent/EP3089030B1/en active Active
- 2016-04-26 CN CN202010004047.0A patent/CN111352697B/zh active Active
- 2016-04-26 CN CN201610264530.6A patent/CN106095563B/zh active Active
-
2017
- 2017-02-06 US US15/425,746 patent/US10133594B1/en active Active
-
2018
- 2018-11-13 US US16/190,099 patent/US10782995B2/en active Active
-
2020
- 2020-09-17 US US17/024,619 patent/US11675613B2/en active Active
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US12008389B2 (en) | 2018-11-13 | 2024-06-11 | Marvell Asia Pte, Ltd. | Flexible resource assignment to physical and virtual functions in a virtualized processing system |
Also Published As
Publication number | Publication date |
---|---|
CN111352697B (zh) | 2023-08-29 |
US10133594B1 (en) | 2018-11-20 |
US11675613B2 (en) | 2023-06-13 |
US10782995B2 (en) | 2020-09-22 |
US20210004256A1 (en) | 2021-01-07 |
CN111352697A (zh) | 2020-06-30 |
US9588791B2 (en) | 2017-03-07 |
CN106095563A (zh) | 2016-11-09 |
US20160314007A1 (en) | 2016-10-27 |
EP3089030B1 (en) | 2021-11-03 |
EP3089030A1 (en) | 2016-11-02 |
US20190079794A1 (en) | 2019-03-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106095563B (zh) | 灵活的物理功能和虚拟功能映射 | |
CN105808328B (zh) | 任务调度的方法、装置和系统 | |
JP2020537784A (ja) | ニューラルネットワークアクセラレーションのための機械学習ランタイムライブラリ | |
CN110580197A (zh) | 大型模型深度学习的分布式计算架构 | |
US8627274B2 (en) | Software tool and method for generating a virtual appliance | |
US20140056141A1 (en) | Processing system using virtual network interface controller addressing as flow control metadata | |
CN108140067B (zh) | 用于电路设计优化的方法和系统 | |
CN107526620A (zh) | 一种用户态输入输出设备配置方法及装置 | |
CN113313247B (zh) | 基于数据流架构的稀疏神经网络的运算方法 | |
CN110941934A (zh) | 一种fpga原型验证开发板分割仿真系统、方法、介质及终端 | |
CN210983400U (zh) | 片上系统和微控制器 | |
US20170083375A1 (en) | Thread performance optimization | |
WO2018080735A2 (en) | Method, apparatus and system for automatically performing end-to-end channel mapping for an interconnect | |
CN107391044A (zh) | 一种云硬盘的创建方法及创建装置 | |
US20220114451A1 (en) | Methods and apparatus for data enhanced automated model generation | |
WO2018063737A1 (en) | Method, apparatus and system for automatically deriving parameters for an interconnect | |
CN106227601A (zh) | 用于虚拟化平台的资源配置的方法和装置 | |
CN111260070B (zh) | 运算方法、装置及相关产品 | |
JP5907607B2 (ja) | 処理配置方法及びプログラム | |
CN105808318B (zh) | 一种信息处理方法和电子设备 | |
EP4261734A1 (en) | Automatic configuration of pipeline modules in an electronics system | |
CN109582277A (zh) | 数据处理方法、装置及相关产品 | |
CN110110362B (zh) | 一种使用嵌入式命令设计芯片的方法 | |
CN112396186B (zh) | 执行方法、装置及相关产品 | |
CN103731375B (zh) | 一种fc端口虚拟化方法、装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |