計算系統(tǒng)可包括多個周邊裝置。周邊裝置可擴展、調(diào)適和/或修改計算系統(tǒng)的功能性。周邊裝置可實施一個或多個功能。例如,周邊裝置可以是提供網(wǎng)絡(luò)連接性功能的網(wǎng)絡(luò)接口卡,或提供數(shù)據(jù)存儲功能的大容量存儲裝置等。一些周邊裝置可包括用以控制周邊裝置的行為的配置寄存器。例如,如果周邊裝置是周邊部件互連(PCI)兼容裝置,則周邊裝置可具有一組PCI配置空間寄存器。配置寄存器可包括可被讀取以指示周邊裝置的能力的字段,且可包括可被寫入以啟用、停用或更改周邊裝置的功能的字段。一般而言,配置寄存器實施為物理硬件寄存器,且字段根據(jù)周邊裝置的特定能力和功能而定義并硬編碼。因此,一旦制造,周邊裝置的配置寄存器的定義通常被固定且無法改變。附圖簡述將參考附圖描述根據(jù)本公開的各種實施方案,其中:圖1示出根據(jù)一些實施方案的包括多個周邊裝置的計算系統(tǒng)的示例;圖2示出根據(jù)一些實施方案的具有仿真配置空間的周邊裝置的方框圖;圖3示出根據(jù)一些實施方案的具有仿真配置空間的周邊裝置的方框圖;圖4示出根據(jù)一些實施方案的服務(wù)配置讀取事務(wù)的周邊裝置的示例;圖5示出根據(jù)一些實施方案的服務(wù)配置寫入請求的周邊裝置的示例;圖6示出根據(jù)一些實施方案的被配置以實施單根輸入/輸出虛擬化(SR-IOV)的周邊裝置的方框圖;圖7示出根據(jù)一些實施方案的用于服務(wù)配置訪問請求的流程圖;圖8示出根據(jù)一些實施方案的用于服務(wù)配置訪問請求以讀取配置寄存器的進程的示例;圖9示出根據(jù)一些實施方案的用于服務(wù)配置訪問請求以寫入配置寄存器的進程的示例;圖10示出根據(jù)一些實施方案的本文中所描述的包括經(jīng)由一個或多個網(wǎng)絡(luò)連接的一個或多個服務(wù)提供商計算機和/或用戶裝置的特征和系統(tǒng)的示例性架構(gòu);和圖11示出根據(jù)一些實施方案的用于實施各方面的計算系統(tǒng)的示例性環(huán)境的各方面。具體實施方式在以下描述中,將描述各種實施方案。出于闡釋目的,陳述特定配置及細(xì)節(jié)以便提供對實施方案的透徹理解。然而,本領(lǐng)域技術(shù)人員也明白的是,可實踐實施方案而無需特定細(xì)節(jié)。此外,可省略或簡化眾所周知的特征以便不使所描述的實施方案模糊。計算系統(tǒng)可包括多個周邊裝置。周邊裝置可擴展、調(diào)適和/或修改計算系統(tǒng)的功能性。例如,周邊裝置可提供對計算系統(tǒng)的存儲、網(wǎng)絡(luò)連接性和/或音頻及視頻支持等。周邊裝置通常通過一個或多個總線與計算系統(tǒng)通信??偩€上的數(shù)據(jù)傳送可由總線協(xié)議定義??偩€協(xié)議的示例可包括總線協(xié)議(例如,PCI、擴展PCI(PCI-X)、高速PCI(PCIe)、PCI派生物,諸如圖形加速端口(AGP)等)的周邊部件互連(PCI)族,以及其它。本文中所描述的技術(shù)包括仿真周邊裝置的一些或全部配置空間的部件和方法。仿真配置空間可由周邊裝置用以將其本身表示為具有不同能力的不同類型的周邊裝置。例如,仿真配置空間可允許周邊裝置將其本身在一些實例中表示為網(wǎng)絡(luò)接口卡,或在其它實例中表示為視頻卡等。仿真配置空間也可被動態(tài)地修改、擴增、加倍或替換為完全不同配置空間。另外,多個仿真配置空間可維持用于不同功能。仿真配置空間也可需要較少硬件。例如,實施單根I/O虛擬化(SR-IOV)的裝置可包括如下的仿真配置:其可針對任何數(shù)量的物理和/或虛擬功能而按比例調(diào)整而無需針對每個功能的物理硬件寄存器。此外,由仿真配置空間仿真的功能的數(shù)量可被動態(tài)地修改。本文中所描述的技術(shù)也可提供仿真模塊以促進對仿真配置空間的訪問。仿真模塊可實施為軟件、硬件或軟件與硬件的組合(例如,由周邊裝置的處理器執(zhí)行的軟件)。仿真模塊可與仿真配置空間交互,包括配置寄存器的讀取和寫入表示。I.系統(tǒng)圖1示出包括多個周邊裝置的計算系統(tǒng)100的示例。周邊裝置可包括可附接至計算系統(tǒng)以將功能性添加至系統(tǒng)的硬件裝置和/或包括硬件與軟件的組合的裝置。周邊裝置的示例包括存儲裝置、視頻卡、音頻卡、有線和/或無錢網(wǎng)絡(luò)適配器、用以提供至系統(tǒng)的額外端口(諸如,串行和/或并行端口)的適配器,以及網(wǎng)橋、集線器和/或提供用于額外周邊裝置的端口的交換機,以及其它。一般而言,周邊裝置可與計算系統(tǒng)連接及斷開連接以改變系統(tǒng)的功能性。在一些情形中,因添加或移除周邊裝置而必須將計算系統(tǒng)斷電。在其它情形中,可在為計算機系統(tǒng)供電時附接或移除周邊裝置(例如,通常稱為“熱交換”或“熱插入”)。圖1中的示例示出包括實施周邊部件互連(PCI)總線標(biāo)準(zhǔn)的一個或多個變化的周邊器件的系統(tǒng)??偩€是在計算系統(tǒng)內(nèi)或在計算系統(tǒng)與其它裝置之間傳送數(shù)據(jù)的通信信道。標(biāo)準(zhǔn)化總線協(xié)議是各個制造商已針對其定義并采用規(guī)范的數(shù)據(jù)傳送協(xié)議。兼容裝置與實施總線協(xié)議的計算系統(tǒng)兼容,且反之亦然。PCI描述相關(guān)標(biāo)準(zhǔn)化總線協(xié)議族。如本文中所使用,PCI包括原始PCI標(biāo)準(zhǔn)、擴展PCI(PCI-X)、圖形加速端口(AGP)以及高速PCI(PCIe,也稱為PCI-XP)。如本文中所使用,術(shù)語“PCI”可用以描述總線協(xié)議的PCI族中的任何協(xié)議。在圖1中所示的示例中,PCI僅被提供為可由計算系統(tǒng)實施的總線協(xié)議的示例。其它總線協(xié)議可包括(例如)行業(yè)標(biāo)準(zhǔn)架構(gòu)(ISA)、擴展ISA(EISA)、視頻電子標(biāo)準(zhǔn)協(xié)會(VESA)、微信道、總線的高級技術(shù)附件(ATA)族中的任何等。所示的示例也可以標(biāo)準(zhǔn)化總線協(xié)議、專屬總線協(xié)議的組合和/或以標(biāo)準(zhǔn)化及專屬總線協(xié)議的組合而實施。示例性計算系統(tǒng)100可包括處理器102、一個或多個根復(fù)合體104a至104b、存儲器子系統(tǒng)106、交換機108、網(wǎng)橋114以及數(shù)個周邊裝置。周邊裝置可稱為“端點”。處理器102可以是通用計算單元(諸如,由等制造的通用計算單元),且一般而言能夠執(zhí)行軟件代碼。處理器102可包括多個處理核心。根復(fù)合體104a可以是將處理器100及存儲器子系統(tǒng)106連接至端點110a至110c、112a至112c的硬件裝置或硬件與軟件裝置。端點110a至110c、112a至112c可直接連接至根復(fù)合體104a。可替代或另外,端點110a至110c、112a至112c可通過交換機108或集線器等連接至根復(fù)合體104a。網(wǎng)橋114也可連接至根復(fù)合體104a。根復(fù)合體104a可轉(zhuǎn)送事務(wù)及響應(yīng)往返于處理器102,和/或可代表處理器102產(chǎn)生且響應(yīng)于事務(wù)。在一些情形中,根復(fù)合體104a也可將事務(wù)自一個端點110a至110c、112a至112c路由至另一個端點,和/或在端點110a至110c、112a至112c、交換機108及網(wǎng)橋114之間路由事務(wù)。根復(fù)合體104a可為計算機系統(tǒng)100提供服務(wù),諸如熱插入控制器、電源管理控制器、中斷控制器和/或錯誤檢測及報告。在一些情形中,根復(fù)合體104a和/或104b可實施為主機系統(tǒng)(例如,處理器102)的部分。在一些實施方案中,計算系統(tǒng)100可包括一個以上根復(fù)合體。每個根復(fù)合體可連接至不同組的周邊裝置。在一些情形中,周邊裝置的一個或多個可連接至一個以上根復(fù)合體。例如,如在圖1中所示,端點110a可連接至根復(fù)合體104a及104b兩者。存儲器子系統(tǒng)106提供對可由計算系統(tǒng)100使用的數(shù)據(jù)的暫時或長期存儲。存儲器子系統(tǒng)106可包括動態(tài)隨機存取存儲器(DRAM)(例如,同步DRAM(SDRAM)、雙數(shù)據(jù)速率(DDR)SDRAM等)和/或其它類型的存儲器,諸如靜態(tài)隨機存取存儲器(SRAM)、閃存等。端點110a至110c、112a至112c是可產(chǎn)生和/或響應(yīng)于數(shù)據(jù)事務(wù)的周邊裝置。例如,端點110a至110c、112a至112c可以是“請求者”(事務(wù)產(chǎn)生器)和/或“完成者”(事務(wù)響應(yīng)器)。在PCI實施中,端點110a至110c可包括實施PCIe的周邊裝置,且端點112a至112c可包括實施傳統(tǒng)PCI的周邊裝置。端點110a至110c、112a至112c可通過共享總線連接至計算系統(tǒng)100。例如,傳統(tǒng)端點112b至112c連接至共享PCI總線116??商娲蛄硗猓它c110a至110c、112a至112c可在交換結(jié)構(gòu)拓?fù)渲羞B接。交換結(jié)構(gòu)拓?fù)淇砂ㄟB接至結(jié)構(gòu)的裝置之間的點對點連接,且可包括用于在裝置之間傳遞消息的路由系統(tǒng)。在交換結(jié)構(gòu)中,事務(wù)可跨多個物理鏈路擴散。結(jié)構(gòu)中的裝置之間的連接118a至118f也可稱為總線。交換機108用作各個周邊裝置(包括根復(fù)合體104a以及端點110a至110c、112a)之間的網(wǎng)橋。交換機108可在端點110a至110c、112a之間且在端點110a至110c、112a及根復(fù)合體104之間路由事務(wù)。交換機108也可提供對設(shè)定傳入及傳出數(shù)據(jù)事務(wù)的優(yōu)先級的仲裁。根復(fù)合體104及端點110a至110c、112a可將交換機108看作另一周邊裝置請求者和/或完成者。網(wǎng)橋114可提供至其它總線或交換結(jié)構(gòu)的連接性。其它總線或交換結(jié)構(gòu)可實施PCI變化形式或另一協(xié)議。例如,在圖1的示例中,網(wǎng)橋114提供至實施傳統(tǒng)PCI標(biāo)準(zhǔn)的總線的連接性。網(wǎng)橋114可包括用以自一個總線標(biāo)準(zhǔn)(諸如,傳統(tǒng)PCI)轉(zhuǎn)譯至另一協(xié)議(諸如,PCIe)的機構(gòu)。在圖1的示例中,諸如處理器102、根復(fù)合體104a至104b、存儲器子系統(tǒng)106、交換機108、網(wǎng)橋114以及端點110a至110c、112a至112c的部件被示為單獨部件。在一些實施中,這些部件的一個或多個可組合成單個部件。在其它實施中,這些部件的一個或多個可實施于單個芯片上。在其它實施中,這些部件的一個或多個可部分或全部實施于硬件中、軟件中和/或硬件與軟件的組合中。如上文所述,端點或周邊裝置可添加至和/或修改計算系統(tǒng)100的功能性。例如,一個端點110a可實施Wi-Fi適配器120。使用Wi-Fi適配器120,計算系統(tǒng)100可能夠與無線訪問點122無錢地通信,且由此訪問網(wǎng)絡(luò)。作為另一示例,另一端點110b可實施視頻卡。視頻卡可包括端口以連接監(jiān)視器124或其它顯示裝置。作為又一示例,計算系統(tǒng)100可包括實施聲卡的傳統(tǒng)端點112a。聲卡可包括接受用于揚聲器126或其它音頻輸出裝置的插頭的端口或插孔。作為再一示例,端點110c可實施以太網(wǎng)絡(luò)適配器,且提供至網(wǎng)關(guān)裝置128(諸如,DSL或電纜調(diào)制解調(diào)器)的連接。使用網(wǎng)關(guān)裝置128,計算系統(tǒng)100可訪問網(wǎng)絡(luò)130。如由這些示例所示,不同類型的周邊裝置(包括網(wǎng)絡(luò)適配器、視頻卡、音頻卡以及其它)可連接至系統(tǒng)。在一些情形中,周邊裝置可實施一個以上功能裝置。例如,在一些情形中,單個端點可包括用于輸出至監(jiān)視器124的視頻卡及用于輸出至揚聲器126的聲卡兩者。在一些實施中,功能也可(例如)通過將子卡或外部裝置連接至周邊裝置上的擴展槽或外部端口而添加至周邊裝置。在一些實施方案中,實施PCI的周邊裝置可包括高達八個單獨功能。在這些實施中,PCI裝置可使用類別代碼及可選子類別代碼指示所實施的一個或多個功能。類別代碼及可選子類別代碼可位于配置寄存器中。在下文進一步詳細(xì)地描述配置寄存器。表1列出PCI裝置類別代碼及其描述。類別代碼給定為8位十六進制值。表1:PCI裝置類別代碼類別代碼描述00h在定義類別代碼之前構(gòu)建的未分類的裝置和/或多個裝置。01h大容量存儲控制器。02h網(wǎng)絡(luò)控制器。03h顯示控制器。04h多媒體裝置。05h存儲器控制器06h網(wǎng)橋裝置。07h簡單通信控制器。08h基本系統(tǒng)周邊裝置。09h輸入裝置。0Ah對接站。0Bh處理器。0Ch串行總線控制器。0Dh無線控制器。0Eh智能I/O控制器。0Fh衛(wèi)星通信控制器。10h加密/解密控制器。11h數(shù)據(jù)采集和信號處理控制器FFh裝置不適合任何定義的類別代碼。當(dāng)計算系統(tǒng)(諸如,圖1中所示的計算系統(tǒng)100)初始通電時,處理器102可未覺察到連接至系統(tǒng)的任何端點。處理器102可覺察到根復(fù)合體104a至104b,且可能也覺察到根復(fù)合體連接至一個或多個總線。處理器102可通過執(zhí)行進程來掃描及配置系統(tǒng)而發(fā)現(xiàn)端點110a至110c、112a至112c以及其提供的功能。該進程可稱為列舉進程。在列舉進程期間,處理器102上執(zhí)行的軟件可掃描連接至根復(fù)合體104的每個總線118a、118e、118f,且識別附接至每個總線118a、118e、118f的每個端點110a至110c、112a至112c、交換機108和/或網(wǎng)橋114。處理器102可進一步指導(dǎo)根復(fù)合體104發(fā)起讀取及寫入每個端點110a至110c、112a至112c、交換機108和/或網(wǎng)橋114中的配置寄存器的事務(wù)。配置讀取事務(wù)可向處理器102通知每個端點110a至110c、112a至112c、交換機108和/或網(wǎng)橋114的裝置的能力及類型。配置寫入事務(wù)可用以配置并控制每個端點110a至110c、112a至112c、交換機108和/或網(wǎng)橋114。例如,在列舉期間,可為每個端點110a至110c、112a至112c、交換機108和/或網(wǎng)橋114指配總線及裝置數(shù)量。配置寄存器通常實施為周邊裝置的物理硬件寄存器,且周邊裝置中的配置寄存器的定義通常是固定的且無法動態(tài)地改變。如上文所述,端點可實施多個功能。列舉進程也可發(fā)現(xiàn)由每個端點實施的功能。在一些情形中,每個功能可包括其自己的配置寄存器集合。特定讀取功能配置寄存器可向處理器102通知功能的性質(zhì)(例如,功能實施視頻驅(qū)動器)。特定功能配置寄存器也可存儲特定于功能的配置及設(shè)定。特定寫入功能寄存器可配置計算系統(tǒng)或處理器102所需的功能。在發(fā)現(xiàn)交換機108后,處理器102也可掃描并配置連接至交換機108的端點110a至110c。在發(fā)現(xiàn)網(wǎng)橋114后,處理器102也可掃描并配置附接至網(wǎng)橋114的另一側(cè)上的總線116的端點112b至112c。在一些情形中,實施仿真配置空間的周邊裝置可向計算系統(tǒng)表示其本身為不同周邊裝置。例如,實施仿真配置空間的周邊裝置可在一些實例中表示其本身為具有特定于網(wǎng)絡(luò)接口卡的配置寄存器的網(wǎng)絡(luò)接口卡,或在其它實例中表示其本身為具有特定于這樣周邊裝置的配置寄存器的不同周邊裝置(諸如,視頻卡或聲卡)。仿真配置空間也可被修改、加倍或替換為完全不同配置空間。另外,多個仿真配置空間可維持用于特定功能。例如,計算系統(tǒng)可運行多個虛擬機,其中每個虛擬機運行不同操作系統(tǒng)。每個虛擬機可需要針對由周邊裝置提供的相同功能的不同配置。在此類情形中,周邊裝置中的仿真配置空間可提供針對每個虛擬機的仿真配置。仿真配置空間也可需要較少硬件。例如,包括SR-IOV的裝置可包括針對任何數(shù)量的物理和/或虛擬功能的仿真配置,而不需要針對每個功能的物理硬件寄存器。II.仿真配置空間圖2示出根據(jù)一些實施方案的實施仿真配置空間的周邊裝置200的示例。例如,周邊裝置200可用以替換圖1所示的端點和/或根復(fù)合體的一個或多個。雖然周邊裝置200被示為獨立裝置,但應(yīng)注意周邊裝置200的部件可與主機系統(tǒng)(例如,主機處理器)整合,使得周邊裝置200和主機系統(tǒng)可實施于相同硅晶?;蚍庋b上。例如,周邊裝置200可以是在與主機處理器相同芯片上實施的集成圖形裝置。所示的示例性周邊裝置可實施任何總線協(xié)議,諸如PCI協(xié)議族、ISA、EISA、VESA、多信道等??偩€協(xié)議可提供對周邊裝置預(yù)期包括的具有指定地址的配置寄存器的定義。圖2的周邊裝置200可仿真針對所實施總線協(xié)議定義的配置地址空間的至少一部分。在一些情形中,周邊裝置200也可包括不被仿真的配置寄存器,諸如用于實施周邊裝置的基本功能性(例如,用于設(shè)定總線速度等)和/或?qū)嵤┨囟偩€協(xié)議的所有周邊裝置所共同的基本功能性的配置寄存器。這些不被仿真配置寄存器可被稱為“原生”配置空間。在一些實施中,仿真是指一個程序或裝置模仿另一程序或裝置的能力。例如,圖2的周邊裝置200可包括用以仿真不同周邊裝置的一個或多個功能的仿真配置空間。例如,周邊裝置200可在一種背景中仿真視頻卡,且在另一背景中仿真大容量存儲裝置。作為另一示例,實施一個功能且由一家公司制造的周邊裝置200可能夠仿真不同公司制造且實施相同功能的周邊裝置。在一些實施方案中,周邊裝置200可用以仿真一個以上周邊裝置,且因此在一些情景中,周邊裝置200可仿真整個周邊子系統(tǒng)。周邊裝置200可包括總線接口核心210、配置管理模塊220、本地硬件230以及存儲器240。周邊裝置200可經(jīng)由總線202與計算系統(tǒng)通信。總線202可實施特定總線協(xié)議。總線接口核心210可包括周邊裝置200與總線202通信所需的電路及邏輯。例如,總線接口核心210可包括用于與總線202通信的總線接口214。總線接口214可包括至總線202的物理連接,包括用以管理至總線202的鏈路的任何電性質(zhì)的電路??偩€接口214可進一步包括用于以下的邏輯:同步化至總線202,將傳入事務(wù)解碼并將傳出事務(wù)編碼,和/或檢測并可能地管理傳入或傳出數(shù)據(jù)中的錯誤,以及其它操作??偩€接口核心210也可包括原生配置空間212。在不包括仿真配置空間的周邊裝置中,通常,總線接口核心210包括(例如)由總線協(xié)議定義的周邊裝置的所有配置寄存器。此外,在這樣的實施中,總線接口核心210通常服務(wù)對配置寄存器的所有讀取及寫入事務(wù)(其也可稱為配置訪問請求或配置訪問),且提供對總線202的響應(yīng)(如果需要)。相反,在示例性周邊裝置200中,原生配置空間212可包括其是周邊裝置200的配置寄存器的子集的原生配置寄存器。例如,原生配置寄存器可與可以是針對給定總線協(xié)議的所有周邊裝置所共同的基本功能性(例如,用于設(shè)定總線速度等)相關(guān)聯(lián),和/或否則可以是不必或不便仿真的配置寄存器。在一些實施方案中,也可仿真原生配置空間212。在一些實施中,總線接口核心210可檢測尋址至原生配置空間212的讀取及寫入事務(wù)。在這樣的實施中,總線接口核心210可服務(wù)被引導(dǎo)至原生配置寄存器212的配置事務(wù)。此外,在這些實施中,尋址至非原生配置空間212內(nèi)的配置空間的配置事務(wù)可被引導(dǎo)至配置管理模塊220。在其它實施中,總線接口核心210將所有配置讀取及寫入事務(wù)(而不管其被尋址至何處)引導(dǎo)至配置管理模塊220,且配置管理模塊220可確定該事務(wù)是否針對原生配置空間212。配置管理模塊220可提供被引導(dǎo)至配置寄存器的讀取及寫入事務(wù)的管理。在一些實施中,配置管理模塊220可提供事務(wù)記錄。事務(wù)記錄可由記錄或追蹤傳入配置事務(wù)的硬件和/或軟件實施。在接收配置事務(wù)后,總線接口核心210可用配置管理模塊220來記錄事務(wù)??偩€接口核心210可繼續(xù)其它操作,而無需等待所記錄配置事務(wù)完成。配置事務(wù)可自事務(wù)記錄讀取且(例如)在本地硬件230有時間時由本地硬件230服務(wù)。本地硬件230可在讀取了事務(wù)時自記錄移除該事務(wù),或可在事務(wù)已經(jīng)執(zhí)行且被響應(yīng)后或以其它方式在記錄中指示該事務(wù)已被服務(wù)或在被服務(wù)的進程中移除該事務(wù)。本地硬件230可實施為被調(diào)適以處理配置事務(wù)的一個或多個本地處理器、一個或多個本地處理器核心、本地處理器集群、可編程門陣列或控制邏輯電路。在包括多個處理器或處理器核心的實施中,每個處理器或處理器核心可獨立地或共同操作地執(zhí)行軟件代碼。在這樣的實施中,每個處理器或處理器核心可并行地服務(wù)來自配置管理模塊210的多個事務(wù)。在包括一個處理器的實施中,處理器可以是多線程的,且也能夠并行地服務(wù)多個事務(wù)。本地硬件230可運行操作系統(tǒng)232。操作系統(tǒng)232可以是商業(yè)操作系統(tǒng)(諸如,Linux、等),或可以是專屬操作系統(tǒng)。本地硬件230可實施或執(zhí)行仿真模塊236。在一些實施方案中,因為配置事務(wù)可需要快速響應(yīng)時間,因此仿真模塊可在安全環(huán)境中執(zhí)行或在被賦予充分特權(quán)的情況下執(zhí)行以使得對配置事務(wù)的處理不中斷。仿真模塊236可自配置管理模塊220接收事務(wù)(包括配置事務(wù)),且可服務(wù)這些事務(wù)。服務(wù)事務(wù)可包括:識別事務(wù)的類型(例如,讀取和/或?qū)懭?、識別事務(wù)的來源、識別事務(wù)被引導(dǎo)至的目的地、執(zhí)行事務(wù)和/或產(chǎn)生對事務(wù)的響應(yīng)(如果需要)。例如,配置讀取事務(wù)可包括讀取配置寄存器且用自寄存器讀取的信息做出響應(yīng)。作為另一示例,配置寫入寄存器可包括更新配置寄存器的內(nèi)容。在一些情形中,可用對已完成寫入事務(wù)的確認(rèn)來對配置寫入做出響應(yīng)。在一些實施中,仿真模塊236可確定配置事務(wù)是被引導(dǎo)至原生配置空間212還是仿真配置空間242。當(dāng)配置事務(wù)被引導(dǎo)至原生配置空間212時,仿真模塊236可與總線接口核心210通信以讀取或?qū)懭朐渲眉拇嫫?。?dāng)配置讀取被引導(dǎo)至仿真配置空間242時,仿真模塊236可自仿真配置空間242讀取表示配置寄存器的內(nèi)容的值。當(dāng)配置寫入被引導(dǎo)至仿真配置空間242時,仿真模塊236可寫入或更新仿真配置空間242中表示配置寄存器的內(nèi)容的數(shù)據(jù)。在一些實施中,配置事務(wù)可被引導(dǎo)至與一個或多個功能相關(guān)聯(lián)的配置寄存器,在該情形中,仿真模塊236可識別功能并訪問特定于該功能的仿真配置寄存器。在其它實施中,配置事務(wù)可來自多個來源中的一個,諸如可運行不同操作系統(tǒng)的數(shù)個虛擬機中的一個。在這樣的實施中,仿真模塊236可識別來源,且訪問可被指定或適于該來源的仿真配置寄存器。存儲器240提供對可由本地硬件230對其進行操作的數(shù)據(jù)的存儲。存儲器模塊240可包括DRAM(例如,SDRAM、DDR-SDRAM)、SRAM、快閃或某一其它存儲器類型或其任何組合。在一些實施方案中,存儲器240可實施為外部存儲器模塊或?qū)嵤橹苓呇b置200的內(nèi)部存儲器或其組合。存儲器模塊240可存儲仿真配置空間242。仿真配置空間242可包括對針對任何數(shù)量的周邊裝置定義的所有或一些配置寄存器地址空間的表示。在一些實施中,仿真配置空間242包括可影響周邊裝置的功能的操作的配置空間。在一些實施中,仿真配置空間242不包括可以是實施總線協(xié)議的所有周邊裝置的基本和/或共同的原生配置空間,或者可不必或不便仿真的原生配置空間。仿真配置寄存器可包括如下的字段:僅讀取,讀取后即清除(clear-on-read)(或具有“讀取后即清除”位),可以是可讀取且可寫入兩者、可以是寫入0便清除(write-zero-to-clear)(或具有“寫入0便清除”位),和/或?qū)懭?便設(shè)定(write-one-to-set)(或具有“寫入1便設(shè)定”位)。仿真配置空間242可作為文本文件、源代碼、目標(biāo)代碼、作為腳本和/或可由仿真模塊236讀取的某一其它格式存儲于存儲器240中。在一些實施方案中,仿真配置242可被加密。在一些實施中,仿真配置242可被修改或替換。例如,可(例如)通過因特網(wǎng)上的網(wǎng)站提供額外仿真配置寄存器或仿真配置寄存器的更新版本。在這些實施中,額外或更新的仿真配置寄存器可自因特網(wǎng)下載并上傳至存儲器240。在一些實施中,存儲器240可存儲多個仿真配置空間242,或相同仿真配置空間242的多個版本。圖3示出根據(jù)一些實施方案的周邊裝置300的PCIe實施的示例。圖3的PCIe周邊裝置300可包括PCIe核心310、配置管理模塊320、本地硬件330以及存儲器340。PCIe周邊裝置300可通過總線302與計算系統(tǒng)通信??偩€302可實施PCIe協(xié)議。PCIe核心310可包括支持使用PCIe的總線上的通信所需的功能性的至少一些。PCIe核心310可包括總線接口314??偩€接口314可實施管理傳入及傳出事務(wù)的網(wǎng)絡(luò)協(xié)議層314a至314d。對于出站事務(wù),事務(wù)層314a可形成具有與由事務(wù)發(fā)起者(諸如,PCIe核心310本身、配置管理模塊320或本地硬件330)提供的信息的數(shù)據(jù)包。數(shù)據(jù)鏈路層314b可將額外信息(例如,可由事務(wù)的接收者使用來驗證信息的完整性的數(shù)據(jù)包標(biāo)頭信息和/或錯誤檢查信息)添加至數(shù)據(jù)包。介質(zhì)訪問層314c可提供尋址信息,諸如事務(wù)的來源及目的地的物理地址。物理層314d可將數(shù)據(jù)包編碼成電信號并將數(shù)據(jù)包傳輸至總線302上。對于傳入事務(wù),物理層314d自總線302接受數(shù)據(jù)包并將數(shù)據(jù)包解碼。介質(zhì)訪問層314c可處理事務(wù)的來源及目的地地址。數(shù)據(jù)鏈路層314b可可解析數(shù)據(jù)包標(biāo)頭信息并檢查錯誤。事務(wù)層314a可將包含于數(shù)據(jù)包中的信息轉(zhuǎn)變成可由PCIe核心310和/或本地處理器330處理的格式。PCIe核心310也可包括原生配置空間312。原生配置空間312可包括與基本功能性相關(guān)聯(lián)和/或可以是所有基于PCIe的周邊裝置所共同和/或可不必或不便仿真的配置寄存器。這樣的寄存器的示例包括類型0/1共同寄存器標(biāo)頭316、高級錯誤報告能力寄存器312a、消息信號中斷擴展(MSI-X)能力寄存器312b以及電源預(yù)算能力寄存器312c???例如)在仿真配置空間324中發(fā)現(xiàn)任何剩余配置寄存器空間。在一些實施方案中,也可仿真原生配置空間312。因而,例如,在一些實施方案中,基于PCIe的周邊裝置可使其所有PCI配置空間寄存器被仿真。在一些實施中,PCIe核心310可檢測尋址至原生配置空間312的讀取及寫入事務(wù)。在這樣的實施中,PCIe核心310可服務(wù)被引導(dǎo)至原生配置空間312的配置事務(wù)。此外,在這些實施中,尋址至不在原生配置空間312內(nèi)的配置空間的配置事務(wù)可被引導(dǎo)至配置管理模塊320。在其它實施中,PCIe核心310將所有配置讀取及寫入事務(wù)引導(dǎo)至配置管理模塊320,而不管其是否尋址至原生配置空間312。配置管理模塊320可提供對被引導(dǎo)至配置寄存器的讀取及寫入事務(wù)的管理。在一些實施中,配置管理模塊310可提供事務(wù)記錄。在接收到配置事務(wù)后,PCIe核心310可用配置管理模塊320來記錄事務(wù)。PCIe核心310然后可繼續(xù)其它操作。配置事務(wù)可自記錄讀取并由本地硬件330服務(wù)。本地處理器330可在讀取了事務(wù)時自記錄移除該事務(wù),或可在事務(wù)已經(jīng)執(zhí)行且被響應(yīng)后或以其它方式在記錄中指示該事務(wù)已被服務(wù)或在被服務(wù)的進程中移除該事務(wù)。本地硬件330可包括被調(diào)適以處理配置事務(wù)的一個或多個處理器、一個或多個處理器核心、處理器集群、可編程門陣列或控制邏輯電路。本地硬件330可運行操作系統(tǒng)332。操作系統(tǒng)332可提供用戶模式332a及特權(quán)模式332b。用戶模式332a可執(zhí)行(例如)已經(jīng)加載至PCIe周邊裝置300中的用戶應(yīng)用。特權(quán)模式332b可執(zhí)行系統(tǒng)功能。本地硬件330也可包括操作的安全模式334(例如,ARM安全模式等)。在安全模式334中運行的程序或軟件可與本地硬件330內(nèi)的其它程序隔離。例如,操作系統(tǒng)模塊332和/或在操作系統(tǒng)模塊332之上運行的應(yīng)用可無法訪問在安全模塊334內(nèi)運行的模塊。相反地,在一些實施方案中,在安全模式334內(nèi)運行的程序可無法影響在安全模塊234外部運行的模塊。因此,安全模式334可提供程序可在無來自可在本地硬件330內(nèi)執(zhí)行的其它程序的干涉或干擾的情況下執(zhí)行的環(huán)境。在安全模式334中執(zhí)行的程序可被高度優(yōu)化,和/或可具有高于其它程序的優(yōu)先級。在一些實施方案中,安全模式334可實施為在本地硬件330內(nèi)被邏輯地和/或物理地隔離的硬件和/或軟件區(qū)段。在一些實施方案中,仿真模塊336可實施為本地硬件330中的仿真控制邏輯電路,和/或?qū)嵤樵诎踩J?34中執(zhí)行的仿真軟件。仿真軟件可稱為ConfigSpace仿真軟件(CSES)。仿真模塊336可自配置管理模塊320接收事務(wù)(包括配置事務(wù)),且可服務(wù)這些事務(wù)。例如,服務(wù)配置讀取事務(wù)可包括自仿真配置空間讀取配置寄存器,且用自寄存器讀取的信息來做出響應(yīng)。作為另一示例,服務(wù)配置寫入寄存器可包括更新仿真配置空間中的配置寄存器的內(nèi)容。在一些情形中,可用對完成寫入事務(wù)的確認(rèn)來對配置寫入做出響應(yīng)。在一些實施中,仿真模塊336可接收被引導(dǎo)至周邊裝置的一些或所有配置事務(wù)。在一些實施中,仿真模塊336可確定配置事務(wù)是被引導(dǎo)至原生配置空間312還是仿真配置空間342。當(dāng)配置事務(wù)被引導(dǎo)至原生配置空間312時,仿真模塊336可與PCIe核心310通信以讀取或?qū)懭朐渲眉拇嫫?。在一些實施方案中,配置管理模塊可處理原生配置寄存器訪問而不涉及仿真模塊336。當(dāng)配置讀取被引導(dǎo)至仿真配置342時,仿真模塊336可自仿真配置空間342讀取表示配置寄存器的內(nèi)容的值。當(dāng)配置寫入被引導(dǎo)至仿真配置空間342時,仿真模塊336可寫入或更新仿真配置空間342中的表示配置寄存器的數(shù)據(jù)。在一些實施中,仿真模塊336可本身在內(nèi)部仿真一個或多個配置寄存器。在這樣的實施中,仿真模塊336可讀取或?qū)懭肫鋵ε渲眉拇嫫鞯膬?nèi)部表示,其可不需訪問仿真配置空間342。在一些實施中,仿真模塊336可使用PCI中斷機構(gòu)以處理仿真配置寄存器訪問。例如,仿真模塊336可將PCIe核心0中斷定義為安全中斷,且將處理程序暫存至此中斷。中斷處理程序可以是在接收到中斷時觸發(fā)的獨立軟件功能。當(dāng)觸發(fā)PCIe核心0中斷時,可警告仿真模塊336,且仿真模塊336可開始服務(wù)來自配置管理模塊320的事務(wù)。通過將PCIe核心0中斷定義為安全的,可對不安全模塊(諸如,操作系統(tǒng)模塊332)隱藏或遮蔽該中斷。在一些實施方案中,安全中斷也可中斷不安全中斷處理程序。存儲器340提供對可由本地硬件330對其進行操作的數(shù)據(jù)的存儲。存儲器340可包括DRAM(例如,SDRAM、DDR-SDRAM等)、SRAM、閃存或某一其它存儲器類型或其組合。在一些實施方案中,存儲器340可實施為外部存儲器模塊,或?qū)嵤橹苓呇b置200的內(nèi)部存儲器,或其組合。存儲器340可存儲仿真配置空間342。仿真配置空間342可包括對4KB的PCIe配置地址中的所有或一些的表示。在一些實施中,仿真配置空間342可包括PCIe擴展能力寄存器。例如,仿真配置空間342可包括高級錯誤報告能力寄存器、虛信道能力寄存器、裝置序列號寄存器和/或電源預(yù)算能力寄存器??商娲蛄硗?,仿真配置空間342可包括SR-IOV擴展能力寄存器。在這樣的情形中,仿真配置空間342可包括允許控制SR-IOV物理及虛擬功能的能力寄存器。在下文中進一步詳細(xì)論述SR-IOV。在一些實施中,可動態(tài)地替換和/或修改仿真配置空間342。例如,可在仿真配置空間342中添加或移除PCIe擴展能力。在其它實施中,PCIe周邊裝置300可包括適于不同虛擬機、不同操作系統(tǒng)和/或不同裝置類型的多個仿真配置空間。表2示出仿真配置空間342的示例。偏移描述與仿真配置空間的開始的偏移。偏移給定為12位十六進制值。仿真配置可包括關(guān)于每個仿真配置寄存器的其它信息。例如,一些仿真配置寄存器可標(biāo)記為僅讀取、僅寫入,或僅可由根復(fù)合體讀取/寫入。作為另一示例,一些仿真配置寄存器可設(shè)有默認(rèn)或重置值。在一些實施方案中,仿真配置空間342可包括對表2中所示的多組配置寄存器的表示。例如,在一些實施方案中,PCIe周邊裝置300可用以實施可提供對一個或多個PCI端點的連接性的PCI交換機、網(wǎng)橋或集線器。在這樣的情景中,仿真配置空間342可包括對交換機、網(wǎng)橋或集線器的配置寄存器以及用于與交換機、網(wǎng)橋或集線器相關(guān)聯(lián)的每個端點裝置的配置寄存器的表示。表2:示例性仿真配置如上文所述及,配置事務(wù)記錄可被實施以追蹤傳入配置事務(wù)。配置事務(wù)記錄可維持一些或所有傳入配置讀取及寫入事務(wù)的記錄。在一些實施中,配置事務(wù)記錄可使用數(shù)個寄存器來記錄給定配置事務(wù)。這些寄存器可包括地址寄存器、數(shù)據(jù)寄存器以及完成寄存器??稍谂渲米x取或?qū)懭胧聞?wù)被傳輸至配置事務(wù)記錄時設(shè)定地址寄存器。地址寄存器可包含識別其是入站配置事務(wù)的目標(biāo)的配置寄存器所需的信息。在一些情形中,地址寄存器可在由仿真模塊336讀取時被清除。作為示例,地址寄存器可包括信息,諸如指示地址寄存器是否有效的有效指示符、配置類型(例如,類型0或類型1)、目標(biāo)寄存器偏移、指示事務(wù)是讀取訪問還是寫入訪問的讀取/寫入指示符、指示哪個物理或虛擬功能是配置訪問的目標(biāo)的裝置功能字段以及目標(biāo)總線編號。在一些實施方案中,設(shè)定有效指示符可觸發(fā)對仿真模塊的中斷或低延時通知以請求仿真模塊服務(wù)配置訪問請求。數(shù)據(jù)寄存器可存儲與配置事務(wù)相關(guān)聯(lián)的數(shù)據(jù)。對于配置寫入事務(wù),數(shù)據(jù)寄存器可存儲將被寫入的數(shù)據(jù)。對于配置讀取事務(wù),數(shù)據(jù)寄存器可存儲由仿真模塊336自目標(biāo)配置寄存器讀取的數(shù)據(jù)。完成寄存器指示配置讀取或?qū)懭胧聞?wù)的狀態(tài)。可在仿真模塊336完成配置事務(wù)時由仿真模塊336寫入至完成寄存器。被寫入至完成寄存器的值可用以格式化發(fā)送至配置事務(wù)的發(fā)起者(例如,根復(fù)合體)的完成響應(yīng)。例如,完成寄存器中的值可用以產(chǎn)生完成指示。完成指示可識別總線編號、裝置編號和/或周邊裝置的功能編號,以及接受并服務(wù)配置事務(wù)的功能。在一些情形中,當(dāng)仿真模塊336寫入至完成寄存器時,待決的配置事務(wù)被視為完成且可被釋放。在一些情形中,可針對每個入站配置事務(wù)僅寫入一次完成寄存器。作為示例,完成寄存器可包括諸如完成狀態(tài)、目標(biāo)總線編號、目標(biāo)裝置編號及目標(biāo)功能編號的信息。完成狀態(tài)可指示配置事務(wù)是否已經(jīng)成功地完成、配置事務(wù)是否無效(例如,目標(biāo)功能或目標(biāo)總線編號可不存在)、配置事務(wù)是否應(yīng)重試(例如,周邊裝置可能不接受配置事務(wù),且配置事務(wù)應(yīng)由事務(wù)的發(fā)起者再次傳輸)或配置事務(wù)是否中止(例如,周邊裝置接受但可能不完成配置事務(wù))。目標(biāo)總線編號可指示將在完成識別符中使用哪個總線編號(例如,返回在地址寄存器中提供的目標(biāo)總線編號,或返回與目標(biāo)功能相關(guān)聯(lián)的總線編號)。例如,周邊裝置可駐留在總線編號1上。入站配置事務(wù)可以是配置類型1,且可被引導(dǎo)至總線編號2。在這種情形中,仿真模塊可返回總線編號1或2。目標(biāo)裝置編號可指示將在完成識別符中使用哪個目標(biāo)裝置編號(例如,返回在地址寄存器中提供的目標(biāo)裝置編號,或返回與目標(biāo)功能相關(guān)聯(lián)的目標(biāo)裝置編號)。目標(biāo)功能編號可指示將在完成識別符中使用哪個目標(biāo)功能編號(例如,返回在地址寄存器中提供的目標(biāo)功能編號,或返回端口功能編號)。除了靈活性和可配置性外,使用仿真配置技術(shù)的周邊裝置也可提供增強的安全性,其對不被仿真的周邊裝置可能是不可得的。例如,周邊裝置可經(jīng)受拒絕服務(wù)攻擊。在這樣的攻擊中,惡意虛擬機可用嘗試導(dǎo)致裝置硬件和/或軟件失敗的配置事務(wù)淹沒周邊裝置。然而,具有仿真模塊的周邊裝置可能夠追蹤由虛擬機配置訪問的速率(例如,通過監(jiān)視事務(wù)記錄)。仿真模塊可因此檢測由虛擬機訪問的異常增加,且可拒絕來自該虛擬機的任何進一步訪問。作為另一示例,虛擬機可訪問未經(jīng)初始化或不存在的功能。一般周邊裝置在這樣的情形中可掛斷。然而,仿真模塊可捕獲這樣的訪問,并通過仿真用于未經(jīng)初始化或不存在的功能的配置寄存器或辨識該訪問是不存在的功能而適當(dāng)?shù)刈龀鲰憫?yīng)。仿真模塊可因此防止周邊裝置掛起。作為又一示例,虛擬機可在不適當(dāng)時間發(fā)起對功能的重置。然而,仿真模塊可捕獲并記錄這種基于軟件的重置。仿真模塊可隨后在適當(dāng)時間(例如,在允許完成所有待決事務(wù)之后)處理該重置?;蛘撸抡婺K可簡單地阻擋不適當(dāng)重置。作為最后示例,虛擬機可嘗試無效或不合時宜配置改變。例如,虛擬機可嘗試改變總線鏈路的速度或?qū)挾?。然而,仿真模塊可捕獲所有配置訪問(包括這些不適當(dāng)配置改變),且可拒絕這些無效或不合時宜配置改變訪問。III.配置事務(wù)進程圖4示出服務(wù)配置讀取事務(wù)的周邊裝置400的示例。圖4的周邊裝置400可靈活地仿真其它周邊裝置和/或多個裝置功能。周邊裝置400可包括總線接口核心410、配置事務(wù)記錄單元408、原生配置空間412、仿真模塊430以及存儲器440。總線接口核心410可包括用于與將周邊裝置400連接至計算系統(tǒng)的總線通信的功能性??偩€接口核心410可包括至總線的物理連接,且可提供用以管理至總線的電連接、用以將傳入事務(wù)解碼且將傳出事務(wù)編碼和/或用以管理傳入及傳出事務(wù)中的錯誤的硬件和/或軟件。配置事務(wù)記錄單元408可追蹤傳入配置事務(wù)。配置事務(wù)記錄單元408可維持一些或所有傳入配置讀取及寫入事務(wù)的記錄。該記錄可采取列表或表或列表和/或表的組合的形式。在一些實施中,配置事務(wù)記錄單元408可為傳入配置事務(wù)指派優(yōu)先級,使得一些事務(wù)可早于其它被服務(wù)。在這樣的實施中,配置事務(wù)記錄單元408也可維持一致性,即,確保讀取及寫入以適當(dāng)次序發(fā)生。例如,當(dāng)在針對寄存器的寫入事務(wù)之后接收到相同寄存器的讀取事務(wù)時,寫入事務(wù)必須首先發(fā)生。在其它實施中,配置記錄408將傳入事務(wù)維持于其被接收的次序中。原生配置空間412可包括沒有正在被周邊裝置400仿真的原生配置寄存器。原生配置寄存器通常具有物理地址,且因此可占據(jù)一個或多個地址空間。仿真模塊430可使用被調(diào)適以處理配置事務(wù)的一個或多個處理器、一個或多個處理器核心、處理器集群、可編程門陣列或控制邏輯電路而實施。仿真模塊430可執(zhí)行軟件代碼,諸如操作系統(tǒng)和/或仿真軟件,如上文所描述。在一些實施方案中,仿真軟件的功能性可實施于硬件(例如,控制邏輯電路)中。仿真模塊430可服務(wù)一些或所有傳入配置讀取及寫入事務(wù),包括目標(biāo)為原生配置空間412的事務(wù)及目標(biāo)為仿真配置空間442的事務(wù)兩者。存儲器440提供對可由仿真模塊430操作的數(shù)據(jù)的存儲。存儲器440可存儲仿真配置空間442。仿真配置空間442可包括對針對正被周邊裝置400仿真的一個或多個周邊裝置所定義的一些或所有配置寄存器的表示。在一些實施中,仿真配置空間442可主要包括實現(xiàn)正被仿真的周邊裝置的操作的配置寄存器。仿真配置空間442可以文本文件、源代碼、目標(biāo)代碼、腳本的形式或某一其它格式被存儲。在一些實施方案中,仿真配置空間442可被加密。在一些實施中,存儲器440可包括一個以上仿真配置空間。例如,周邊裝置可正仿真多個其它周邊裝置和/或多個功能。在這樣的情形中,存儲器440可包括用于正被仿真的每個周邊裝置和/或用于正被仿真的每個功能的仿真配置空間。圖4的示例示出在接收到配置讀取事務(wù)時可由周邊裝置400執(zhí)行的步驟。在步驟452處,自總線(例如,自根復(fù)合體或主機)接收配置讀取事務(wù)??偩€接口核心410可接收配置事務(wù),且確定其應(yīng)接受事務(wù)??偩€接口核心410可檢查(例如)事務(wù)中的目標(biāo)總線識別符、裝置識別符、功能識別符和/或地址以做出此確定。周邊裝置400可正仿真一個以上周邊裝置和/或一個以上功能。因而,總線接口核心410可接受針對正被仿真的任何數(shù)量的周邊裝置的事務(wù)。在步驟454處,總線接口核心410可將配置讀取事務(wù)發(fā)送至配置事務(wù)記錄單元408。配置事務(wù)記錄單元408可將讀取事務(wù)添加至其事務(wù)記錄。在一些實施方案中,一旦讀取事務(wù)已經(jīng)記錄,總線接口核心410便可轉(zhuǎn)向其它操作,且不需等待讀取事務(wù)完成。在步驟456處,配置事務(wù)記錄單元408可將中斷發(fā)送至仿真模塊430。仿真模塊430可通過調(diào)用仿真進程而響應(yīng)于中斷。仿真進程可自配置事務(wù)記錄單元408檢索配置事務(wù),并服務(wù)該配置事務(wù)。在一些實施方案中,仿真模塊430可每當(dāng)其準(zhǔn)備好服務(wù)配置事務(wù)時或根據(jù)中斷例程服務(wù)配置事務(wù)。在一些實施方案中,仿真模塊430可包括用于服務(wù)配置事務(wù)的專用資源。例如,仿真模塊430可具有被指定用于服務(wù)配置事務(wù)的處理器核心或執(zhí)行線程。另外或可替代,每當(dāng)在步驟454處將事務(wù)發(fā)送至配置事務(wù)記錄時,配置事務(wù)記錄單元408可將中斷發(fā)送至仿真模塊430。該中斷向仿真模塊430通知其應(yīng)行動。在一些情形中,仿真模塊430也可需要遵守由總線指示的時序要求。例如,一些總線協(xié)議可期望周邊裝置將在特定時間內(nèi)響應(yīng)于讀取事務(wù)。可在步驟456處以與在步驟452處總線接口核心410接收配置事務(wù)相同的次序取得或接收配置事務(wù)。或者,配置事務(wù)記錄單元408可重新設(shè)定所記錄事務(wù)的優(yōu)先級,使得首先服務(wù)較高優(yōu)先級事務(wù)。在接收或取得配置讀取事務(wù)后,仿真模塊430可確定事務(wù)是被引導(dǎo)至仿真配置空間442還是原生配置空間412。該確定可基于可位于仿真配置空間或原生配置空間內(nèi)的將被讀取的配置寄存器的地址。在一些情形中,當(dāng)讀取事務(wù)被引導(dǎo)至仿真配置空間442時,仿真模塊430可在步驟458a處自存儲器440中的仿真配置空間442讀取表示目標(biāo)配置寄存器的內(nèi)容的值。在其它情形中,仿真模塊430可確定目標(biāo)配置寄存器沒有正在被仿真且是原生配置空間412的部分。在這樣的情形中,仿真模塊430可在步驟458b處自原生配置空間412讀取配置寄存器的內(nèi)容。接著,在步驟460處,仿真模塊430可產(chǎn)生對配置讀取的響應(yīng)。在一些實施中,仿真模塊430可將所檢索數(shù)據(jù)發(fā)送至總線接口核心410。在這樣的實施中,總線接口核心410可打包讀取數(shù)據(jù)以用于在總線上傳輸,并傳輸打包的數(shù)據(jù)。在其它實施中,仿真模塊430可在將數(shù)據(jù)提供至總線接口核心410之前打包所讀取的數(shù)據(jù)。在步驟462處,仿真模塊430可在步驟462之后更新配置事務(wù)記錄單元408以指示進行了配置讀取事務(wù)。在一些實施中,仿真模塊430可在服務(wù)讀取事務(wù)之后自配置事務(wù)記錄單元408移除讀取事務(wù)。周邊裝置400可以是實施PCI的周邊裝置。當(dāng)周邊裝置400是PCI周邊裝置時,可在下文根據(jù)一些實施方案描述上述步驟。在步驟452處,可(例如)自根復(fù)合體接收配置讀取事務(wù)層數(shù)據(jù)包(TLP)。可在PCIe總線上接收配置讀取TLP,且可由PCIe核心接收該配置讀取TLP。PCIe核心可解包TLP并將配置請求簡化為更易于處理的格式。在步驟454處,PCIe核心可將配置讀取請求傳送至配置事務(wù)記錄。例如,PCIe核心可用配置讀取請求信息來更新配置事務(wù)記錄中的地址寄存器。配置事務(wù)記錄可將配置讀取請求添加至其待決配置事務(wù)的記錄中。在將配置讀取請求傳送至配置事務(wù)記錄之后,PCIe核心可自由執(zhí)行其它操作。在步驟456處,配置事務(wù)記錄可將中斷發(fā)送至仿真模塊。在接收到中斷后,仿真模塊可調(diào)用仿真進程,且配置事務(wù)記錄可等待響應(yīng)。在步驟458a處,仿真模塊可尋找由配置讀取事務(wù)設(shè)為目標(biāo)的仿真配置寄存器。仿真模塊可訪問存儲器中的仿真配置空間,且定位其中的所請求的仿真配置寄存器。在定位所請求的仿真配置寄存器后,仿真模塊可讀取仿真配置寄存器的值。在一些情形中,服務(wù)對仿真配置寄存器的讀取請求可需要來自周邊裝置的硬件的額外信息。在這些情形中,仿真模塊可讀取額外配置寄存器,諸如物理端口配置寄存器或原生配置空間中的寄存器。在步驟460處,仿真模塊可將自仿真配置寄存器讀取的值傳送至配置事務(wù)記錄單元,且將完成狀態(tài)更新為配置事務(wù)記錄單元中的成功完成。在步驟462處,仿真模塊或配置事務(wù)記錄單元將所讀取值傳達至PCIe裝置核心,且PCIe裝置核心隨后打包讀取值并將其傳輸至根復(fù)合體。例如,PCIe裝置核心可將配置完成TLP傳輸至根復(fù)合體。在一些實施方案中,如果無法完成配置讀取請求,則仿真模塊可相應(yīng)地更新完成狀態(tài)。圖5示出服務(wù)配置寫入請求的周邊裝置500的示例。周邊裝置500可靈活地仿真不同周邊裝置和/或多個裝置功能。周邊裝置500可包括總線接口核心510、配置事務(wù)記錄單元508、原生配置空間512、仿真模塊530以及存儲器540??偩€接口核心510可包括用于與將周邊裝置連接至計算系統(tǒng)的總線通信的功能性。配置事務(wù)記錄單元508可追蹤傳入配置事務(wù)。配置事務(wù)記錄單元508可維持一些或所有傳入配置讀取及寫入事務(wù)的記錄。原生配置空間512可包括不正被周邊裝置500仿真的配置寄存器。仿真模塊530可使用被調(diào)適以處理配置事務(wù)的一個或多個處理器、一個或多個處理器核心、處理器集群、可編程門陣列或控制邏輯電路而實施。仿真模塊530可執(zhí)行軟件代碼,諸如操作系統(tǒng)和/或仿真模塊。在一些實施方案中,仿真軟件的功能性可實施于硬件(例如,控制邏輯電路)中。存儲器540提供對可由仿真模塊530操作的數(shù)據(jù)的存儲。存儲器540可包括一個或多個仿真配置空間。仿真配置空間542可包括針對將被仿真的周邊裝置和/或功能所定義的一些或所有配置寄存器的表示。在一些實施方案中,存儲器540可包括用于將被仿真的每個周邊裝置和/或功能的仿真配置空間542。圖5中所示的示例示出在接收到配置寫入事務(wù)時可由周邊裝置500執(zhí)行的步驟。在步驟552處,自總線(例如,自根復(fù)合體或主機)接收配置寫入請求??偩€接口核心510可接收配置寫入事務(wù),并確定其應(yīng)接受事務(wù)。周邊裝置500可正仿真一個以上周邊裝置和/或功能。因而,裝置核心510可接受針對正被仿真的任何數(shù)量的周邊裝置的事務(wù)。在步驟554處,總線接口核心510可將配置寫入事務(wù)發(fā)送至配置事務(wù)記錄508。配置事務(wù)記錄508可將配置寫入事務(wù)添加至其事務(wù)記錄。一旦配置寫入事務(wù)已經(jīng)被記錄,總線接口核心510便可轉(zhuǎn)向其它操作,且不需要等待寫入事務(wù)完成。在步驟556處,配置事務(wù)記錄508可將中斷發(fā)送至仿真模塊530。仿真模塊530可通過調(diào)用仿真模塊而響應(yīng)于中斷。仿真模塊530可自配置事務(wù)記錄508檢索配置事務(wù),并服務(wù)該配置事務(wù)。仿真模塊530可每當(dāng)其準(zhǔn)備好服務(wù)配置事務(wù)時服務(wù)配置事務(wù)。在一些實施方案中,仿真模塊530可包括用于服務(wù)配置事務(wù)的專用資源。在一些情形中,每當(dāng)在步驟554處將配置事務(wù)添加至配置事務(wù)記錄單元508時,仿真模塊530可接收中斷。在接收或取得配置寫入事務(wù)后,仿真模塊530可確定事務(wù)是被引導(dǎo)至仿真配置空間542還是原生配置空間512。在一些情形中,當(dāng)配置寫入事務(wù)被引導(dǎo)至仿真配置空間542時,進程集群530可在步驟558a處用寫入數(shù)據(jù)來更新仿真配置空間542中的目標(biāo)配置寄存器的表示。當(dāng)寫入事務(wù)被引導(dǎo)至原生配置空間512時,仿真模塊530可在步驟558b處以寫入數(shù)據(jù)更新原生配置空間512中的配置寄存器。在步驟562處,仿真模塊530可更新配置事務(wù)記錄單元508以指示進行了配置寫入事務(wù)。在一些實施中,仿真模塊530可在服務(wù)寫入事務(wù)之后自配置事務(wù)記錄單元508移除寫入事務(wù)。在一些實施中,仿真模塊530可產(chǎn)生對寫入事務(wù)的響應(yīng),以指示寫入事務(wù)已經(jīng)成功地完成。在這些實施中,仿真模塊530可指令總線接口核心510產(chǎn)生響應(yīng)。或者,仿真模塊530可本身產(chǎn)生響應(yīng),且將響應(yīng)傳輸至總線。周邊裝置500可以是實施PCI的周邊裝置。當(dāng)周邊裝置500是PCI周邊裝置時,可在下文根據(jù)一些實施方案描述上述步驟。在步驟552處,可自(例如)根復(fù)合體接收配置寫入TLP??稍赑CIe總線上接收配置寫入TLP,且可由PCIe核心接收該配置寫入TLP。PCIe核心可解包TLP并將配置請求簡化為更易于處理的格式。在步驟554處,PCIe核心可(例如)通過用配置寫入請求信息來更新地址寄存器而將配置寫入請求傳送至配置事務(wù)記錄。配置事務(wù)記錄可將配置寫入請求添加至其待決配置事務(wù)的記錄。在將配置寫入請求傳送至配置事務(wù)記錄單元之后,PCIe核心可自由執(zhí)行其它操作。在步驟556處,配置事務(wù)記錄單元可將中斷發(fā)送至仿真模塊。在接收到中斷后,仿真模塊可調(diào)用仿真模塊,且配置事務(wù)記錄單元可等待響應(yīng)。在步驟558a處,仿真模塊可尋找將由配置寫入事務(wù)寫入的仿真配置寄存器。仿真模塊可訪問存儲器中的仿真配置空間,且定位其中的所請求的仿真配置寄存器。在定位目標(biāo)仿真配置寄存器后,仿真模塊可用寫入數(shù)據(jù)來更新仿真配置空間中的仿真配置寄存器。在一些情形中,寫入至仿真配置寄存器的值可需要對周邊裝置500的硬件的更新。在這些情形中,仿真模塊可寫入額外配置寄存器,諸如物理端口配置寄存器或原生配置空間中的寄存器。在步驟562處,仿真模塊可更新配置事務(wù)記錄中的完成狀態(tài)。該完成狀態(tài)可指示配置寫入事務(wù)已經(jīng)成功地完成。配置事務(wù)記錄可將完成狀態(tài)傳達至PCIe裝置核心。PCIe裝置核心可向根復(fù)合體指示成功完成。例如,PCIe裝置核心可將配置完成TLP傳輸至根復(fù)合體。在一些實施方案中,如果無法完成配置寫入請求,則仿真模塊可相應(yīng)地更新完成狀態(tài)。圖4至圖5示出具有仿真配置空間的周邊裝置可如何服務(wù)配置讀取及寫入事務(wù)的示例。仿真配置空間可被修改和/或替換,由此修改和/或替換正被仿真的周邊裝置和/或功能。此外,周邊裝置的仿真配置空間可包括多個仿真配置,使得周邊裝置可仿真多個裝置和/或功能。仿真技術(shù)可因此實現(xiàn)具有靈活且可調(diào)適配置空間的周邊裝置的構(gòu)造,且在一些情形中,減少或消除對周邊裝置的固定且不可改變配置定義。IV.SR-IOV圖6示出具有單根輸入/輸出虛擬化(SR-IOV)能力的周邊裝置600的示例。SR-IOV是允許物理資源(例如,單個網(wǎng)絡(luò)接口控制器)呈現(xiàn)為多個資源(例如,六十四網(wǎng)絡(luò)接口控制器)的擴展能力。因此,提供特定功能性的周邊裝置可呈現(xiàn)為提供該功能性的多個裝置。SR-IOV能力周邊裝置的功能可被分類為物理功能(PF)與虛擬功能(VF)。物理功能是可被發(fā)現(xiàn)、管理及操控的裝置的完整特征功能。物理功能具有可用以配置或控制周邊裝置的配置資源。物理功能包括非虛擬化裝置將具有的相同配置地址空間及存儲器地址空間。物理功能可具有與物理功能相關(guān)聯(lián)的數(shù)個虛擬功能。虛擬功能類似于物理功能,但其是缺乏配置資源且通常受其基本物理功能的配置控制的輕量功能。物理功能和/或虛擬功能中的每個都可被指派給在計算系統(tǒng)上運行的執(zhí)行(諸如,例如,虛擬機)的各自線程。圖6中所示的示例性SR-IOV能力裝置600可包括PCIe端口602、內(nèi)部路由604及606a至606m、一個或多個物理功能610a至610m以及每物理功能610a至610m一個或多個虛擬功能(例如,620a至620c、621a至621c)。PCIe端口602可提供至PCIe總線的物理連接。內(nèi)部路由604及606a至606m可將總線事務(wù)引導(dǎo)至適當(dāng)物理功能610a至610m,以及虛擬功能。每個物理功能610a至610m可通過內(nèi)部路由604連接至PCIe端口602。每個虛擬功能可通過第一層級的內(nèi)部路由606a至606m且然后通過第二層級的內(nèi)部路由604而連接至PCIe端口602。內(nèi)部路由604可提供每個物理功能610a至610m與PCIe端口602或任何虛擬功能6120a至6120f與PCIe端口602之間的點對點連接性。每個物理功能610a至610m可與物理資源相關(guān)聯(lián)以實施其各自物理功能。例如,PF0610a可與物理資源618a相關(guān)聯(lián),且PFm610m可與物理資源618m相關(guān)聯(lián)。虛擬功能中的每個也可與各自物理資源相關(guān)聯(lián)以實施虛擬功能的功能性。每個物理功能610a至610m也可包括各自配置資源612a至612m以及各自地址轉(zhuǎn)譯高速緩存(ATC)614a至614m。配置資源612a至612m中的每個都可包括(例如)4KB配置地址空間。地址轉(zhuǎn)譯高速緩存614a至614m中的每個都可存儲新近使用的地址轉(zhuǎn)譯。物理功能610a至610m可在對計算系統(tǒng)可見的地址空間不同于所附接周邊裝置的物理地址空間時提供地址轉(zhuǎn)譯。例如,訪問位置的虛擬機可使用被轉(zhuǎn)譯為物理地址的虛擬地址。在一些實施方案中,可在周邊裝置的仿真配置空間中仿真與SR-IOV相關(guān)聯(lián)的配置寄存器。每個物理功能可包括特定數(shù)量的基地址寄存器(BAR)?;刂芳拇嫫魇侵付ㄎ锢砉δ艿腎/O的地址范圍和/或存儲器地址范圍的配置寄存器。存儲于基地址寄存器中的值可根據(jù)需要進行修改,以改變指派給物理功能的地址空間?;刂芳拇嫫骺砂ㄔ诜抡媾渲每臻g中。仿真配置空間可包括(例如)對以下的表示:與物理功能相關(guān)聯(lián)的六個BAR、用于SR-IOV能力的六個BAR以及存儲擴展只讀存儲器(ROM)的地址(在其中周邊裝置并入裝置ROM的情形中)的一個BAR。在一些實施中,物理功能的仿真配置空間的基地址寄存器可具有默認(rèn)值。物理功能仿真配置空間也可包括SR-IOV能力寄存器的表示。在一些情形中,SR-IOV能力寄存器可處于可自物理功能仿真配置空間中的能力清單讀取的偏移??商娲蛄硗猓抡婺K可維持該偏移的本地副本,使得仿真模塊可訪問SR-IOV能力寄存器而無需首先讀取能力清單。在一些實施中,對SR-IOV能力寄存器的設(shè)定(例如,配置寫入)的改變可需要停用虛擬功能。例如,對虛擬功能的數(shù)目和/或用于虛擬功能的基地址寄存器的改變可需要停用虛擬功能。在一些情形中,停用虛擬功能以及重新啟用虛擬功能可導(dǎo)致重置虛擬功能。當(dāng)SR-IOV能力寄存器中的設(shè)定改變時,物理功能可重置所有作用的虛擬功能。物理功能可進一步讀取修改的SR-IOV能力寄存器,且確定哪個設(shè)定已經(jīng)改變。物理功能然后可(如果需要)基于SR-IOV能力寄存器中的修改設(shè)定而更新虛擬功能的配置。在一些實施中,用于物理功能及其相關(guān)聯(lián)虛擬功能的仿真配置空間可以是被組織至處于第一地址偏移的物理功能配置空間、處于第二地址偏移的虛擬功能配置空間以及處于第三地址偏移的額外配置映像的配置映像的部分。用于SR-IOV的仿真配置空間可包括至少三個組分:用于每個物理功能的SR-IOV能力配置空間;用于維持每個虛擬功能的狀態(tài)及能力的配置空間;以及用于SR-IOV基地址寄存器(BAR)的配置空間。在一些實施中,可通過捕捉并處理到達PCIe核心的配置空間訪問來處理對物理功能仿真配置及虛擬功能仿真配置的訪問。在一些實施中,可(例如)通過在原生配置空間中保留至少一對基地址寄存器以使用原生配置空間中的基地址寄存器而實施SR-IOV基地址寄存器。在一些實施方案中,利用對應(yīng)物理功能及相關(guān)聯(lián)虛擬功能而將對配置空間中的特定位(諸如,功能層級重置(FLR)、總線主控啟用(BME)、存儲器空間啟用(MSE)等)的改變傳達至應(yīng)用。例如,應(yīng)用可接收并確認(rèn)FLR請求,且仿真模塊可推遲對針對功能待決的FLR的任何事務(wù)做出響應(yīng)直至應(yīng)用確認(rèn)FLR完成為止。應(yīng)用可在執(zhí)行任何命令之前檢查每個功能(FLR、BME、MSE等)的狀態(tài)。應(yīng)用可向仿真模塊通知是否存在針對每個功能的待決事務(wù),且檢查被配置至配置空間的各個設(shè)定(諸如,BAR、虛擬功能數(shù)目等)。在一些實施方案中,物理功能及相關(guān)聯(lián)虛擬功能的狀態(tài)(也可稱為功能性質(zhì))可維持于仿真配置空間中且被傳達至應(yīng)用或仿真模塊。用于追蹤每個功能的狀態(tài)的存儲器空間的大小可以是(例如)每物理或虛擬功能4字節(jié)整數(shù)。第一整數(shù)可提供物理功能的狀態(tài),且第二整數(shù)可提供第一虛擬功能的狀態(tài),等等。每個功能的狀態(tài)可包括不需要即時應(yīng)用響應(yīng),但是應(yīng)用應(yīng)在I/O處理期間檢測的性質(zhì)的信息。例如,如果功能是待決FLR,則應(yīng)丟棄針對其接收的任何命令。作為另一示例,如果BME未設(shè)定,則應(yīng)用應(yīng)避免公布針對該功能的DMA事務(wù)。在一些實施方案中,每個功能的狀態(tài)可提供諸如以下的信息:是否啟用該功能(可總是啟用物理功能)、該功能是否具有FLR待決、是否啟用MSE(針對物理功能)、是否啟用BME以及是否啟用MSI-X。下文提供進行功能層級重置的示例。功能層級重置提供用于重置特定物理功能及其相關(guān)聯(lián)虛擬功能的機構(gòu)。一般而言,重置物理功能可觸發(fā)對與物理功能相關(guān)聯(lián)的虛擬功能的重置。功能層級重置是漸進機構(gòu),且允許虛擬及物理功能完成待決操作并進入安靜或閑置狀態(tài)。一旦功能處于靜止?fàn)顟B(tài)中,便可對其進行重置。仿真模塊可接收識別物理功能以重置的功能層級重置請求。相關(guān)聯(lián)虛擬功能可首先進入靜止?fàn)顟B(tài)。仿真模塊可指示正在通過設(shè)定虛擬功能的功能性質(zhì)中的FLR位來重置虛擬功能。仿真模塊可接著將FLR消息發(fā)送至應(yīng)用隊列,且將以“不被支持請求”響應(yīng)而對虛擬功能的任何進一步請求做出響應(yīng)直至應(yīng)用確認(rèn)FLR為止。一旦虛擬功能已經(jīng)完成任何待決事務(wù),應(yīng)用便將確認(rèn)功能層級重置請求。應(yīng)用然后可將消息發(fā)送至仿真模塊的隊列。當(dāng)仿真模塊接收配置訪問請求時,仿真模塊輪詢隊列且接收FLR確認(rèn)。仿真模塊然后可響應(yīng)于對虛擬功能的進一步請求??筛绿摂M功能的狀態(tài)或性質(zhì)。例如,可停用MSI-X及BME。對于物理功能,在接收功能層級重置后,仿真模塊可經(jīng)由MSE及BME狀態(tài)位停用存儲器空間及總線主控器。此外,仿真模塊可將所有仿真及原生配置寄存器還原為默認(rèn)值。仿真模塊可進一步將FLR消息發(fā)送至應(yīng)用隊列,且將以“不被支持請求”響應(yīng)對物理功能的任何進一步請求做出響應(yīng)直至應(yīng)用以其它方式指令為止。應(yīng)用可重置其物理功能數(shù)據(jù)結(jié)構(gòu)及待決事務(wù)隊列。在完成這些操作后,應(yīng)用可通過將消息發(fā)送至仿真模塊的隊列來確認(rèn)功能層級重置請求。當(dāng)仿真模塊接收配置訪問請求時,仿真模塊輪詢隊列且接收FLR確認(rèn)。仿真模塊然后可響應(yīng)于對物理功能的進一步請求??赏S门c物理功能相關(guān)聯(lián)的所有虛擬功能直至由根復(fù)合體重新啟用為止。以下示例說明由周邊裝置對SR-IOV能力的仿真。周邊裝置可包括(例如)被指定為PF0的一個物理功能。用于PF0的仿真配置包括SR-IOV擴展能力寄存器。此外,PF0可由周邊裝置用來發(fā)現(xiàn)、配置及管理與PF0相關(guān)聯(lián)的虛擬功能。一般而言,仿真SR-IOV寄存器可以與由SR-IOV協(xié)議定義的相同的默認(rèn)值上傳至周邊裝置。在一些實施中,SR-IOV寄存器可以其它值上傳。例如,被指定為PF0的虛擬功能的總數(shù)目可設(shè)定為4K,對仿真SR-IOV寄存器內(nèi)的第一虛擬功能的默認(rèn)偏移可設(shè)定為257,且默認(rèn)虛擬功能步幅可設(shè)定為1。在該示例中,虛擬功能可包括MSI-X能力。此外,物理功能及虛擬功能兩者可包括高級路由識別(ARI)能力。ARI提供允許周邊裝置支持八個以上功能的機構(gòu)。支持ARI的周邊裝置可將PCI配置標(biāo)頭中的裝置ID字段解譯為功能編號的部分。這為周邊裝置提供用以支持高達256個功能的能力。在一些實施中,SR-IOV控制寄存器指示是否啟用ARI能力階層。啟用ARI能力階層允許(例如)虛擬功能使用功能數(shù)目為8至255。ARI能力階層設(shè)定也指示已經(jīng)在根復(fù)合體中或在緊靠周邊裝置上游的交換機中啟用ARI。根復(fù)合體可設(shè)定ARI能力階層設(shè)定以匹配根復(fù)合體中或交換機中的ARI轉(zhuǎn)送啟用設(shè)定。周邊裝置可使用ARI能力階層設(shè)定的配置來確定第一虛擬功能的偏移。例如,對于ARI及非ARI模式兩者,對第一虛擬功能的默認(rèn)偏移可設(shè)定為257。一般而言,在由根復(fù)合體列舉包括于計算系統(tǒng)中的PCI階層之前,不指派總線及裝置編號。在列舉進程期間,仿真模塊可制止對不以PF0為目標(biāo)的配置訪問做出響應(yīng)。這是因為周邊裝置可不期望給根復(fù)合體留下周邊裝置包括一個以上物理功能的印象。在計算系統(tǒng)中的功能及裝置已經(jīng)被根復(fù)合體映射之后,根復(fù)合體可啟用ARI能力階層設(shè)定,以及設(shè)定SR-IOV配置寄存器中的虛擬功能啟用設(shè)定。在一些情形中,仿真模塊可捕獲啟用虛擬功能的事務(wù)。在這些情形中,一旦虛擬功能已經(jīng)啟用,仿真模塊便可能夠接受目標(biāo)為總線編號、裝置編號及除指派給PF0外的功能編號的配置事務(wù)。在一些實施中,周邊裝置可仿真位于比針對物理功能的總線編號高的總線編號上的虛擬功能。在這些實施中,對虛擬功能的配置訪問可以是配置類型1,這意指配置訪問應(yīng)橋接至較高編號總線。表3提供可如何處理該示例中的各個配置事務(wù)的示例。配置事務(wù)可以是配置類型0(被引導(dǎo)至本地總線)或配置類型1(被引導(dǎo)至較高層級總線,且應(yīng)經(jīng)橋接以便到達該總線)。目標(biāo)總線可以是示例性周邊裝置位于其上者,或可以是較高總線編號。給定配置類型及目標(biāo)總線,該表指示配置事務(wù)是否可以物理功能和/或任何相關(guān)聯(lián)虛擬功能為目標(biāo)。最后,該表指示周邊裝置可如何響應(yīng)于這些配置事務(wù)。表3:示例性配置事務(wù)和響應(yīng)。在配置事務(wù)以不指派給物理功能或虛擬功能中的任何的總線編號為目標(biāo)的情形中,周邊裝置可以不被支持請求做出響應(yīng)。表4提供針對不同數(shù)目的虛擬功能的總線指派的示例。表4:示例性總線分配??赏ㄟ^讀取物理及虛擬功能的仿真配置獲知總線指派以及哪些物理及虛擬功能是可用的。當(dāng)接收到針對不存在的功能的配置事務(wù)時,仿真模塊可以不被支持請求響應(yīng)做出響應(yīng)。表5提供基于是否啟用虛擬功能以及是否啟用ARI能力階層的響應(yīng)的示例。表5:各種配置組合的示例性響應(yīng)。V.方法圖7至圖9示出用于仿真周邊裝置的配置空間的方法的實施方案。這些方法可由上文所描述的系統(tǒng)實施。圖7示出用于服務(wù)配置訪問請求的進程700??捎砂ǚ抡媾渲每臻g的周邊裝置接收配置訪問請求。仿真配置空間可允許周邊裝置仿真一個或多個不同周邊裝置和/或功能。配置訪問請求可以是用以讀取配置寄存器和/或?qū)懭肱渲眉拇嫫鞯恼埱?。在步驟702處,周邊裝置可接收配置訪問請求??赏ㄟ^總線接收配置訪問請求。配置訪問請求可包括識別配置訪問請求的目標(biāo)的信息。例如,配置訪問請求可包括總線識別符、裝置識別符、功能識別符和/或地址。該識別信息可指示周邊裝置是否應(yīng)接受并服務(wù)配置訪問請求。在一些實施中,周邊裝置可仿真多個周邊裝置和/或功能。在這樣的實施中,周邊裝置可接受針對一個以上周邊裝置和/或功能的配置訪問請求。在步驟706處,周邊裝置可確定配置訪問請求是針對除周邊裝置的原生配置空間外的配置空間。配置訪問請求可以是針對處于正被仿真的地址空間中的配置寄存器??梢圆煌谟蛇M程700所示出的方式處理針對原生配置空間的配置訪問請求。例如,可由周邊裝置中的原生硬件(諸如,周邊裝置的總線接口核心)處理對原生配置的配置訪問請求。在步驟710處,周邊裝置可自仿真配置空間檢索仿真配置。仿真配置可包括對一個或多個配置寄存器的表示。在一些實施中,仿真配置空間包括仿真配置標(biāo)頭和/或用于一個以上功能的寄存器(其可稱為仿真配置)。在這樣的實施中,周邊裝置可確定針對配置訪問請求的目標(biāo)功能,且檢索適當(dāng)仿真配置。在步驟712處,周邊裝置可使用仿真配置服務(wù)配置訪問請求。服務(wù)配置訪問請求可包括識別配置訪問請求正請求對其訪問的寄存器。在一些實施中,服務(wù)配置訪問請求可包括將仿真配置提供給配置訪問請求的來源。在這樣的實施中,周邊裝置可自仿真配置讀取對所識別配置寄存器的表示。在其它實施中,服務(wù)配置訪問請求可包括更新仿真配置。在這樣的實施中,周邊裝置可寫入或更新對仿真配置中的所識別配置寄存器的表示。圖8示出用于服務(wù)用以讀取配置寄存器的配置訪問請求的進程800的示例。使用PCI作為可由周邊裝置實施的總線協(xié)議的示例來示出進程800。周邊裝置可正在實施PCI仿真配置空間。PCI仿真配置空間可允許周邊裝置仿真一個或多個PCI裝置和/或功能。在一些實施方案中,進程800可用其它總線協(xié)議實施(諸如,在周邊裝置正在使用經(jīng)定制以用于不同總線協(xié)議的仿真配置空間的情形中)。在步驟802處,周邊裝置的PCI核心可自根復(fù)合體接收PCI配置訪問請求。配置訪問請求可包括識別配置訪問請求的目標(biāo)的信息。識別信息可指示周邊裝置是否應(yīng)接受并服務(wù)配置訪問請求。周邊裝置可仿真多個周邊裝置和/或功能。在這樣的實施中,周邊裝置可接受針對一個以上周邊裝置和/或功能的配置訪問請求。在步驟804處,周邊裝置的PCI核心可將PCI配置訪問請求發(fā)送至周邊裝置中的配置管理模塊。配置管理模塊可維持配置訪問請求的記錄。該記錄可保持對已經(jīng)由周邊裝置接收的配置訪問請求的追蹤。在步驟806處,配置管理模塊可確定PCI配置訪問請求以除原生配置空間外的配置空間為目標(biāo)。原生配置空間可包括可不必和/或不期望仿真的用于基本功能性(諸如,總線速度選擇)的配置寄存器??煞抡娉渲每臻g外的配置空間。可使用仿真配置標(biāo)頭表示仿真配置空間。在步驟808處,周邊裝置的配置管理模塊可將低延時通知(例如,中斷請求)發(fā)送至周邊裝置中的仿真模塊(其可實施為(例如)處理器、控制邏輯電路等)。中斷可向周邊裝置中的仿真模塊通知已經(jīng)接收了配置訪問請求,和/或仿真模塊應(yīng)服務(wù)配置訪問請求。在步驟810處,周邊裝置的仿真模塊可響應(yīng)于中斷請求(例如,通過執(zhí)行配置空間仿真軟件以處理配置訪問請求)。仿真模塊可自仿真配置空間檢索仿真配置。在一些實施中,周邊裝置可正在仿真一個或多個周邊裝置和/或功能。在這樣的實施中,配置訪問請求可包括對目標(biāo)仿真周邊裝置和/或功能的識別。此外,配置空間仿真軟件可檢索用于目標(biāo)仿真周邊裝置和/或功能的配置。在一些實施中,將仿真配置空間存儲于DRAM中,或可內(nèi)部地仿真該仿真配置空間。永久性存儲器也可用以存儲仿真配置空間,使得仿真配置空間在停電期間保留于存儲器中。在一些實施方案中,存儲于永久性存儲器中的仿真配置空間可在啟動時加載至DRAM或本地存儲器以提供對仿真配置空間的較快速訪問。在一些實施中,在隔離環(huán)境中執(zhí)行配置空間仿真軟件。在隔離環(huán)境中,配置空間仿真軟件可能夠安全地執(zhí)行,而無來自其它軟件的干涉或干擾。在步驟812處,可使用所檢索仿真配置服務(wù)PCI配置訪問請求。在一些實施中,配置訪問請求可以是配置讀取請求。在這樣的實施中,進程800可包括步驟814,在該步驟中,服務(wù)配置訪問請求可包括將所檢索仿真配置發(fā)送至PCI根復(fù)合體。在一些實施方案中,如果正被讀取的仿真配置包括在被讀取后改變其狀態(tài)的寄存器類型(例如,讀取后即清除寄存器,或具有讀取后即清除位),則進程800也可修改作為服務(wù)配置訪問請求的部分的仿真配置的內(nèi)容。圖9示出用于服務(wù)用以寫入配置寄存器的配置訪問請求的進程900的示例。使用PCI作為可由周邊裝置實施的總線協(xié)議的示例來示出進程900。周邊裝置可正在實施PCI仿真系統(tǒng)。PCI仿真系統(tǒng)可允許周邊裝置仿真一個或多個PCI裝置和/或功能。進程900可用其它總線協(xié)議實施(諸如,在周邊裝置正在使用其使用不同總線協(xié)議的仿真系統(tǒng)的情形中)。在步驟902處,周邊裝置的PCI核心可自根復(fù)合體接收PCI配置訪問請求。配置訪問請求可包括識別配置訪問請求的目標(biāo)的信息。識別信息可指示周邊裝置是否應(yīng)接受并服務(wù)配置訪問請求。周邊裝置可仿真多個周邊裝置和/或功能。在這樣的實施中,周邊裝置可接受針對一個以上周邊裝置和/或功能的配置訪問請求。在步驟904處,周邊裝置的PCI核心可將PCI配置訪問請求發(fā)送至周邊裝置中的配置管理模塊。配置管理模塊可維持配置訪問請求的記錄。該記錄可保持對已經(jīng)由周邊裝置接收的配置訪問請求的追蹤。在步驟906處,配置管理模塊可確定PCI配置訪問請求以除原生配置空間外的配置空間為目標(biāo)。原生配置空間可包括可不必和/或不期望仿真的用于基本功能性(諸如,總線速度選擇)的配置寄存器??煞抡娉渲每臻g外的配置空間??墒褂梅抡媾渲脴?biāo)頭表示仿真配置空間。在步驟908處,周邊裝置的配置管理模塊可將低延時通知(例如,中斷請求)發(fā)送至周邊裝置中的仿真模塊。中斷可向周邊裝置中的仿真模塊通知已經(jīng)接收了配置訪問請求,和/或仿真模塊應(yīng)服務(wù)配置訪問請求。在步驟910處,周邊裝置的仿真模塊可響應(yīng)于中斷請求(例如,執(zhí)行配置空間仿真軟件)。仿真模塊可自仿真配置空間檢索仿真配置。在一些實施中,周邊裝置可正在仿真一個或多個周邊裝置和/或功能。在這樣的實施中,配置訪問請求可包括對目標(biāo)仿真周邊裝置和/或功能的識別。此外,配置空間仿真軟件可檢索用于目標(biāo)仿真周邊裝置和/或功能的配置。在一些實施中,將仿真配置空間存儲于DRAM中,或可內(nèi)部地仿真該仿真配置空間。永久性存儲器也可用以存儲仿真配置空間,使得仿真配置空間在停電期間保留于存儲器中。在一些實施方案中,存儲于永久性存儲器中的仿真配置空間可在啟動時加載至DRAM或本地存儲器以提供對仿真配置空間的較快速訪問。在一些實施中,在隔離環(huán)境中執(zhí)行配置空間仿真軟件。在隔離環(huán)境中,在來自其它軟件的干涉或干擾內(nèi),配置空間仿真軟件可能夠安全地執(zhí)行。在步驟912處,可使用仿真配置標(biāo)頭服務(wù)PCI配置訪問請求。在一些實施中,配置訪問請求可以是配置寫入請求。在這樣的實施中,進程900可包括步驟914,在該步驟中,服務(wù)配置訪問請求可包括更新仿真配置。圖7至圖9中所示的一些或所有進程(或本文中描述的任何其它進程,或變化,和/或其組合)可在配置有可執(zhí)行指令的一個或多個計算機系統(tǒng)的控制下進行,且可實施為共同地在一個或多個處理器上執(zhí)行的代碼(例如,可執(zhí)行指令、一個或多個計算機程序或一個或多個應(yīng)用)由硬件實施或其組合實施。該代碼可(例如)以包括可由一個或多個處理器執(zhí)行的多個指令的計算機程序形式存儲于計算機可讀存儲介質(zhì)上。計算機可讀存儲介質(zhì)可以是非暫時性的。一般而言,可部分地或全部地以硬件或以硬件與軟件的組合的形式實施本文中所公開的部件、系統(tǒng)及周邊器件中的任何。硬件可包括電子電路,諸如片上系統(tǒng)(SoC)、專用集成電路(ASIC)、處理器或現(xiàn)場可編程門陣列(FPGA)。VI.計算機系統(tǒng)圖10示出根據(jù)至少一個示例性實施方案的本文中所描述的包括經(jīng)由一個或多個網(wǎng)絡(luò)連接的一個或多個服務(wù)提供商計算機和/或用戶裝置的特征及系統(tǒng)的示例性架構(gòu)。圖1至圖14中討論的裝置可使用圖10中所描述的計算裝置的一個或多個部件,或可表示圖10中所描述的一個或多個計算裝置。在所示的架構(gòu)1000中,一個或多個用戶1002可使用用戶計算裝置1004(1)至1004(N)經(jīng)由一個或多個網(wǎng)絡(luò)1008訪問應(yīng)用1006(例如,web瀏覽器或移動裝置應(yīng)用)。在一些方面,應(yīng)用1006可由計算資源服務(wù)或服務(wù)提供商托管、管理和/或提供。一個或多個服務(wù)提供商計算機1010可提供被配置以在用戶1002可與其交互的用戶裝置1004上運行的原生應(yīng)用。在一些示例中,服務(wù)提供商計算機1010可提供諸如(但不限于)以下計算資源:客戶端實體、低延時數(shù)據(jù)存儲、耐久性數(shù)據(jù)存儲、數(shù)據(jù)訪問、管理、虛擬化、基于云的軟件解決方案、電子內(nèi)容性能管理等。服務(wù)提供商計算機1010也可以是可操作的以向用戶1002提供web托管、計算機應(yīng)用開發(fā)和/或?qū)嵤┢脚_、前述的組合或類似者。在一些示例中,服務(wù)提供商計算機1010可與一個或多個第三方計算機1012通信。在一些示例中,網(wǎng)絡(luò)1008可包括很多不同類型的網(wǎng)絡(luò)(諸如,電纜網(wǎng)絡(luò)、因特網(wǎng)、無錢網(wǎng)絡(luò)、蜂窩網(wǎng)絡(luò)以及其它私人和/或公共網(wǎng)絡(luò))的任何一者或組合。雖然所示的示例表示用戶1002經(jīng)由網(wǎng)絡(luò)1008訪問應(yīng)用1006,但所描述的技術(shù)可同樣地適用于用戶1002經(jīng)由用戶裝置1004通過陸線電話、經(jīng)由信息站或以任何其它方式與服務(wù)提供商計算機1010交互的實例中。也應(yīng)注意,所描述的技術(shù)可適用于其它客戶端/服務(wù)器布置(例如,機頂盒等)中,以及非客戶端/服務(wù)器配置(例如,本地存儲的應(yīng)用等)中。如上文所簡要描述,應(yīng)用1006可允許用戶1002與服務(wù)提供商計算機1010交互(諸如)以訪問web內(nèi)容(例如,web頁、音樂、視頻等)??梢苑?wù)器群集或作為服務(wù)器場布置的服務(wù)提供商計算機1010可托管應(yīng)用1006和/或基于云的軟件服務(wù)。其它服務(wù)器架構(gòu)也可用以托管應(yīng)用1006。應(yīng)用1006可能夠處理來自諸多用戶1002的請求并響應(yīng)地服務(wù)各種項目web頁。應(yīng)用1006可提供支持用戶交互的任何類型的網(wǎng)站,包括社交網(wǎng)絡(luò)網(wǎng)站、在線零售商、信息站、博客站、搜索引擎站、新聞及娛樂站等等。如上文所討論,所描述的技術(shù)可在應(yīng)用1006外部(諸如)由在用戶裝置1004上運行的其它應(yīng)用而類似地實施。用戶裝置1004可以是任何類型的計算裝置,諸如(但不限于)移動電話、智能電話、個人數(shù)字助理(PDA)、膝上型計算機、桌面計算機、瘦客戶端裝置、平板PC、電子書(e-book)閱讀器等。在一些示例中,用戶裝置1004可經(jīng)由網(wǎng)絡(luò)1008或經(jīng)由其它網(wǎng)絡(luò)連接與服務(wù)提供商計算機1010通信。另外,用戶裝置1004可以是由服務(wù)提供商計算機1010管理、控制或以其它方式是其部分的分布式系統(tǒng)的部分(例如,與服務(wù)提供商計算機1010整合的控制臺裝置)。在一個說明性配置中,用戶裝置1004可包括至少一個存儲器1014及一個或多個處理單元(或處理器1016)。處理器1016可視情況以硬件、計算機可執(zhí)行指令、固件或其組合而實施。處理器1016的計算機可執(zhí)行指令或固件實施可包括以任何適合程序化語言寫入以進行所描述的各個功能的計算機可執(zhí)行或機器可執(zhí)行指令。用戶裝置1004也可包括用于提供和/或記錄與用戶裝置1004相關(guān)聯(lián)的地理位置信息的地理位置裝置(例如,全球定位系統(tǒng)(GPS)裝置或類似裝置)。存儲器1014可存儲可加載且可在處理器1016上執(zhí)行的程序指令,以及在執(zhí)行這些程序期間產(chǎn)生的數(shù)據(jù)。根據(jù)用戶裝置1004的配置及類型,存儲器1014可以是易失性的(諸如,隨機存取存儲器(RAM))和/或非易失性的(諸如,只讀存儲器(ROM)、閃存等)。用戶裝置1004也可包括額外可移除存儲裝置和/或不可移除存儲裝置,其包括(但不限于)磁性存儲裝置、光盤和/或磁帶存儲裝置。磁盤驅(qū)動器及其相關(guān)聯(lián)計算機可讀介質(zhì)可提供對計算機可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊及計算裝置的其它數(shù)據(jù)的非易失性存儲。在一些實施中,存儲器1014可包括多個不同類型的存儲器,諸如靜態(tài)隨機存取存儲器(SRAM)、動態(tài)隨機存取存儲器(DRAM)或ROM。以更多細(xì)節(jié)轉(zhuǎn)向存儲器1014的內(nèi)容,存儲器1014可包括操作系統(tǒng)及用于實施本文中公開的特征的一個或多個應(yīng)用程序或服務(wù),包括至少一個用戶提供的輸入元件或電子服務(wù)web頁,諸如經(jīng)由瀏覽器應(yīng)用1006或?qū)S脩?yīng)用(例如,智能電話應(yīng)用、平板計算機應(yīng)用等)。瀏覽器應(yīng)用1006可被配置以接收、存儲和/或顯示用于與服務(wù)提供商計算機1010交互的網(wǎng)站或其它接口。另外,存儲器1014可存儲訪問憑證和/或其它用戶信息,諸如(但不限于)用戶ID、密碼和/或其它用戶信息。在一些示例中,用戶信息可包括驗證帳戶訪問請求的信息,諸如(但不限于)裝置ID、cookie、IP地址、位置或類似者。此外,用戶信息可包括對安全問題的用戶提供的響應(yīng)或由用戶裝置1004獲得的地理位置。在一些方面,服務(wù)提供商計算機1010也可以是任何類型的計算裝置,諸如(但不限于)移動電話、智能電話、個人數(shù)字助理(PDA)、膝上型計算機、臺式計算機、服務(wù)器計算機、瘦客戶端裝置、平板PC等。另外,應(yīng)注意,在一些實施方案中,服務(wù)提供商計算機1010由實施于托管計算環(huán)境的一個或多個虛擬機執(zhí)行。托管計算環(huán)境可包括一個或多個快速供應(yīng)且釋放的計算資源,該計算資源可包括計算、聯(lián)網(wǎng)和/或存儲裝置。托管計算環(huán)境也可稱為云計算環(huán)境。在一些示例中,服務(wù)提供商計算機1010可經(jīng)由網(wǎng)絡(luò)1008或經(jīng)由其它網(wǎng)絡(luò)連接與用戶裝置1004和/或其它服務(wù)提供商通信。服務(wù)提供商計算機1010可包括可能以集群、作為服務(wù)器場或作為不與彼此相關(guān)聯(lián)的各個服務(wù)器布置的一個或多個服務(wù)器。這些服務(wù)器可被配置以將本文中所描述的關(guān)鍵詞分類及分級特征服務(wù)實施為整合分布式計算環(huán)境的部分。在一個說明性配置中,服務(wù)提供商計算機1010可包括至少一個存儲器1018及一個或多個處理單元(或處理器1020)。處理器1020可視情況以硬件、計算機可執(zhí)行指令、固件或其組合而實施。處理器1020的計算機可執(zhí)行指令或固件實施可包括以任何適合程序化語言寫入以進行所描述的各個功能的計算機可執(zhí)行或機器可執(zhí)行指令。在一些實例中,硬件處理器1020可以是單核心處理器或多核心處理器。多核心處理器可包括相同處理器內(nèi)的多個處理單元。在一些實施方案中,多核心處理器可共享一些資源,諸如總線以及多個核心之間的第二或第三層級的高速緩存。在一些實例中,單核心或多核心處理器中的每個核心也可包括多個執(zhí)行邏輯處理器(或線程)。在這樣的核心(其支持多個邏輯處理器)中,也可共享數(shù)個級的執(zhí)行管線以及也有較低層級高速緩存。存儲器1018可存儲可加載且可在處理器1020上執(zhí)行的程序指令,以及在執(zhí)行這些程序期間產(chǎn)生的數(shù)據(jù)。根據(jù)服務(wù)提供商計算機1010的配置及類型,存儲器1018可以是易失性(諸如,RAM)的和/或非易失性的(諸如,ROM、閃存等)。服務(wù)提供商計算機1010或服務(wù)器也可包括額外存儲裝置1022,其可包括可移除存儲和/或不可移除存儲。額外存儲裝置1022可包括(但不限于)磁性存儲裝置、光盤和/或磁帶存儲裝置。磁盤驅(qū)動器及其相關(guān)聯(lián)計算機可讀介質(zhì)可提供對計算機可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊及計算裝置的其它數(shù)據(jù)的非易失性存儲。在一些實施中,存儲器1018可包括多種不同類型的存儲器,諸如SRAM、DRAM或ROM。存儲器1018、額外存儲裝置1022(可移除及不可移除兩者)全部是計算機可讀存儲介質(zhì)的示例。例如,計算機可讀存儲介質(zhì)可包括以用于信息(諸如,計算機可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其它數(shù)據(jù))的存儲的任何方法或技術(shù)實施的易失性或非易失性、可移除或不可移除介質(zhì)。存儲器1018及額外存儲裝置1022全部是計算機存儲介質(zhì)的示例??纱嬖谟诜?wù)提供商計算機1010中的額外類型的計算機存儲介質(zhì)可包括(但不限于)PRAM、SRAM、DRAM、RAM、ROM、EEPROM、閃存或其它存儲器技術(shù)、CD-ROM、DVD或其它光學(xué)存儲、磁帶盒、磁帶、磁盤存儲或其它磁性存儲裝置,或可用以存儲所需信息且可由服務(wù)提供商計算機1010訪問的任何其它介質(zhì)。上文中的任何的組合也應(yīng)包括在計算機可讀介質(zhì)的范圍內(nèi)?;蛘撸嬎銠C可讀通信介質(zhì)可包括計算機可讀指令、程序模塊或在數(shù)據(jù)信號(諸如,載波或其它傳輸)內(nèi)傳輸?shù)钠渌鼣?shù)據(jù)。然而,如本文中所使用,計算機可讀存儲介質(zhì)不包括計算機可讀通信介質(zhì)。服務(wù)提供商計算機1010也可包含允許服務(wù)提供商計算機1010與所存儲數(shù)據(jù)庫、另一計算裝置或服務(wù)器、用戶終端和/或網(wǎng)絡(luò)1008上的其它裝置通信的通信連接1024。服務(wù)提供商計算機1010也可包括I/O裝置1026,諸如鍵盤、鼠標(biāo)、筆、語音輸入裝置、觸控輸入裝置、顯示器、揚聲器、打印機及類似裝置。存儲器1018可包括操作系統(tǒng)1028、一個或多個數(shù)據(jù)存儲區(qū)1030和/或用于實施本文中公開的特征的一個或多個應(yīng)用程序或服務(wù),包括管理緩沖器1032及記錄緩沖器1040。本文中所描述的模塊可以是軟件模塊、硬件模塊或其適當(dāng)組合。如果模塊是軟件模塊,則模塊可實施于非暫時性計算機可讀介質(zhì)上且由本文中所描述的計算機系統(tǒng)中的任何中的處理器來處理。應(yīng)注意,所描述的進程及架構(gòu)可實時地或在任何用戶交互之前以異步模式進行。模塊可以圖10中提議的方式配置,和/或本文中所描述的功能可由存在的一個或多個模塊提供,這是因為本文中所描述的單獨模塊和/或模塊功能可遍布于多個模塊上。圖11示出根據(jù)各個實施方案的用于實施各方面的示例性環(huán)境1100的各方面。如應(yīng)理解,雖然出于闡釋目的使用基于Web的環(huán)境,但可視情況使用不同環(huán)境來實施各個實施方案。該環(huán)境包括電子客戶端裝置1102,其可包括任何適當(dāng)裝置,該裝置可操作以通過適當(dāng)網(wǎng)絡(luò)1104發(fā)送并接收請求、消息或信息并將信息傳送回至裝置的用戶。這樣的客戶端裝置的示例包括個人計算機、移動電話、手持型傳訊裝置、膝上型計算機、機頂盒、個人數(shù)據(jù)助理、電子書閱讀器及類似裝置。網(wǎng)絡(luò)可包括任何適當(dāng)網(wǎng)絡(luò)、包括內(nèi)聯(lián)網(wǎng)、因特網(wǎng)、蜂窩網(wǎng)絡(luò)、局域網(wǎng)或任何其它這樣的網(wǎng)絡(luò)或其組合。用于這種系統(tǒng)的部件可至少部分地取決于所選擇的網(wǎng)絡(luò)和/或環(huán)境的類型。用于經(jīng)由這樣的網(wǎng)絡(luò)通信的協(xié)議及部件是眾所周知的且在本文中將不加以詳細(xì)討論??捎捎芯€或無線連接及其組合而啟用通過網(wǎng)絡(luò)進行的通信。在此示例中,網(wǎng)絡(luò)包括因特網(wǎng),這是因為環(huán)境包括用于接收請求并響應(yīng)于其而服務(wù)內(nèi)容的Web服務(wù)器1106,不過對于其它網(wǎng)絡(luò),可使用服務(wù)類似目的的替代性裝置,如對于本領(lǐng)域技術(shù)人員所明顯的。說明性環(huán)境包括至少一個應(yīng)用服務(wù)器1108及數(shù)據(jù)存儲區(qū)1110。應(yīng)理解可存在數(shù)個應(yīng)用服務(wù)器、層,或可鏈結(jié)或以其它方式配置的其它元件、進程或部件,這些可交互以進行諸如自適當(dāng)數(shù)據(jù)存儲區(qū)獲得數(shù)據(jù)的任務(wù)。如本文中所使用,術(shù)語“數(shù)據(jù)存儲區(qū)”是指能夠存儲、訪問及檢索數(shù)據(jù)的任何裝置或裝置的組合,其可包括任何標(biāo)準(zhǔn)、分布式或集群式環(huán)境中的任何組合及數(shù)量的數(shù)據(jù)服務(wù)器、數(shù)據(jù)庫、數(shù)據(jù)存儲裝置及數(shù)據(jù)存儲介質(zhì)。應(yīng)用服務(wù)器可包括任何適當(dāng)硬件及軟件,用于與執(zhí)行客戶端裝置的一個或多個應(yīng)用的方面所需的數(shù)據(jù)存儲區(qū)整合、處理應(yīng)用的數(shù)據(jù)訪問及業(yè)務(wù)邏輯的大部分。應(yīng)用服務(wù)器提供與數(shù)據(jù)存儲區(qū)協(xié)作的訪問控制服務(wù)且能夠產(chǎn)生諸如將被傳送至用戶的文字、圖形、音頻和/或視頻的內(nèi)容,該內(nèi)容在該示例中可由Web服務(wù)器以超文本標(biāo)記語言(“HTML”)、可擴展標(biāo)記語言(“XML”)或另一適當(dāng)結(jié)構(gòu)化語言的形式服務(wù)給用戶。所有請求及響應(yīng)的處理以及內(nèi)容在客戶端裝置1102與應(yīng)用服務(wù)器1108之間的遞送可由Web服務(wù)器處理。應(yīng)理解,Web及應(yīng)用服務(wù)器是不要求的且僅是示例性部件,這是因為可在本文中其它處討論的任何適當(dāng)裝置或主機機器上執(zhí)行本文中討論的結(jié)構(gòu)化代碼。數(shù)據(jù)存儲區(qū)1110可包括數(shù)個單獨數(shù)據(jù)表、數(shù)據(jù)庫或用于存儲與特定方面相關(guān)的數(shù)據(jù)的其它數(shù)據(jù)存儲機構(gòu)及介質(zhì)。例如,所示的數(shù)據(jù)存儲區(qū)包括用于存儲可用以服務(wù)生產(chǎn)側(cè)的內(nèi)容的生產(chǎn)數(shù)據(jù)1112及用戶信息1116的機構(gòu)。數(shù)據(jù)存儲區(qū)也被示為包括用于存儲可用于報告、分析或其它這樣目的的記錄數(shù)據(jù)1114的機構(gòu)。應(yīng)理解,可存在可需要存儲于數(shù)據(jù)存儲區(qū)中以(諸如)用于頁面映像信息及用以訪問正確信息的許多其它方面,這些信息可視情況存儲于上文列出的機構(gòu)的任何中或存儲于數(shù)據(jù)存儲區(qū)1110中的額外機構(gòu)中。數(shù)據(jù)存儲區(qū)1110是可操作的,通過與其相關(guān)聯(lián)的邏輯,以自應(yīng)用服務(wù)器1108接收指令并響應(yīng)于其而獲得、更新或以其它方式處理數(shù)據(jù)。在一個示例中,用戶可提出針對某一類型的項目的搜索請求。在該情形中,數(shù)據(jù)存儲區(qū)可訪問用戶信息以驗證用戶的身份且可訪問目錄詳情信息以獲得有關(guān)該類型的項目的信息。信息然后可諸如以用戶能夠經(jīng)由用戶裝置1102上的瀏覽器查看的Web頁上的結(jié)果清單形式返回給用戶。可在瀏覽器的專用頁面或窗口中查看受關(guān)注中的特定項目的信息。每個服務(wù)器通常將包括提供用于該服務(wù)器的一般性管理及操作的可執(zhí)行程序指令的操作系統(tǒng),且通常將包括存儲在由服務(wù)器的處理器執(zhí)行時允許服務(wù)器進行其預(yù)期功能的指令的計算機可讀存儲介質(zhì)(例如,硬盤、隨機存取存儲器、只讀存儲器等)。特別是按照本公開,服務(wù)器的操作系統(tǒng)及一般功能性的適合實施是已知的或是市場上可購得的,且本領(lǐng)域技術(shù)人員可容易地實施。一個實施方案中的環(huán)境是利用經(jīng)由通信鏈路使用一個或多個計算機網(wǎng)絡(luò)或直接連接互連的數(shù)個計算機系統(tǒng)及部件的分布式計算環(huán)境。然而,本領(lǐng)域技術(shù)人員應(yīng)了解,這樣的系統(tǒng)可在具有比圖11中所示的更少或更大數(shù)量的部件的系統(tǒng)中同樣很好地操作。因此,對圖11中的系統(tǒng)1100的描繪應(yīng)視為在性質(zhì)上是說明性的且不限制本公開的范圍。各個實施方案可進一步實施于各種操作環(huán)境中,這些操作環(huán)境在一些情形中可包括可用以操作多個應(yīng)用中的任何的一個或多個用戶計算機、計算裝置或處理裝置。用戶或客戶端裝置可包括以下中的任何:多個通用個人計算機(諸如,運行標(biāo)準(zhǔn)操作系統(tǒng)的臺式或膝上型計算機)以及運行行動軟件且能夠支持多個聯(lián)網(wǎng)及傳訊協(xié)議的蜂窩、無線及手持型裝置。這樣的系統(tǒng)也可包括運行各種市場上可購得的操作系統(tǒng)以及用于諸如開發(fā)及數(shù)據(jù)庫管理的目的的其它已知應(yīng)用中的任何的多個工作站。這些裝置也可包括其它電子裝置,諸如虛設(shè)終端、瘦客戶端、游戲系統(tǒng)及能夠經(jīng)由網(wǎng)絡(luò)通信的其它裝置。大部分實施方案利用本領(lǐng)域技術(shù)人員所熟知的用于使用各種市場上可購得的協(xié)議中的任何支持通信的至少一個網(wǎng)絡(luò),這些市場上可購得的協(xié)議諸如傳輸控制協(xié)議/因特網(wǎng)協(xié)議(“TCP/IP”)、開放系統(tǒng)互連(“OSI”)、文件傳送協(xié)議(“FTP”)、通用即插即用(“UpnP”)、網(wǎng)絡(luò)文件系統(tǒng)(“NFS”)、通用因特網(wǎng)文件系統(tǒng)(“CIFS”)及AppleTalk。網(wǎng)絡(luò)可以是(例如)局域網(wǎng)、廣域網(wǎng)、虛擬專用網(wǎng)、因特網(wǎng)、內(nèi)聯(lián)網(wǎng)、外聯(lián)網(wǎng)、公共交換電話網(wǎng)、紅外線網(wǎng)、無線網(wǎng)及其任何組合。在利用Web服務(wù)器的實施方案中,Web服務(wù)器可運行各種服務(wù)器或中層應(yīng)用中的任何,包括超文本傳送協(xié)議(“HTTP”)服務(wù)器、FTP服務(wù)器、通用網(wǎng)關(guān)接口(“CGI”)服務(wù)器、數(shù)據(jù)服務(wù)器、Java服務(wù)器及商務(wù)應(yīng)用服務(wù)器。(諸如)通過執(zhí)行可實施為以任何程序化語言(諸如,C、C#或C++)或任何腳本語言(諸如,Perl、Python或TCL)以及其組合寫入的一個或多個腳本或程序的一個或多個Web應(yīng)用,服務(wù)器也可能夠執(zhí)行來自用戶裝置的響應(yīng)請求中的程序或腳本。服務(wù)器也可包括數(shù)據(jù)庫服務(wù)器,包括(但不限于)在市場上可自及購得的那些服務(wù)器。環(huán)境可包括各種數(shù)據(jù)存儲區(qū)以及其它存儲器及存儲介質(zhì),如上文所討論。這些可駐留于各種位置上,諸如駐留于在計算機的一個或多個本地(和/或駐留于其中)或在跨網(wǎng)絡(luò)的任何或所有計算機遠(yuǎn)程的存儲介質(zhì)上。在一組特定實施方案中,信息可駐留于本領(lǐng)域技術(shù)人員所熟知的存儲區(qū)網(wǎng)絡(luò)(“SAN”)中。類似地,可視情況本地和/或遠(yuǎn)程地存儲用于進行歸屬于計算機、服務(wù)器或其它網(wǎng)絡(luò)裝置的功能的任何必要文件。在系統(tǒng)包括計算機化裝置的情況下,每個這樣裝置可包括可經(jīng)由總線電耦接的硬件元件,元件包括(例如)至少一個中央處理單元(“CPU”)、至少一個輸入裝置(例如,鼠標(biāo)、鍵盤、控制器、觸摸屏幕或小鍵盤)以及至少一個輸出裝置(例如,顯示裝置、打印機或揚聲器)。這樣的系統(tǒng)也可包括一個或多個存儲裝置,諸如磁盤驅(qū)動器、光學(xué)存儲裝置及固態(tài)存儲裝置,諸如隨機存取存儲器(“RAM”)或只讀存儲器(“ROM”),以及可移除介質(zhì)裝置、存儲器卡、閃存卡等。這樣的裝置也可包括計算機可讀存儲介質(zhì)閱讀器、通信裝置(例如,調(diào)制解調(diào)器、網(wǎng)絡(luò)卡(無線或有線)、紅外線通信裝置等)以及工作存儲器,如上文所描述。計算機可讀存儲介質(zhì)閱讀器可與計算機可讀存儲介質(zhì)連接,或被配置以接收計算機可讀存儲介質(zhì),該計算機可讀存儲介質(zhì)表示用于暫時地和/或更永久性地包含、存儲、傳輸及檢索計算機可讀信息的遠(yuǎn)程、本地、固定和/或可移除存儲裝置以及存儲介質(zhì)。系統(tǒng)及各種裝置通常也將包括多個軟件應(yīng)用、模塊、服務(wù)或位于至少一個工作存儲器裝置內(nèi)的其它元件,包括操作系統(tǒng)及應(yīng)用程序,諸如客戶端應(yīng)用或Web瀏覽器。應(yīng)了解,替代實施方案可具有自上文所描述者的眾多變化形式。例如,也可使用定制硬件,且/或可在硬件、軟件(包括便攜式軟件,諸如小應(yīng)用)或二者中實施特定元件。此外,可采用至其它計算裝置(諸如,網(wǎng)絡(luò)輸入/輸出裝置)的連接。用于包含代碼或代碼的部分的存儲介質(zhì)及計算機可讀介質(zhì)可包括本領(lǐng)域中已知或使用的任何適當(dāng)介質(zhì),包括存儲介質(zhì)及通信介質(zhì),諸如(但不限于)以用于存儲和/或傳輸信息(諸如,計算機可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其它數(shù)據(jù))的任何方法或技術(shù)實施的易失性及非易失性、可移除及不可移除介質(zhì),包括RAM、ROM、電子可擦除可編程只讀存儲器(“EEPROM”)、閃存或其它存儲器技術(shù)、光盤只讀存儲器(“CD-ROM”)、數(shù)字通用磁盤(DVD)或其它光學(xué)存儲裝置、磁帶盒、磁帶、磁盤存儲裝置或其它磁性存儲裝置,或可用以存儲所需信息且可由系統(tǒng)裝置訪問的任何其它介質(zhì)?;诒疚闹兴峁┑墓_及教示,本領(lǐng)域技術(shù)人員應(yīng)了解用以實施各個實施方案的其它方式和/或方法。因此,應(yīng)將說明書及附圖視為說明性意義而非限制性意義。然而,將明顯的是,可在不脫離如權(quán)利要求中所陳述的本公開的較廣義精神及范圍的情況下對本公開做出各種修改及改變??设b于以下條款來描述本公開的實施方案:條款1.一種用于仿真周邊部件互連(PCI)配置空間的方法,所述方法包括:由PCI裝置的PCI核心從PCI根復(fù)合體接收PCI配置訪問請求;由所述PCI核心向所述PCI裝置的配置管理模塊發(fā)送所述PCI配置訪問請求;由所述配置管理模塊確定所述PCI配置訪問請求是針對除所述PCI核心的原生配置空間外的配置空間;由所述配置管理硬件向所述PCI裝置的仿真模塊發(fā)送與所述PCI配置訪問請求相關(guān)聯(lián)的中斷請求;響應(yīng)于所述中斷請求,由所述仿真模塊執(zhí)行配置空間仿真軟件以從仿真配置空間檢索仿真配置;和使用所述仿真配置來服務(wù)所述PCI配置訪問請求。條款2.根據(jù)條款1所述的方法,其中服務(wù)所述PCI配置訪問請求包括當(dāng)所述PCI配置訪問請求是配置讀取請求時,向所述PCI根復(fù)合體發(fā)送所述仿真配置。條款3.根據(jù)條款2所述的方法,其中服務(wù)所述PCI配置訪問請求還包括修改所述仿真配置。條款4.根據(jù)任何前述條款所述的方法,其中服務(wù)所述PCI配置訪問請求包括當(dāng)所述PCI配置訪問請求是配置寫入請求時更新所述仿真配置。條款5.根據(jù)任何前述條款所述的方法,其中所述仿真配置空間包括用于多個PCI裝置的仿真配置。條款6.根據(jù)任何前述條款所述的方法,其中所述仿真配置空間存儲在DRAM中。條款7.根據(jù)條款1-5中任一項所述的方法,其中所述仿真配置空間存儲在永久性存儲器中。條款8.根據(jù)任何前述條款所述的方法,其中所述配置空間仿真軟件在隔離環(huán)境中執(zhí)行。條款9.一種設(shè)備,其包括:仿真部件;總線接口核心,其包括一組原生配置寄存器;和配置管理部件,其耦接至所述總線接口核心,所述配置管理部件被配置為:從所述總線接口核心接收配置訪問請求;請求所述仿真部件從仿真配置空間檢索仿真配置;和使用所述仿真配置服務(wù)所述配置訪問請求。條款10.根據(jù)條款9所述的設(shè)備,其中所述仿真配置空間包括用于多個周邊裝置的仿真配置。條款11.根據(jù)條款9或10所述的設(shè)備,其中所述仿真配置表示物理功能資源。條款12.根據(jù)條款9-11中任一項所述的設(shè)備,其中所述仿真配置表示虛擬功能資源。條款13.根據(jù)條款9-12中任一項所述的設(shè)備,其中經(jīng)由執(zhí)行在隔離環(huán)境中運行的配置仿真軟件來檢索所述仿真配置。條款14.根據(jù)條款9-13中任一項所述的設(shè)備,其中所述配置管理部件包括狀態(tài)寄存器,所述狀態(tài)寄存器用于跟蹤所述配置訪問請求的進度,并且其中所述狀態(tài)寄存器在服務(wù)所述配置訪問請求完成之后被更新。條款15.根據(jù)條款9-14中任一項所述的設(shè)備,其中所述仿真部件耦接至DRAM,并且其中所述仿真配置空間存儲在所述DRAM中。條款16.根據(jù)條款9-15中任一項所述的設(shè)備,其中所述仿真部件耦接至永久性存儲器,并且其中所述仿真配置空間存儲在所述永久性存儲器中。條款17.根據(jù)條款9-16中任一項所述的設(shè)備,其中所述仿真配置空間被存儲為文本文件。條款18.根據(jù)條款9-17中任一項所述的設(shè)備,其中所述仿真部件、所述總線接口核心和所述配置管理部件中的至少一個包括電子電路。條款19.根據(jù)條款9-18中任一項所述的設(shè)備,其中所述設(shè)備在片上系統(tǒng)(SoC)、專用集成電路(ASIC)、處理器或現(xiàn)場可編程門陣列(FPGA)中實施。條款20.一種用于由周邊裝置仿真配置空間的方法,所述方法包括:由所述周邊裝置接收配置訪問請求;由所述周邊裝置確定所述配置訪問請求用于仿真配置空間;由所述周邊裝置從所述仿真配置空間檢索仿真配置;和由所述周邊裝置使用所述仿真配置來服務(wù)所述配置訪問請求。條款21.根據(jù)條款20所述的方法,其中所述仿真配置空間包括用于多個周邊裝置功能的仿真配置。條款22.根據(jù)條款20或21所述的方法,其中所述仿真配置表示物理功能資源。條款23.根據(jù)條款20或21所述的方法,其中所述仿真配置表示虛擬功能資源。條款24.根據(jù)條款20-23中任一項所述的方法,其中服務(wù)所述配置訪問請求包括將所述仿真配置提供至所述配置訪問請求的源。條款25.根據(jù)條款20-24中任一項所述的方法,其中服務(wù)所述配置訪問請求包括更新所述仿真配置。條款26.一種用于仿真擴展周邊部件互連(PCI)能力的方法,所述方法包括:由PCI裝置的PCI核心接收由主機計算機開始的PCI裝置配置讀取請求;由所述PCI核心并至管理硬件發(fā)送所述PCI裝置配置讀取請求;其中所述PCI核心包括基本PCI能力電路;由所述管理硬件通知處理器接收到PCI配置讀取請求;由所述處理器檢索表示由所述PCI裝置支持的所述PCI裝置的所述擴展PCI能力的仿真配置標(biāo)頭;和向所述主機計算機發(fā)送所述仿真配置標(biāo)頭。條款27.根據(jù)條款26所述的方法,其包括由在所述處理器中的隔離軟件內(nèi)容中運行的固件來響應(yīng)所述中斷請求。條款28.根據(jù)條款26或27所述的方法,其包括通過更新所述管理硬件的狀態(tài)寄存器在檢索所述仿真配置標(biāo)頭的進度之后進行跟蹤。條款29.根據(jù)條款26-28中任一項所述的方法,其中檢索所述仿真配置標(biāo)頭包括由所述處理器執(zhí)行配置空間仿真軟件。條款30.根據(jù)條款26-29中任一項所述的方法,其中所述仿真配置標(biāo)頭表示虛擬功能資源的狀態(tài)。條款31.根據(jù)條款26-29中任一項所述的方法,其中所述仿真配置標(biāo)頭表示物理功能資源的狀態(tài)。條款32.根據(jù)條款26-31中任一項所述的方法,其還包括:由所述PCI核心接收用于更新所述仿真配置標(biāo)頭的PCI裝置配置寫入請求;其中所述PCI裝置配置寫入請求由所述主機計算機發(fā)起;由所述PCI核心并至所述管理硬件發(fā)送所述PCI裝置配置寫入請求;由所述管理硬件通知所述處理器接收到所述PCI裝置配置寫入請求;由所述處理器檢索所述仿真配置標(biāo)頭;和由所述處理器更新所述仿真配置標(biāo)頭。條款33.根據(jù)條款32所述的方法,其中所述更新包括更新虛擬功能資源的狀態(tài)。條款34.根據(jù)條款32所述的方法,其中所述更新包括更新物理功能資源的狀態(tài)。條款35.根據(jù)條款26-34中任一項所述的方法,其還包括:由所述PCI核心接收用于寫入新仿真配置標(biāo)頭的PCI裝置配置寫入請求;其中所述PCI裝置配置寫入請求由所述主機計算機發(fā)起;由所述PCI核心并至所述管理硬件發(fā)送所述PCI裝置配置寫入請求;由所述管理硬件通知所述處理器接收到所述PCI裝置配置寫入請求;和由所述處理器將所述新仿真配置標(biāo)頭寫入所述處理器可訪問的存儲器。條款36.一種周邊部件互連(PCI)裝置,其包括:PCI核心,其被布置為接收由主機計算機發(fā)起的PCI裝置配置讀取請求;其中所述PCI核心包括基本PCI能力電路;管理硬件,其被布置為從所述PCI核心接收所述PCI裝置配置讀取請求,并且響應(yīng)于所述PCI裝置配置讀取請求向處理器發(fā)送中斷請求;處理器,其被布置為響應(yīng)于所述中斷請求檢索表示由所述PCI裝置支持的所述PCI裝置的所述擴展PCI能力的仿真配置標(biāo)頭;和其中所述PCI裝置被布置為向所述主機計算機發(fā)送所述仿真配置標(biāo)頭。條款37.一種非暫時性計算機可讀介質(zhì),其存儲一旦由周邊部件互連(PCI)裝置執(zhí)行使得所述PCI裝置進行以下階段的指令:由所述PCI裝置的PCI核心接收由主機計算機發(fā)起的PCI裝置配置讀取請求;由所述PCI核心并至管理硬件發(fā)送所述PCI裝置配置讀取請求;其中所述PCI核心包括基本PCI能力電路;由所述管理硬件并響應(yīng)于所述PCI裝置配置讀取請求向處理器發(fā)送中斷請求;響應(yīng)于所述中斷請求由所述處理器檢索表示由所述PCI裝置支持的所述PCI裝置的所述擴展PCI能力的仿真配置標(biāo)頭;和向所述主機計算機發(fā)送所述仿真配置標(biāo)頭。其它變化形式在本公開的精神內(nèi)。因此,雖然所公開的技術(shù)易受各種修改及替代性構(gòu)造,但是在附圖中所示且在上文已經(jīng)詳細(xì)描述了所示的其一些實施方案。然而,應(yīng)理解,不旨在將本公開限制于所公開的一個或多個具體形式,而是相反地,意圖涵蓋落在本公開的精神及范圍內(nèi)的所有修改、替代性構(gòu)造及等效形式,如在隨附權(quán)利要求中所限定。除非本文中另有指示或上下文明顯矛盾,否則在描述所公開的實施方案的上下文中(尤其在以下權(quán)利要求的上下文中)使用的術(shù)語“一(a)”及“一(an)”和“該”及類似指示語應(yīng)視為涵蓋單數(shù)與復(fù)數(shù)兩者。除非另外注明,否則術(shù)語“包括”、“具有”、“包括”及“包含”應(yīng)視為開放式術(shù)語(即,意指“包括(但不限于)”)。術(shù)語“連接”被視為部分地或整體地包含于內(nèi)、附接至,或連結(jié)在一起,即使存在介入件也如此。除非本文另外指明,否則本文所列舉的數(shù)值范圍僅意欲作為個別提及落入該范圍內(nèi)的每個單獨值的速記方法,且每個單獨值是如同在本文中個別列舉那樣并入本說明書中。除非本文另有說明或上下文明顯矛盾,否則本文所描述的所有方法可以任何適宜次序進行。除非另有主張,否則,本文中所提供的任何及所有示例或示例性語言(例如,“諸如”)的使用僅旨在更好地闡明本公開的實施方案且不對本公開的范圍強加限制。本說明書中的任何語言都不應(yīng)視為指示任何未主張要素對于本公開的實踐必不可少。除非本文另外明確指明,否則諸如短語“X、Y或Z中的至少一個”的析取語言旨在理解為在上下文內(nèi)一般性地用以呈現(xiàn)項目、項等可以是X、Y或Z,或其任何組合(例如,X、Y和/或Z)。因此,這樣的析取語言通常不旨在且不應(yīng)暗示一些實施方案需要呈現(xiàn)X中的至少一個、Y中的至少一個,或Z中的至少一個中的每個。本文中描述本公開的各種實施方案,包括發(fā)明人已知用于實施本公開的最佳模式。本領(lǐng)域普通技術(shù)人員在閱讀前述說明之后可明了這些實施方案的變化形式。發(fā)明人預(yù)期本領(lǐng)域技術(shù)人員視情況采用這樣的變化形式,且發(fā)明人意圖以除本文明確描述外的方式實踐本公開。因此,本公開包括如適用法律允許的本文隨附權(quán)利要求中所列的主題的所有修改形式及等效形式。此外,除非本文中另有指示或上下文另外明顯矛盾,否則本公開涵蓋上述要素在其所有可能的變化形式中的任何組合。當(dāng)前第1頁1 2 3