靈活的物理功能和虛擬功能映射的制作方法
【專利摘要】本發(fā)明公開了靈活的物理功能和虛擬功能映射。技術(shù)和機(jī)構(gòu)提供了在包括虛擬機(jī)的環(huán)境中用于物理功能和虛擬功能之間的靈活映射。
【專利說明】
靈活的物理功能和虛擬功能映射
技術(shù)領(lǐng)域
[0001]本公開通常涉及集成電路。更具體地,本公開涉及在物理功能和虛擬功能之間的靈活映射。
【背景技術(shù)】
[0002]網(wǎng)絡(luò)功能虛擬化(NFV)允許包括虛擬化功能的平臺。在一些NFV平臺中,處理器可以與提供附加功能的協(xié)處理器加速電路連接(interface)。處理器可以運(yùn)行多個(gè)虛擬機(jī)(VM),每個(gè)虛擬機(jī)通過使用物理功能(PF)和虛擬功能的映射訪問在協(xié)處理器加速電路中的附加功能。在PF和VF之間的映射可允許單個(gè)協(xié)處理器加速電路被視為可用于VM的多個(gè)資源。
[0003]在一些裝置中,諸如為協(xié)處理器加速提供附加功能的可編程裝置,該功能可以被改變。因此,設(shè)計(jì)者可希望在PF和VF之間更靈活的映射。
【發(fā)明內(nèi)容】
[0004]本文描述的主題提供了在包括虛擬機(jī)的環(huán)境中物理功能和虛擬功能之間的靈活映射。
[0005]物理功能(PF)可為特定功能提供接口。虛擬功能(VF)可為虛擬機(jī)(VM)提供接口以通過將VF映射到PF而訪問功能。PF到VF的映射可以是靈活的以允許特定場景實(shí)施更好的資源利用。
[0006]在一些實(shí)施方式中,用于在物理功能和虛擬功能之間映射的方法包括:在虛擬化管理單元處接收指示虛擬機(jī)被提供對在功能塊中實(shí)施的功能的訪問的數(shù)據(jù);以及通過虛擬化管理單元建立在虛擬機(jī)和功能塊之間的映射以提供虛擬機(jī)對在功能塊中實(shí)施的功能的訪問,該映射指示每個(gè)虛擬機(jī)與對應(yīng)的虛擬功能相關(guān)聯(lián),每個(gè)虛擬功能與一個(gè)或多個(gè)物理功能相關(guān)聯(lián),并且一個(gè)或多個(gè)物理功能中的每個(gè)與一個(gè)或多個(gè)功能塊相關(guān)聯(lián),其中該映射基于虛擬機(jī)的特性。
[0007]在一些實(shí)施方式中,一個(gè)或多個(gè)物理功能包括第一物理功能和第二物理功能,所述第一物理功能被映射到第一功能塊,所述第二物理功能被映射到第一功能塊和第二功能塊。
[0008]在一些實(shí)施方式中,第一功能塊提供第一功能,并且第二功能塊提供第二功能。
[0009]在一些實(shí)施方式中,所述方法包括:重新配置第二功能塊以提供第三功能;并且基于第二功能塊的重新配置更新所述映射以提供第三功能。
[0010]在一些實(shí)施方式中,所述映射包括修改與第一虛擬功能相關(guān)聯(lián)的虛擬機(jī)的映射,使得所述虛擬機(jī)與第二虛擬功能相關(guān)聯(lián)。
[0011]在一些實(shí)施方式中,更新映射包括修改與第一物理功能相關(guān)聯(lián)的第一虛擬功能的映射,使得第一虛擬功能與第二物理功能相關(guān)聯(lián)。
[0012]在一些實(shí)施方式中,更新映射包括修改與第一功能塊相關(guān)聯(lián)的第一物理功能的映射,使得第一物理功能與第二功能塊相關(guān)聯(lián)。
[0013]在一些實(shí)施方式中,虛擬機(jī)的特性包括客戶標(biāo)識符。
[0014]在一些實(shí)施方式中,與第一客戶標(biāo)識符相關(guān)聯(lián)的虛擬機(jī)被映射到第一組虛擬功能,所述第一組虛擬功能被映射到第一物理功能,并且與第二客戶標(biāo)識符相關(guān)聯(lián)的虛擬機(jī)被映射到第二組虛擬功能,所述第二組虛擬功能被映射到第二物理功能。
[0015]在一些實(shí)施方式中,第一物理功能與第一優(yōu)先級相關(guān)聯(lián),第二物理功能與第二優(yōu)先級相關(guān)聯(lián),第一優(yōu)先級是比第二優(yōu)先級高的優(yōu)先級。
[0016]在一些實(shí)施方式中,虛擬化管理單元通過協(xié)處理器電路來實(shí)施,并且虛擬機(jī)通過處理器電路來實(shí)施。
[0017]在一些實(shí)施方式中,虛擬化管理電路接收指示虛擬機(jī)被提供對在功能塊中實(shí)施的功能的訪問的數(shù)據(jù);并且產(chǎn)生在虛擬機(jī)和功能塊之間的映射以提供虛擬機(jī)對在功能塊中實(shí)施的功能的訪問,該映射指示每個(gè)虛擬機(jī)與對應(yīng)的虛擬功能相關(guān)聯(lián),每個(gè)虛擬功能與一個(gè)或多個(gè)物理功能相關(guān)聯(lián),并且一個(gè)或多個(gè)物理功能中的每個(gè)與一個(gè)或多個(gè)功能塊相關(guān)聯(lián),其中所述映射基于虛擬機(jī)的特性。
[0018]在一些實(shí)施方式中,一個(gè)或多個(gè)物理功能包括第一物理功能和第二物理功能,所述第一物理功能被映射到第一功能塊,所述第二物理功能被映射到第一功能塊和第二功能塊。
[0019]在一些實(shí)施方式中,第一功能塊提供第一功能,并且第二功能塊提供第二功能。
[0020]在一些實(shí)施方式中,虛擬化管理電路基于第二功能塊的重新配置而更新映射。
[0021 ]在一些實(shí)施方式中,虛擬機(jī)的特性包括客戶標(biāo)識符。
[0022]在一些實(shí)施方式中,與第一客戶標(biāo)識符相關(guān)聯(lián)的虛擬機(jī)被映射到第一組虛擬功能,第一組虛擬功能被映射到第一物理功能,并且與第二客戶標(biāo)識符相關(guān)聯(lián)的虛擬機(jī)被映射到第二組虛擬功能,第二組虛擬功能被映射到第二物理功能。
[0023]在一些實(shí)施方式中,第一物理功能與第一優(yōu)先級相關(guān)聯(lián),第二物理功能與第二優(yōu)先級相關(guān)聯(lián),第一優(yōu)先級是比第二優(yōu)先級更高的優(yōu)先級。
[0024]在一些實(shí)施方式中,一種系統(tǒng)包括:實(shí)施虛擬機(jī)的處理器電路;以及協(xié)處理器電路,其包括虛擬化管理電路和功能塊,所述虛擬化管理電路接收指示由處理器實(shí)施的虛擬機(jī)被提供對在功能塊中實(shí)施的功能的訪問的數(shù)據(jù),并且所述虛擬化管理電路產(chǎn)生在虛擬機(jī)和功能塊之間的映射以提供虛擬機(jī)對在功能塊中實(shí)施的功能的訪問,該映射指示每個(gè)虛擬機(jī)與對應(yīng)的虛擬功能相關(guān)聯(lián),每個(gè)虛擬功能與一個(gè)或多個(gè)物理功能相關(guān)聯(lián),并且一個(gè)或多個(gè)物理功能中的每個(gè)與一個(gè)或多個(gè)功能塊相關(guān)聯(lián),其中所述映射基于虛擬機(jī)的特性。
[0025]在一些實(shí)施方式中,一個(gè)或多個(gè)物理功能包括第一物理功能和第二物理功能,所述第一物理功能被映射到第一功能塊,所述第二物理功能被映射到第一功能塊和第二功能塊。
[0026]在一些實(shí)施方式中,第一功能塊提供第一功能,并且第二功能塊提供第二功能。
[0027]在一些實(shí)施方式中,虛擬化管理電路基于第二功能塊的重新配置而更新映射。
[0028]在一些實(shí)施方式中,虛擬機(jī)的特性包括客戶標(biāo)識符。
[0029]在一些實(shí)施方式中,與第一客戶標(biāo)識符相關(guān)聯(lián)的虛擬機(jī)被映射到第一組虛擬功能,第一組虛擬功能被映射到第一物理功能,并且與第二客戶標(biāo)識符相關(guān)聯(lián)的虛擬機(jī)被映射到第二組虛擬功能,第二組虛擬功能被映射到第二物理功能。
[0030]這些和其它特征將在以下說明書和附圖中更詳細(xì)地被呈現(xiàn),以示例的方式示出。
【附圖說明】
[0031]圖1根據(jù)一些實(shí)施方式示出協(xié)處理器環(huán)境的示例。
[0032]圖2根據(jù)一些實(shí)施方式示出提供靈活PF-VF映射的環(huán)境。
[0033]圖3根據(jù)一些實(shí)施方式示出PF-VF映射。
[0034]圖4根據(jù)一些實(shí)施方式示出另一PF-VF映射。
[0035]圖5是根據(jù)一些實(shí)施方式示出用于靈活PF-VF映射的工藝流程的流程圖。
[0036]圖6示出用于實(shí)施可編程芯片的技術(shù)。
[0037]圖7示出計(jì)算機(jī)系統(tǒng)的一個(gè)示例。
【具體實(shí)施方式】
[0038]圖1根據(jù)一些實(shí)施方式示出協(xié)處理器環(huán)境的示例。在協(xié)處理器環(huán)境中的部件可允許物理裝置作為用于在多個(gè)虛擬機(jī)(VM)中使用的多個(gè)裝置而出現(xiàn)。每個(gè)VM可仿真計(jì)算機(jī)系統(tǒng),其可以訪問在協(xié)處理器環(huán)境中的部件。
[0039]例如,在圖1中,處理器105可以是運(yùn)行四個(gè)虛擬機(jī)(VM) 110a、110b、IlOc和IlOd的處理器電路(或一起操作的多個(gè)處理器電路)。VM 11 Oa至11Od可能夠利用接口 120訪問在協(xié)處理器135中的功能塊130a和130b。接口 120可以是用于在處理器105和協(xié)處理器135之間發(fā)送和接收數(shù)據(jù)的快速外設(shè)部件互連(PCIe)接口。在接口 120上傳輸?shù)臄?shù)據(jù)可以被提供到或來自于處理器I/O邏輯115和協(xié)處理器I/O邏輯125。
[0040]在一些實(shí)施方式中,處理器I/O邏輯115和協(xié)處理器I/O邏輯125可以包括允許單根I/O虛擬化(SR-1OV)的各種邏輯功能,其可以允許在PCIe接口上的PCIe裝置作為多個(gè)單獨(dú)(separate)的物理PCIe裝置而出現(xiàn)。例如,處理器I/O邏輯115可以包括PCIe SR-1OV根。協(xié)處理器I/O邏輯125可以包括包含PCIe SR-1OV端點(diǎn)(endpoint)和虛擬化管理邏輯的各種邏輯。因此,在協(xié)處理器135內(nèi)(S卩,在SR-1OV PCIe接口的端點(diǎn)處)的部件可作為對VM 11Oa至IlOd的多個(gè)單獨(dú)的物理PCIe裝置(S卩,在SR-1OV PCIe接口的根處)而出現(xiàn)。因此,每個(gè)VMI 1a至I 1d可能夠利用協(xié)處理器135仿真(emulate)計(jì)算機(jī)系統(tǒng)。
[0041 ] 例如,功能塊130a盡管只具有單個(gè)物理實(shí)例但是可作為對VM IlOa至IlOd的四個(gè)單獨(dú)的功能塊而出現(xiàn)。如另一個(gè)示例,如果功能塊130a提供實(shí)施網(wǎng)絡(luò)接口控制器(NIC)的邏輯,則它可以作為四個(gè)單獨(dú)的NIC而被呈現(xiàn),每個(gè)NIC針對VM IlOa至IlOd中的每個(gè)。NIC可以是與物理PICe裝置一樣可被發(fā)現(xiàn)、管理等的全功能的且可配置的PICe功能。通過協(xié)處理器135實(shí)施的物理功能(PF)可以提供對NIC的訪問。所呈現(xiàn)的四個(gè)單獨(dú)的NIC中的每個(gè)可以是可接收并提供數(shù)據(jù)的全功能NIC的虛擬功能(VF),但是可以沒有PF的全功能方面。由協(xié)處理器135實(shí)施的VF可以允許VM通過VF訪問PF和物理PCIe裝置。同樣地,功能塊130b也可以呈現(xiàn)為對VM I1a至I1d的四個(gè)單獨(dú)的VF。
[0042]因此,每個(gè)PF可以是對具有作為VM的接口的多個(gè)VF的特定功能(例如,對于功能塊130a的NIC)的接口,以使用該特定功能。在一個(gè)示例中,功能塊130a可通過PF與針對NIC功能的高達(dá)16個(gè)VF而提供NIC的功能,以便VM利用,同時(shí)功能塊130b可使用不同數(shù)目的VF(例如,128個(gè))為VM提供不同功能以利用。因此,映射可包括對應(yīng)于PF的功能塊(例如,作為NIC的功能塊130a),PF可對應(yīng)于VF,其中每個(gè)VF對應(yīng)于VM。
[0043]在一些系統(tǒng)中,在PF和VF之間的映射可為固定的。例如,如果功能塊130a為NIC,那么映射到與功能塊130a相關(guān)聯(lián)的對應(yīng)的PF的每個(gè)VF可表示NIC。然而,在使用可編程裝置(例如,現(xiàn)場可編程門陣列、復(fù)雜可編程邏輯裝置等)的系統(tǒng)中,對應(yīng)于PF的功能可以被改變。例如,功能塊130a可從NIC被重新配置成互聯(lián)網(wǎng)小型計(jì)算機(jī)系統(tǒng)接口(iSCSI)。因此,使用PF映射的功能可以改變,并且因此,與VM IlOa至IlOd相關(guān)聯(lián)的VF或VF的數(shù)量可以例如通過具有VM 11Oa至I 1d的不同子集被提供對功能塊130a的訪問而改變。另外,新VM可被啟動,其可需要VF映射到新PF,并且因此被提供對某些功能的訪問。此外,新功能塊可在協(xié)處理器135中被配置,并且可需要與對應(yīng)的PF和VF相關(guān)聯(lián)。因此,靈活的PF-VF映射在一些系統(tǒng)中可是有用的。
[0044]靈活的PF-VF映射還可以允許更好的平衡數(shù)據(jù)流。例如,由協(xié)處理器135提供的功能的任何組合可被映射到特定PF,并且PF可被映射到VF以提供靈活映射。因此,由協(xié)處理器135提供的功能的一些子集可通過第一 PF提供,并且功能的第二子集可通過第二 PF提供,其中在兩個(gè)PF之間存在一些(或無)功能的重疊。例如,VF可基于VM的特性被映射到PF。如另一個(gè)示例,每個(gè)PF可與不同的客戶端(client)相關(guān)聯(lián),并且每個(gè)客戶端的VM的每個(gè)VF可被映射到PF,使得每個(gè)客戶端可具有其自己的PF。這種類型的映射可允許更多控制數(shù)據(jù)流,因?yàn)橐粋€(gè)PF(與一個(gè)客戶端相關(guān)聯(lián))可以比另一個(gè)PF(與第二客戶端相關(guān)聯(lián))被提供較高優(yōu)先級以訪問在協(xié)處理器135內(nèi)的功能塊。結(jié)果,每個(gè)PF可表示獨(dú)立的客戶端或客戶端組,而不是表示特定功能。
[0045]圖2根據(jù)一些實(shí)施方式示出提供靈活的PF-VF映射的環(huán)境。在圖2中,協(xié)處理器I/O邏輯125包括用于管理在功能塊、PF、VF和VM之間的關(guān)系的管理邏輯。例如,在圖2中,PFO(即,物理功能)可與功能塊130a相關(guān)聯(lián),并且PFl(即,另一物理功能)可與功能塊130b相關(guān)聯(lián)。因此,PFO可將由功能塊130a提供的功能提供到映射到其的VF。同樣地,PFl可將由功能塊130b提供的功能提供到映射到其的VF。在圖2中,VR)至VF4可為用于VMl 1a至11Od的虛擬功能以通信以便訪問功能塊13 O a或13 O b。即,VFO至VF4可被映射到PFO和PFI,以允許VMI1a至I1d使用由功能塊130a和130b提供的邏輯。例如,VM I1a可連接到2個(gè)VF:VFO和VFl JR)可連接到PFO JFl可連接到PFl。因?yàn)镻FO提供對功能塊130a的邏輯的訪問,并且PFl提供對功能塊130b的邏輯的訪問,所以VM IlOa可具有對功能塊130a和130b兩者的訪問。
[0046]如先前所討論的,靈活的PF-VF映射可允許對映射的不同設(shè)置。例如,VM的特性(例如,與特定客戶相關(guān)聯(lián))可被用于映射。圖3根據(jù)一些實(shí)施方式示出PF-VF映射。在圖3中,PF-VF映射包括客戶305a的VM IlOa和IlOb以及客戶305b的VM IlOc和IlOcL即,協(xié)處理器環(huán)境的不同客戶可以在相同的處理器105上具有VM13VM IlOa至VM I1d中的每個(gè)映射到對應(yīng)的¥卩0、¥?1、¥?3和¥?4。¥?0和¥?1映射到??0。¥?3和¥?4映射到??1。??0和??1都映射到功能塊130a和130b。因此,在圖3的映射中,每個(gè)VM可以被提供由功能塊130a和130b的邏輯提供的功能,因?yàn)楣δ軌K都映射到PFO和PFl的每個(gè)。因?yàn)榭蛻?05a和305b中的每個(gè)具有被映射到VF的其VM,該VF映射到具體的PF(例如,用于客戶305a的VM的所有VF映射至IjPFO),PF可與優(yōu)先級順序相關(guān)聯(lián)(例如,在PFO處接收的請求可具有較高優(yōu)先級,并且因此該請求在PFl處所接收的請求之前被服務(wù)),并且客戶的所有VM可通過具有以特定優(yōu)先級順序排序的PF根據(jù)優(yōu)先級來組織。在一些實(shí)施方式中,優(yōu)先級可在較高管理或編配(orchestrat1n)層中被管理。
[0047]在一些實(shí)施方式中,當(dāng)客戶的新VM被實(shí)例化時(shí)(例如,當(dāng)另一個(gè)計(jì)算機(jī)系統(tǒng)需要被仿真時(shí)),然后VM可被映射到新創(chuàng)建的VF,并且新創(chuàng)建的VF可被映射到針對客戶的PF。例如,在圖3中,如果客戶305a的新VM被實(shí)例化,然后該新VM可以被映射到VF2,VF2可被映射到PFO,并且因此該新VM也可被提供功能塊130a和130b的功能。如果客戶305b的新VM被實(shí)例化,那么該新VM可以被映射到新VF,新VF可以被映射到PFl,從而也將功能塊130a和130b的功能提供到新VM。
[0048]在一些實(shí)施方式中,協(xié)處理器I/O邏輯125的虛擬化管理邏輯可識別到VF2與客戶305a相關(guān)聯(lián)并隨后將其分配到PFO。在一些實(shí)施方式中,協(xié)處理器I/O邏輯125可接收指示與客戶305a相關(guān)聯(lián)的新實(shí)例化的VM已經(jīng)實(shí)例化的來自處理器105的客戶標(biāo)識符(例如,每個(gè)客戶可具有可與它的所有VM—起使用的唯一識別)數(shù)據(jù)。因此,協(xié)處理器I/O邏輯125可然后將該新實(shí)例化的VM分配到新VF并且將該新VF分配到正確的PF。因此,虛擬化管理邏輯可追蹤哪些PF和VF被分配到彼此。
[0049]在一些實(shí)施方式中,每個(gè)PF可表不協(xié)處理器135的所有能力。例如,如果協(xié)處理器135是可編程裝置(例如,F(xiàn)PGA),那么它可包括硬邏輯功能(S卩,提供固定功能的固定電路)、軟邏輯功能(即,被配置在FPGA內(nèi)以提供功能的邏輯)以及作為可用于VM的資源的輸入/輸出(I/O),該VM被映射到VF,VF被映射到PF。
[0050]在一些實(shí)施方式中,每個(gè)PF可表示在協(xié)處理器135上的資源的組合。例如,PFO可提供協(xié)處理器135的100%可用功能,并且PFl可提供協(xié)處理器135的50%可用功能。因此,在圖3的環(huán)境中,客戶305a的每個(gè)VM可能夠訪問協(xié)處理器135的全部范圍的可用功能,但是客戶305b的每個(gè)VM可能夠僅訪問可用于客戶305a的VM的功能的子集。
[0051 ]因此,每個(gè)PF可表示協(xié)處理器135的能力的任何組合,并且被映射到PF的任何VF可具有其被映射到的對應(yīng)PF的能力的組合。例如,如果功能塊130a提供用于NIC的功能,并且功能塊130b提供用于iSCSI的功能,那么需要訪問功能塊130a和130b兩者的VM可被映射到VF,該VF映射到被映射到兩個(gè)功能的PF。
[0052]在一些實(shí)施方式中,由功能塊130a和130b提供的邏輯可以改變。例如,如果協(xié)處理器135為FPGA(或其它可編程裝置),那么功能塊130a可以從一個(gè)功能被重新配置到另一個(gè)功能。即,協(xié)處理器135可被部分重新配置,使得功能塊130a的功能可以被改變,同時(shí)功能塊130b的功能保持相同并且對VM仍然是可訪問的。
[0053]如示例,圖4根據(jù)一些實(shí)施方式示出另一種PF-VF映射。在圖4中,VM110a被映射到VFO (如通過關(guān)聯(lián)405所示)JFO被映射到PFO,該P(yáng)FO被映射到功能塊130a。功能塊130a可提供用于密碼學(xué)算法的功能。然而,功能塊130a可被重新配置以提供壓縮算法(并且不再提供密碼學(xué)算法)。虛擬化管理邏輯可接收指示功能塊130a已開始從密碼學(xué)算法到壓縮算法的重新配置的數(shù)據(jù),并且因此可阻斷與功能塊130a相關(guān)聯(lián)的所有流量(S卩,對功能塊130a的請求或來自功能塊130a的傳輸),因?yàn)楣δ軌K130a正被重新配置以提供壓縮算法。當(dāng)功能塊130a已完成重新配置時(shí),可允許流量重新開始。例如,虛擬化管理邏輯可通知VM功能塊130a已完成重新配置,并且因此新請求可以被提供。
[0054]在一些實(shí)施方式中,由于重新配置功能塊(例如,將功能塊130a從密碼學(xué)算法重新配置為壓縮算法),PF-VF映射可以改變。例如,在圖4中,VM IlOa可被限制訪問壓縮算法,但是允許訪問密碼學(xué)算法。因此,在圖4中,雖然功能塊130a提供密碼學(xué)算法,但是映射可以是適當(dāng)?shù)?。然而,?dāng)功能塊130a被重新配置成壓縮算法時(shí),虛擬化管理邏輯可以例如通過去除關(guān)聯(lián)405來改變映射,使得當(dāng)功能塊130a被配置有壓縮算法時(shí),VM IlOa不再具有對被映射到提供對功能塊130a的訪問的PFO的VF的訪問。在另一示例中,關(guān)聯(lián)406可被去除,使得VFO不再映射到PFO,并且因此確保VM I1a也不再具有對功能塊130a的訪問。在其它映射中,在PF和功能塊自身之間的關(guān)聯(lián)可以被更新(例如,被添加或被移除)。
[0055]因此,在VM到VF、VF與PF以及PF與功能塊之間的映射可被添加或移除。例如,在圖4中,表示VM IlOa到VFO的映射的關(guān)聯(lián)405可以被移除,并且VM I1a到另一VF的新映射可以產(chǎn)生,使得VM IlOa被提供對另一功能塊的訪問(例如,通過將VM 110&映射到¥?2或¥?3來訪問FB 130b而替代FB 130a)。在一些實(shí)施方式中,新VF可以被產(chǎn)生,并且VM IlOa可被映射到新VF,或VM I 1a可被映射到現(xiàn)有VF。在另一個(gè)示例中,關(guān)聯(lián)406可被移除,并且VFO到另一PF(例如,PFl)的新映射可以被提供以使VM IlOa訪問功能塊130b。在另一個(gè)示例中,在PFO到功能塊130a自身之間的映射可被移除,并且在PFO到功能塊130b之間的映射可以被產(chǎn)生。在這種情形下,VM IlOa和VM IlOb兩者可不再具有對功能塊130a的訪問。在一些實(shí)施方式中,多個(gè)映射可以被調(diào)整。例如,在VF與PF以及PF到功能塊之間的映射都可以被修改。因此,在VM與VF、VF與PF以及PF與功能塊之間的映射可被移除和/或添加。
[0056]在一些實(shí)施方式中,某些客戶和其對應(yīng)的VM可被限制某些功能。因此,在功能塊被重新配置時(shí),虛擬化管理邏輯可識別VM到功能塊的映射(包括VM到VF映射和VF到PF映射)可需要例如通過刪除關(guān)聯(lián)而被更新,使得VM不再具有對特定功能塊的訪問。
[0057]在一些實(shí)施方式中,額外的訪問控制可以在虛擬化管理邏輯、功能塊或兩者內(nèi)被實(shí)施。訪問控制可以允許被映射到相同PF的不同VF具有對協(xié)處理器135的不同功能的訪問。例如,如果功能塊提供包處理和流量管理邏輯兩者,那么一個(gè)VF可被允許訪問包處理和流量管理兩者,而另一 VF可被允許僅訪問包處理邏輯,盡管它可被映射到提供對包處理和流量管理邏輯兩者的訪問的PF。
[0058]圖5是根據(jù)一些實(shí)施方式示出用于靈活的PF-VF映射的工藝流程的流程圖。在方法500中,在方框510處,虛擬化管理電路可接收指示虛擬機(jī)將被提供對在功能塊中實(shí)施的功能的訪問的數(shù)據(jù)。例如,用戶可以在由圖7的處理器電路實(shí)施的基于軟件的電子設(shè)計(jì)自動化(EDA)工具中的圖形用戶界面(GUI)中指定具體的VM映射,并且在VM、VF、PF和功能塊之間的適當(dāng)映射可被建立。如另一示例,虛擬化管理電路可以接收來自處理器105的指示VM、特性(例如,客戶標(biāo)識符)、分析功能塊等的數(shù)據(jù)。在方框520處,虛擬化管理電路可建立映射以提供虛擬機(jī)對功能塊中實(shí)施的功能的訪問。
[0059]在一些實(shí)施方式中,本文公開的技術(shù)可以使用一個(gè)或多個(gè)可編程芯片來實(shí)施。例如,協(xié)處理器135可以在現(xiàn)場可編程門陣列(FPGA)或其它可編程芯片內(nèi)實(shí)施。圖6示出用于實(shí)施可編程芯片的技術(shù)。輸入級1301接收通常來自用戶的關(guān)于(諸如處理器核心以及將在電子裝置上實(shí)施的其它部件)邏輯的選擇信息。在一個(gè)示例中,接收的輸入以高級語言程序的形式。生成器程序1305創(chuàng)建邏輯描述并將該邏輯描述與其它自定義邏輯一起提供到任何的各種合成(synthesis)工具、布局(place)和布線(route)程序以及邏輯配置工具,以允許邏輯描述在電子裝置上被實(shí)施。
[0060]在一個(gè)示例中,輸入級1301通常允許將在電子裝置上使用的部件的選擇和參數(shù)化。輸入級1301還允許硬編碼邏輯的配置。在一些示例中,被提供到輸入級的組件包括知識產(chǎn)權(quán)功能、宏功能以及知識產(chǎn)權(quán)核心。輸入級1301可以是使用向?qū)б员阍试S有效或方便地輸入信息的圖形用戶界面。輸入級還可以是讀取數(shù)據(jù)文件(諸如電子表格、數(shù)據(jù)庫表或圖表)以獲得選擇信息的文本接口或程序。輸入級1301產(chǎn)生包含關(guān)于選擇的各種模塊的信息的輸出。在該級中,用戶可輸入關(guān)于需要被隔離的個(gè)人組件的安全信息。例如,可以輸入組件安全的不同等級以及哪些組件被允許彼此通信。
[0061]在典型的實(shí)施方式中,生成器程序1305可以識別選擇并產(chǎn)生具有用于實(shí)施各種模塊的信息的邏輯描述。生成器程序1305可以是創(chuàng)建HDL文件(諸如來自由用戶輸入的模塊信息的Veril0g、Abel、VHDL以及AHDL文件)的Perl腳本。在一個(gè)示例中,生成器程序識別一部分高級語言程序以便加速。其它編碼被留下用于在處理器核心上執(zhí)行。根據(jù)各種實(shí)施例,生成器程序1305識別指針(pointer)并為每個(gè)指針提供端口。具有生成器程序能力的一個(gè)工具是購自加利福尼亞州圣何塞的Altera公司的可編程芯片上系統(tǒng)(SOPC)生成器。生成器程序1305還可以將信息提供到合成工具1307以允許HDL文件被自動地合成。在一些示例中,邏輯描述由設(shè)計(jì)者直接提供。在由用戶選擇的各種部件之間的連接也可通過生成器程序互連??捎玫暮铣晒ぞ咧械囊恍長eonardo Spectrum(購自威爾遜維爾的Mentor Graphics公司)、0regon和Synplify(購自加利福尼亞州森尼維耳的Synplicity公司)C3HDL文件可以包含僅通過合成工具可讀的技術(shù)特定編碼。在該點(diǎn)處的HDL文件還可被傳遞到仿真工具。
[0062]如本領(lǐng)域中的技術(shù)人員將理解的,輸入級1301、生成器程序1305和合成工具1307可以是單獨(dú)的程序。在單獨(dú)的程序之間的接口可以是數(shù)據(jù)庫文件、日志或在程序之間傳輸?shù)暮唵蜗?。例如,代替將文件寫入存儲器,輸入?301可直接將消息發(fā)送到生成器程序1305以允許生成器程序創(chuàng)建邏輯描述。類似地,生成器程序可將信息直接提供到合成工具而替代寫HDL文件。類似地,輸入級1301、生成器程序1305和合成工具1307可被集成到單個(gè)程序。
[0063]用戶可選擇各種模塊,并且集成的程序可以隨后采用用戶選擇并以合成的網(wǎng)表(netlist)而非中間文件的形式輸出邏輯描述。用于描述在電子裝置上實(shí)施的邏輯的任何機(jī)制在本文被稱為邏輯描述。根據(jù)各種實(shí)施例,邏輯描述是HDL文件,諸如VHDL、Abel、AHDL或Verilog文件。邏輯描述可在部件的用戶選擇和對裝置的最終配置的參數(shù)之間處理的各種級中。根據(jù)其它實(shí)施例,邏輯描述為合成的網(wǎng)表,諸如電子設(shè)計(jì)交換格式輸入文件(EDF文件KEDF文件是可以通過合成工具1307輸出的合成的網(wǎng)表文件。
[0064]合成工具1307可以采用HDL文件和輸出EDF文件。用于合成的工具允許在電子裝置上實(shí)施邏輯設(shè)計(jì)??捎玫暮铣晒ぞ咧械囊恍長eonardo Spectrum(購自威爾遜維爾的Mentor Graphics公司),Oregon和Synplify(購自加利福尼亞州森尼維耳的Synplicity公司)。本領(lǐng)域的技術(shù)人員將理解各種合成網(wǎng)表格式。
[0065]檢驗(yàn)級1313通常在合成級1307之后。檢驗(yàn)級檢查設(shè)計(jì)的準(zhǔn)確性以確保中間或最終設(shè)計(jì)實(shí)現(xiàn)期望的要求。檢驗(yàn)級通常包括仿真工具和定時(shí)(timing)分析工具。用于仿真的工具允許輸入的應(yīng)用和輸出的觀察而不必需實(shí)施物理裝置。仿真工具為設(shè)計(jì)者提供用于設(shè)計(jì)的功能和定時(shí)檢驗(yàn)兩者的節(jié)省成本且有效的機(jī)制。功能檢驗(yàn)包括獨(dú)立于定時(shí)考慮的電路的邏輯操作。忽視參數(shù),諸如門(gate)延遲。
[0066]定時(shí)檢驗(yàn)包括對具有定時(shí)延遲的設(shè)計(jì)的操作的分析。確認(rèn)用于連續(xù)的裝置(諸如觸發(fā)器)的設(shè)置、保持以及其它定時(shí)要求。一些可用的仿真工具包括Synopsys VCS、VSS和Scirocco(購自加利福尼亞州森尼維耳的Synopsys公司),以及Cadence
VHDL(購自加利福尼亞州圣何塞的Cadence設(shè)計(jì)系統(tǒng))。在檢驗(yàn)級1313之后,合成的網(wǎng)表文件可被提供到物理設(shè)計(jì)工具1319,其包括布局和布線工具以及配置工具。布局和布線工具定位在目標(biāo)硬件裝置的具體邏輯元件上的邏輯單元并且根據(jù)提供的邏輯和安全連接在各種邏輯元件的輸入和輸出之間的電線,以實(shí)施電子設(shè)計(jì)。根據(jù)本發(fā)明的各種實(shí)施例,布局和布線工具可執(zhí)行本發(fā)明的技術(shù)以實(shí)施如由用戶限定的各種安全要求和規(guī)則。迭代技術(shù)可以對用戶是透明的,但是所得的裝置可以在1323處被物理測試。
[0067]對于可編程邏輯裝置,可編程邏輯配置級可以采用布局和布線工具的輸出對具有用戶選擇和參數(shù)化的模塊的邏輯裝置進(jìn)行編程。根據(jù)各種實(shí)施例,布局和布線工具和邏輯配置級在Quartus Development Tool(購自加利福尼亞州圣何塞的Altera公司)中被提供。如本領(lǐng)域技術(shù)人員將認(rèn)識到的,通過使用本發(fā)明的各種技術(shù),各種合成、布局和布線以及可編程邏輯配置工具可以被使用。
[0068]如上所述,不同的級和程序可以用各種方式集成。根據(jù)一個(gè)實(shí)施例,輸入級1301、生成器程序1305、合成工具1307、檢驗(yàn)工具1313以及物理設(shè)計(jì)工具1319可以被集成到單個(gè)程序。各種級自動地運(yùn)行并對用戶是透明的。程序可以接收用戶選擇的模塊、產(chǎn)生描述用于實(shí)施各種選擇的模塊的邏輯的邏輯描述以及實(shí)施電子裝置。如本領(lǐng)域技術(shù)人員將認(rèn)識的,HDL文件和EDF文件僅是邏輯描述的示例。其它文件格式以及內(nèi)部程序表示是邏輯描述的其它示例。
[0069]圖7示出實(shí)施本文公開的技術(shù)的計(jì)算機(jī)系統(tǒng)的一個(gè)示例。計(jì)算機(jī)系統(tǒng)900包括任何數(shù)量的處理器1402(也被稱為中央處理單元或CPU),所述處理器1402被耦合到包括存儲器1406(通常為隨機(jī)存取存儲器或“RAM”)、存儲器1404(通常為只讀存儲器或“ROM”)的裝置。處理器1402可以被配置以產(chǎn)生電子設(shè)計(jì)。如本領(lǐng)域中熟知的,存儲器1404起作用以單方向?qū)?shù)據(jù)和指令傳送到CPU,并且存儲器1406通常被用于以雙向方式傳送數(shù)據(jù)和指令。
[0070]這些存儲器裝置兩者可以包括以上描述的任何合適類型的計(jì)算機(jī)可讀介質(zhì)。大容量存儲裝置1408還被雙向耦合到CPU 1402并且提供附加的數(shù)據(jù)存儲容量,并且大容量存儲裝置1408可以包括以上描述的任何計(jì)算機(jī)可讀介質(zhì)。大容量存儲裝置1408可以被用于存儲程序、數(shù)據(jù)等并且通常為比存儲器慢的次級存儲介質(zhì)諸如硬盤。大容量存儲裝置1408可以被用于容納預(yù)先封裝的邏輯或知識產(chǎn)權(quán)功能的庫或數(shù)據(jù)庫以及關(guān)于生成特定配置的信息。將理解的是,在適當(dāng)?shù)那闆r下,保留在大容量存儲裝置1408內(nèi)的信息可以作為存儲器1406的一部分以標(biāo)準(zhǔn)方式被并入作為虛擬存儲器。具體的大容量存儲裝置諸如CD-ROM 1414也可以單方向?qū)?shù)據(jù)傳遞到CPU。
[0071]CPU 1402還被耦合到接口 1410,該接口 1410包括一個(gè)或多個(gè)輸入/輸出裝置,諸如視頻監(jiān)測器、跟蹤球、鼠標(biāo)、鍵盤、麥克風(fēng)、觸敏顯示器、換能器讀卡器、磁帶或紙帶閱讀器、輸入板、指示筆、語音或手寫識別器或其它公知的輸入設(shè)備諸如當(dāng)然其它計(jì)算機(jī)。CPU 1402可以是設(shè)計(jì)工具處理器。最后,CPU 1402可以可選地使用如通常在1412處所示的網(wǎng)絡(luò)連接被耦合到計(jì)算機(jī)或遠(yuǎn)程通信網(wǎng)絡(luò)。通過此類網(wǎng)絡(luò)連接,可以設(shè)想,在執(zhí)行上述過程步驟期間,CPU可以接收來自網(wǎng)絡(luò)的信息或可以將信息輸出到網(wǎng)絡(luò)。應(yīng)當(dāng)注意,系統(tǒng)1400也可以與用于將完成的設(shè)計(jì)傳送到可編程芯片上的裝置相關(guān)聯(lián)。計(jì)算機(jī)硬件和軟件領(lǐng)域的技術(shù)人員將熟悉上述裝置和材料。
[0072]雖然為了方便以上許多部件和過程以單數(shù)被描述,但是本領(lǐng)域的技術(shù)人員將理解,多個(gè)部件和重復(fù)的過程也可以被用于實(shí)踐本發(fā)明的技術(shù)。
[0073]雖然本發(fā)明的具體實(shí)施例已經(jīng)具體示出并參考其實(shí)施方式被描述,但是本領(lǐng)域的技術(shù)人員將理解,在不脫離本發(fā)明的實(shí)質(zhì)和范圍的前提下,可以改變所公開的實(shí)施例的形式和細(xì)節(jié)。例如,本發(fā)明的實(shí)施例可以使用多種部件并且不應(yīng)被限制到上面提到的那些。因此,旨在本發(fā)明被解釋為包括落入本發(fā)明的真實(shí)精神和范圍內(nèi)的所有變形和等同物。
【主權(quán)項(xiàng)】
1.一種用于在物理功能和虛擬功能之間映射的方法,所述方法包括: 在虛擬化管理單元處接收指示虛擬機(jī)被提供對在功能塊中實(shí)施的功能的訪問的數(shù)據(jù);以及 通過所述虛擬化管理單元建立在所述虛擬機(jī)和所述功能塊之間的映射以提供所述虛擬機(jī)對在所述功能塊中實(shí)施的所述功能的訪問,所述映射指示每個(gè)虛擬機(jī)與對應(yīng)的虛擬功能相關(guān)聯(lián),每個(gè)虛擬功能與所述物理功能中的一個(gè)或多個(gè)相關(guān)聯(lián),并且所述一個(gè)或多個(gè)物理功能中的每個(gè)與所述一個(gè)或多個(gè)功能塊相關(guān)聯(lián),其中所述映射基于所述虛擬機(jī)的特性。2.根據(jù)權(quán)利要求1所述的方法,其中所述一個(gè)或多個(gè)物理功能包括第一物理功能和第二物理功能,所述第一物理功能被映射到第一功能塊,所述第二物理功能被映射到所述第一功能塊和第二功能塊。3.根據(jù)權(quán)利要求1或2所述的方法,其中所述第一功能塊提供第一功能,并且所述第二功能塊提供第二功能。4.根據(jù)權(quán)利要求1至3中任一項(xiàng)所述的方法,其進(jìn)一步包括: 重新配置所述第二功能塊以提供第三功能;并且 基于所述第二功能塊的所述重新配置來更新所述映射以提供所述第三功能。5.根據(jù)權(quán)利要求1至4中任一項(xiàng)所述的方法,其中更新所述映射包括修改與第一虛擬功能相關(guān)聯(lián)的虛擬機(jī)的映射,使得所述虛擬機(jī)與第二虛擬功能相關(guān)聯(lián)。6.根據(jù)權(quán)利要求1至5中任一項(xiàng)所述的方法,其中更新所述映射包括修改與第一物理功能相關(guān)聯(lián)的第一虛擬功能的映射,使得所述第一虛擬功能與第二物理功能相關(guān)聯(lián)。7.根據(jù)權(quán)利要求1至6中任一項(xiàng)所述的方法,其中更新所述映射包括修改與第一功能塊相關(guān)聯(lián)的第一物理功能的映射,使得所述第一物理功能與第二功能塊相關(guān)聯(lián)。8.根據(jù)權(quán)利要求1至7中任一項(xiàng)所述的方法,其中所述虛擬機(jī)的所述特性包括客戶標(biāo)識符。9.根據(jù)權(quán)利要求1至8中任一項(xiàng)所述的方法,其中與第一客戶標(biāo)識符相關(guān)聯(lián)的虛擬機(jī)被映射到第一組虛擬功能,所述第一組虛擬功能被映射到第一物理功能,并且與第二客戶標(biāo)識符相關(guān)聯(lián)的虛擬機(jī)被映射到第二組虛擬功能,所述第二組虛擬功能被映射到第二物理功會K。10.根據(jù)權(quán)利要求1至9中任一項(xiàng)所述的方法,其中所述第一物理功能與第一優(yōu)先級相關(guān)聯(lián),所述第二物理功能與第二優(yōu)先級相關(guān)聯(lián),所述第一優(yōu)先級是比所述第二優(yōu)先級更高的優(yōu)先級。
【文檔編號】G06F9/50GK106095563SQ201610264530
【公開日】2016年11月9日
【申請日】2016年4月26日 公開號201610264530.6, CN 106095563 A, CN 106095563A, CN 201610264530, CN-A-106095563, CN106095563 A, CN106095563A, CN201610264530, CN201610264530.6
【發(fā)明人】J·張, A·H·瑞比, A·陳, M·J·路易斯
【申請人】阿爾特拉公司