国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      虛擬通用i/o控制器的制造方法

      文檔序號(hào):10694038閱讀:434來源:國知局
      虛擬通用i/o控制器的制造方法
      【專利摘要】用于虛擬通用I/O(GPIO)的技術(shù)包含具有虛擬GPIO控制器驅(qū)動(dòng)器、虛擬GPIO控制器固件接口和虛擬GPIO控制器的計(jì)算裝置。驅(qū)動(dòng)器從計(jì)算裝置的操作系統(tǒng)接收GPIO命令。GPIO命令規(guī)定將由GPIO引腳執(zhí)行的操作。驅(qū)動(dòng)器向固件接口發(fā)送GPIO命令。響應(yīng)于固件接口接收命令,虛擬GPIO控制器仿真虛擬GPIO引腳來實(shí)現(xiàn)GPIO命令。固件接口可觸發(fā)能夠由操作系統(tǒng)接收的中斷。虛擬GPIO控制器可使用固件保留的后備存儲(chǔ)器、嵌入式控制器或到計(jì)算裝置的外圍裝置的接口來仿真虛擬GPIO引腳。固件接口可以是ACPI控制方法。描述并要求保護(hù)其它實(shí)施例。
      【專利說明】虛擬通用I/O控制器
      [0001 ] 相關(guān)美國專利申請的交叉弓I用
      本申請要求在2014年3月27日提交的名稱為“VIRTUAL GENERAL-PURPOSE I/OCONTROLLER”的美國實(shí)用新型專利申請N0.14/227,735的優(yōu)先權(quán)。
      【背景技術(shù)】
      [0002]典型計(jì)算裝置包括包含在平臺(tái)芯片集中或平臺(tái)片上系統(tǒng)中的若干通用輸入/輸出(“GP10”)引腳。GP1引腳可支持讀寫數(shù)字?jǐn)?shù)據(jù),并且可生成計(jì)算裝置的硬件中斷。通常,GP1引腳是多用途的,并且可由計(jì)算裝置配置用于具體應(yīng)用。例如,GP1引腳可用于驅(qū)動(dòng)、位沖(bit-bang)或以別的方式控制平臺(tái)特定特征,諸如按鈕、指示器(例如LED)、開關(guān)或傳感器(例如蓋密封傳感器、對接端口傳感器、驅(qū)動(dòng)插入傳感器等)。
      [0003]典型計(jì)算裝置包含在芯片集或主處理器中實(shí)現(xiàn)的控制GP1引腳的一個(gè)或多個(gè)硬件GP1控制器。計(jì)算裝置上的軟件或固件可通過從與硬件GP1控制器關(guān)聯(lián)的具體寄存器或存儲(chǔ)器地址讀或向其寫來與硬件GP1控制器交互。高級(jí)配置與電源接口(ACPI)規(guī)范提供了到硬件GP1引腳的固件接口的一個(gè)示例。通常,操作系統(tǒng)供應(yīng)商規(guī)定所需要的最小硬件資源,包含必須包含在平臺(tái)芯片集中的特定硬件GP1引腳。
      【附圖說明】
      [0004]本文描述的概念在附圖中作為示例而非作為限制圖示。為了圖示的簡潔和清晰起見,在附圖中圖示的元件不一定按比例繪制。在合適的情況下,附圖標(biāo)記在各圖之間已經(jīng)被重復(fù)以指示對應(yīng)或類似元件。
      [0005]圖1是用于提供虛擬GP1控制器的計(jì)算裝置的至少一個(gè)實(shí)施例的簡化框圖;
      圖2是圖1的計(jì)算裝置的環(huán)境的至少一個(gè)實(shí)施例的簡化框圖;
      圖3是用于初始化和運(yùn)行可由圖1和圖2的計(jì)算裝置執(zhí)行的虛擬GP1控制器的方法的至少一個(gè)實(shí)施例的簡化流程圖;
      圖4是用于監(jiān)視和處置可由圖1和圖2的計(jì)算裝置執(zhí)行的GP1命令的方法的至少一個(gè)實(shí)施例的簡化流程圖;以及
      圖5是用于監(jiān)視和處置可由圖1和圖2的計(jì)算裝置執(zhí)行的GP1事件的方法的至少一個(gè)實(shí)施例的簡化流程圖。
      【具體實(shí)施方式】
      [0006]雖然本公開的概念易受到各種修改和備選形式,但其特定實(shí)施例已經(jīng)在附圖中作為示例示出,并且將在本文中詳細(xì)描述。然而,應(yīng)該理解,沒有意圖將本公開的概念局限于所公開的具體形式,而是相反,本發(fā)明覆蓋與本公開和所附權(quán)利要求書對應(yīng)的所有修改、等同物和備選。
      [0007]在說明書中提到“一個(gè)實(shí)施例”、“實(shí)施例”、“說明性實(shí)施例”等指示所描述的實(shí)施例可包含具體特征、結(jié)構(gòu)或特性,但每一個(gè)實(shí)施例可以一定或者可以不一定包含該具體特征、結(jié)構(gòu)或特性。而且,此類短語不一定是指同一實(shí)施例。另外,當(dāng)具體特征、結(jié)構(gòu)或特性結(jié)合實(shí)施例進(jìn)行描述時(shí),認(rèn)為結(jié)合不管是否明確描述的其它實(shí)施例來實(shí)現(xiàn)此類特征、結(jié)構(gòu)或特性在本領(lǐng)域技術(shù)人員的知識(shí)范圍內(nèi)。此外,應(yīng)該認(rèn)識(shí)到,包含在以“A、B和C中的至少一個(gè)”的形式的列表中的項(xiàng)目可指的是(A); (B); (C); (A和B); (A和C) ; (B和C)或(A,B和C)。類似地,包含在以“A、B或C中的至少一個(gè)”形式的列表中的項(xiàng)目可指的是(A); (B); (C); (A和B);(A和C);(B和C)或(A, B和C)。
      [0008]公開的實(shí)施例在一些情況下可用硬件、固件、軟件或它們的任何組合來實(shí)現(xiàn)。所公開的實(shí)施例也可實(shí)現(xiàn)為由一個(gè)或多個(gè)易失性或非易失性機(jī)器可讀(例如計(jì)算機(jī)可讀)介質(zhì)攜帶或存儲(chǔ)在其上的指令,其可由一個(gè)或多個(gè)處理器讀取和執(zhí)行。機(jī)器可讀存儲(chǔ)介質(zhì)可實(shí)施為用于存儲(chǔ)或傳送由機(jī)器(例如易失性或非易失性存儲(chǔ)器、媒體盤或其它媒體裝置)可讀形式的信息的任何存儲(chǔ)裝置、機(jī)制或其它物理結(jié)構(gòu)。
      [0009]在附圖中,一些結(jié)構(gòu)特征或方法特征可按特定布置和/或排序示出。然而,應(yīng)該認(rèn)識(shí)到,可能不需要此類特定布置和/或排序。而是,在一些實(shí)施例中,此類特征可按與在說明性附圖中示出的不同的方式和/或次序布置。此外,在具體附圖中包含結(jié)構(gòu)或方法特征不打算暗示此類特征在所有實(shí)施例中都需要,并且在一些實(shí)施例中,可能不包含或者可與其它特征組合。
      [0010]現(xiàn)在參考圖1,在說明性實(shí)施例中,計(jì)算裝置100建立虛擬GP1控制器以減少由計(jì)算裝置100需要的物理GP1引腳的總數(shù)。為了這么做,如下面所詳細(xì)論述的,計(jì)算裝置100的操作系統(tǒng)建立用于GP1控制器驅(qū)動(dòng)器的標(biāo)準(zhǔn)接口,并且隨后加載虛擬GP1控制器驅(qū)動(dòng)器。虛擬GP1控制器驅(qū)動(dòng)器從操作系統(tǒng)接收GP1命令(例如讀、寫、狀況或控制命令)并將命令轉(zhuǎn)發(fā)到虛擬GP1控制器固件接口。響應(yīng)于虛擬GP1控制器固件接口接收GP1命令,虛擬GP1控制器仿真一個(gè)或多個(gè)物理GP1引腳的行為,并對GP1命令適當(dāng)做出響應(yīng)。此類仿真物理GP1引腳在本文被稱為“虛擬GP1引腳”。
      [0011]在一些實(shí)施例中,虛擬GP1控制器附加地或備選地可監(jiān)視影響虛擬GP1引腳的仿真狀態(tài)的平臺(tái)事件?;谔摂MGP1引腳的仿真狀態(tài),虛擬GP1控制器可使虛擬GP1固件接口斷言由操作系統(tǒng)處置的中斷。操作系統(tǒng)通過將一個(gè)或多個(gè)GP1命令傳到虛擬GP1控制器驅(qū)動(dòng)器以查詢虛擬GP1引腳的狀態(tài)并且然后相應(yīng)地響應(yīng)來處置中斷。從而,由虛擬GP1控制器仿真的虛擬GP1引腳對操作系統(tǒng)而言看起來好像與一個(gè)或多個(gè)物理GP1引腳一樣。應(yīng)該理解,虛擬GP1控制器可仿真任何數(shù)量的虛擬GP1引腳。
      [0012]應(yīng)該認(rèn)識(shí)到,本公開的計(jì)算裝置100可減少符合由操作系統(tǒng)供應(yīng)商設(shè)置的GP1引腳要求所需的專用物理GP1引腳數(shù)。附加地或備選地,計(jì)算裝置100可能能夠使用通常比計(jì)算裝置100的主處理器、芯片集或片上系統(tǒng)便宜并且更容易定制的外圍裝置或嵌入式控制器來實(shí)現(xiàn)所需的GP1功能性。
      [0013]計(jì)算裝置100可被實(shí)施為用于執(zhí)行本文描述的功能的任何類型裝置。例如,計(jì)算裝置100可實(shí)施為但不限于臺(tái)式計(jì)算機(jī)、服務(wù)器計(jì)算機(jī)、工作站、膝上型計(jì)算機(jī)、筆記本計(jì)算機(jī)、移動(dòng)計(jì)算裝置、智能電話、平板計(jì)算機(jī)、蜂窩電話、手機(jī)、消息傳遞裝置、可穿戴計(jì)算裝置、車載信息處理裝置、分布式計(jì)算系統(tǒng)、多處理器系統(tǒng)、消費(fèi)電子裝置和/或配置成執(zhí)行本文描述的功能的任何其它計(jì)算裝置。如圖1所示,說明性計(jì)算裝置100包含處理器120、輸入/輸出子系統(tǒng)122、存儲(chǔ)器126和數(shù)據(jù)存儲(chǔ)裝置130。當(dāng)然,在其它實(shí)施例中,計(jì)算裝置100可包含其它或附加組件,諸如在臺(tái)式計(jì)算機(jī)中發(fā)現(xiàn)的組件(例如各種輸入/輸出裝置)。此外,在一些實(shí)施例中,一個(gè)或多個(gè)說明性組件可合并在另一組件中,或以別的方式形成另一組件的一部分。例如,在一些實(shí)施例中,存儲(chǔ)器126或其部分可結(jié)合在處理器120中。
      [0014]處理器120可被實(shí)施為能夠執(zhí)行本文描述的功能的任何類型處理器。例如,處理器120可實(shí)施為單核或多核處理器、數(shù)字信號(hào)處理器、微控制器或其它處理器或處理/控制電路。類似地,存儲(chǔ)器126可實(shí)施為能夠執(zhí)行本文描述的功能的任何類型易失性或非易失性存儲(chǔ)器或數(shù)據(jù)存儲(chǔ)裝置。在操作中,存儲(chǔ)器126可存儲(chǔ)在計(jì)算裝置100操作期間使用的各種數(shù)據(jù)和軟件,諸如操作系統(tǒng)、應(yīng)用、程序、庫以及驅(qū)動(dòng)器。說明性存儲(chǔ)器126包含虛擬GP1控制器128。如本文下面所描述的,虛擬GP1控制器128是仿真、適配或抽象一個(gè)或多個(gè)物理GP1引腳的軟件實(shí)體。存儲(chǔ)器126以通信方式經(jīng)由I/O子系統(tǒng)122耦合到處理器120,I/O子系統(tǒng)104可實(shí)施為電路和/或組件以便于與計(jì)算裝置100的處理器120、存儲(chǔ)器126和/或其它組件的輸入/輸出操作。例如,I/O子系統(tǒng)122可實(shí)施為或以別的方式包含存儲(chǔ)器控制器集線器、輸入/輸出控制集線器、固件裝置、通信鏈路(即,點(diǎn)對點(diǎn)鏈路、總線鏈路、導(dǎo)線、電纜、光導(dǎo)、印刷電路板跡線等)和/或其它組件和子系統(tǒng)以便于輸入/輸出操作。I/O子系統(tǒng)122進(jìn)一步包含引腳減少的GP1集124。引腳減少的GP1集124可包含若干物理GP1引腳供計(jì)算裝置100使用。引腳減少的GP1集124相比典型的I/O子系統(tǒng)包含數(shù)量減少的物理GP1引腳,并且在一些實(shí)施例中可包含單個(gè)GP1引腳。在一些實(shí)施例中,I/O子系統(tǒng)122可形成片上系統(tǒng)(SoC)的一部分,并與計(jì)算裝置100的處理器120、存儲(chǔ)器126和其它組件一起結(jié)合在單個(gè)集成電路芯片上。
      [0015]數(shù)據(jù)存儲(chǔ)裝置130可實(shí)施為配置用于數(shù)據(jù)的短期存儲(chǔ)或長期存儲(chǔ)的任何類型裝置,諸如例如存儲(chǔ)器件和電路、存儲(chǔ)卡、硬盤驅(qū)動(dòng)器、固態(tài)驅(qū)動(dòng)器或其它數(shù)據(jù)存儲(chǔ)裝置。數(shù)據(jù)存儲(chǔ)裝置130可用于存儲(chǔ)軟件或其它數(shù)據(jù)以便執(zhí)行,包含操作系統(tǒng)軟件和應(yīng)用軟件。
      [0016]計(jì)算裝置100可進(jìn)一步包含嵌入式控制器132和/或若干外圍裝置134。嵌入式控制器132可實(shí)施為與處理器120和/或I/O子系統(tǒng)122分開或獨(dú)立的計(jì)算裝置100的任何微控制器或其它控制器芯片。嵌入式控制器132可執(zhí)行計(jì)算裝置100的任何次級(jí)或輔助計(jì)算活動(dòng),諸如管理與一個(gè)或多個(gè)外圍裝置134的通信。嵌入式控制器132可在需要相對有限計(jì)算資源的數(shù)據(jù)連接(諸如低引腳計(jì)數(shù)(LPC)總線或系統(tǒng)外圍互連(SPI)總線)上與I/O子系統(tǒng)122通信。此外,嵌入式控制器132相比處理器130和/或I/O子系統(tǒng)122可制作在更老或更大的半導(dǎo)體工藝節(jié)點(diǎn)上。因此,嵌入式控制器132設(shè)計(jì)、制造或定制可能相對不貴。
      [0017]外圍裝置134可實(shí)施為計(jì)算裝置100的任何外圍裝置組件。例如,外圍裝置134可實(shí)施為人類輸入裝置、顯示器、指示器(諸如發(fā)光二極管(LED))、傳感器(諸如溫度傳感器或裝置插入傳感器)、開關(guān)或按鈕。外圍裝置134可提供計(jì)算裝置100的平臺(tái)特定功能性,諸如確定計(jì)算機(jī)100的蓋是否蓋上,確定媒體是否已經(jīng)被插入到媒體驅(qū)動(dòng)器中,或者對用戶與硬件按鈕的交互做出響應(yīng)。每一個(gè)外圍裝置134都可以通信方式直接耦合到I/O子系統(tǒng)122或嵌入式控制器132。每個(gè)外圍裝置134都可使用任何適當(dāng)?shù)挠布涌诨蛲ㄐ艆f(xié)議進(jìn)行通信。從而,每個(gè)外圍裝置134都不需要耦合到I/O子系統(tǒng)122的專用GP1引腳。
      [0018]現(xiàn)在參考圖2,在一個(gè)說明性實(shí)施例中,計(jì)算裝置100在操作期間建立環(huán)境200。說明性環(huán)境200包含若干應(yīng)用202、包含虛擬GP1控制器驅(qū)動(dòng)器206的操作系統(tǒng)204、虛擬GP1控制器固件接口 208以及虛擬GP1控制器212。環(huán)境200的各種模塊和/或組件可實(shí)施為硬件、固件、軟件或它們的組合。
      [0019]應(yīng)用202配置成讀、寫或以別的方式訪問來自由虛擬GP1控制器212仿真的虛擬GP1引腳的數(shù)據(jù),下面進(jìn)一步描述。應(yīng)用202可提供用戶級(jí)交互功能,以及實(shí)用或操作系統(tǒng)級(jí)功能,諸如電源管理或入塢端口管理。在一些實(shí)施例中,應(yīng)用202可包含使用虛擬GP1引腳連接的外圍裝置134的高級(jí)裝置驅(qū)動(dòng)器。在那些實(shí)施例中,裝置驅(qū)動(dòng)器可以是在外圍裝置134連接到物理GP1引腳的情形中使用的相同的裝置驅(qū)動(dòng)器。
      [0020]操作系統(tǒng)204配置成管理應(yīng)用202,并控制對虛擬GP1引腳的訪問。操作系統(tǒng)204包含裝置驅(qū)動(dòng)器的一個(gè)或多個(gè)標(biāo)準(zhǔn)化接口。相應(yīng)地,操作系統(tǒng)204創(chuàng)建并管理若干裝置驅(qū)動(dòng)器,包含虛擬GP1控制器驅(qū)動(dòng)器206。操作系統(tǒng)204可將從應(yīng)用202(在一些實(shí)施例中包含外圍裝置驅(qū)動(dòng)器或其它軟件/固件)接收的GP1命令轉(zhuǎn)發(fā)到虛擬GP1控制器驅(qū)動(dòng)器206。此外,操作系統(tǒng)204可單獨(dú)生存GP1命令,并將命令發(fā)送到虛擬GP1控制器驅(qū)動(dòng)器206。此外,如上所述,操作系統(tǒng)204可對由虛擬GP1控制器固件接口 208生成的中斷做出響應(yīng)。響應(yīng)于此類中斷,操作系統(tǒng)204可向虛擬GP1控制器驅(qū)動(dòng)器206發(fā)送GP1命令,例如確定中斷源的查詢命令。操作系統(tǒng)204可使用任何技術(shù),例如通過調(diào)用由虛擬GP1控制器驅(qū)動(dòng)器206實(shí)現(xiàn)的若干回叫(callback)函數(shù)向虛擬GP1控制器驅(qū)動(dòng)器206發(fā)送GP1命令。
      [0021]虛擬GP1控制器驅(qū)動(dòng)器206配置成從操作系統(tǒng)204接收GP1命令,并將GP1命令轉(zhuǎn)發(fā)到虛擬GP1控制器固件接口 208。虛擬GP1控制器驅(qū)動(dòng)器206可處理或格式化由虛擬GP1控制器固件接口 208所需的GP1命令。在一些實(shí)施例中,GP1命令可未做大改變地通過虛擬GP1控制器驅(qū)動(dòng)器206。虛擬GP1控制器驅(qū)動(dòng)器206實(shí)現(xiàn)操作系統(tǒng)204的標(biāo)準(zhǔn)GP1驅(qū)動(dòng)器接口;從而,從操作系統(tǒng)204的角度看,虛擬GP1控制器驅(qū)動(dòng)器206可與物理GP1引腳的驅(qū)動(dòng)器互換。虛擬GP1控制器驅(qū)動(dòng)器206從而可駐留在操作系統(tǒng)204的地址空間內(nèi)。在一些實(shí)施例中,虛擬GP1控制器驅(qū)動(dòng)器206和操作系統(tǒng)204可由不同實(shí)體提供;例如,虛擬GP1控制器驅(qū)動(dòng)器206可由平臺(tái)硬件供應(yīng)商提供。
      [0022]虛擬GP1控制器固件接口 208配置成從虛擬GP1控制器驅(qū)動(dòng)器206接收GP1命令。附加地或備選地,虛擬GP1控制器固件接口 208可響應(yīng)于由虛擬GP1控制器212生成或處置的GP1事件而中斷或以別的方式發(fā)信號(hào)通知操作系統(tǒng)204。虛擬GP1控制器固件接口 208可實(shí)現(xiàn)用于與物理GP1引腳通信的標(biāo)準(zhǔn)化固件接口。例如,在一些實(shí)施例中,虛擬GP1控制器固件接口208可實(shí)現(xiàn)由高級(jí)配置與電源接口(ACPI)規(guī)范所定義的固件控制方法。那個(gè)固件控制方法可實(shí)施為可由計(jì)算裝置100解釋的標(biāo)準(zhǔn)化虛擬機(jī)架構(gòu)(即“字節(jié)碼”)的指令集合。在一些實(shí)施例中,那些功能可由子模塊(例如固件控制方法210)執(zhí)行。
      [0023]虛擬GP1控制器212配置成仿真一個(gè)或多個(gè)虛擬GP1引腳以實(shí)現(xiàn)由虛擬GP1控制器固件接口 208接收的GP1命令。附加地或備選地,虛擬GP1控制器212配置成接收并實(shí)現(xiàn)與虛擬GP1引腳狀態(tài)相關(guān)的GP1事件。例如,GP1事件可基于計(jì)算裝置100的軟件事件對仿真虛擬GP1引腳值的改變做出響應(yīng)。作為另一示例,GP1事件可基于外圍裝置134和/或嵌入式控制器132的狀態(tài)對仿真虛擬GP1引腳值的改變做出響應(yīng)。虛擬GP1控制器212可使用計(jì)算裝置100的任何支持資源仿真虛擬GP1引腳。例如,虛擬GP1控制器212可用軟件仿真虛擬GP1引腳,在一些實(shí)施例中,使用存儲(chǔ)器126的保留段來存儲(chǔ)與虛擬GP1引腳狀態(tài)相關(guān)的數(shù)據(jù)。附加地或備選地,虛擬GP1控制器212可通過適配一個(gè)或多個(gè)外圍裝置134的行為來仿真虛擬GP1引腳。在一些實(shí)施例中,虛擬GP1控制器212可通過適配一個(gè)或多個(gè)嵌入式控制器132的行為例如通過將嵌入式控制器132的資源(例如I/O引腳或總線)適配成看起來好像GP1引腳或通過將嵌入式控制器132的資源多路復(fù)用成看起來好像幾個(gè)獨(dú)立的GP1引腳來仿真虛擬GP1引腳。虛擬GP1控制器212可實(shí)施為計(jì)算裝置100的應(yīng)用代碼、操作系統(tǒng)驅(qū)動(dòng)器代碼或固件代碼的任何組合。在一些實(shí)施例中,那些功能可由一個(gè)或多個(gè)子模塊例如由仿真模塊214、外圍裝置模塊216或嵌入式控制器模塊218執(zhí)行。盡管圖示為單獨(dú)模塊,但在一些實(shí)施例中,虛擬GP1控制器212可包含在虛擬GP1控制器固件接口 208和/或固件控制方法210中,或以別的方式與之組合。
      [0024]現(xiàn)在參考圖3,在使用時(shí),計(jì)算裝置100可執(zhí)行用于初始化并仿真GP1引腳的方法300。方法300開始于框302,在此計(jì)算裝置100初始化虛擬GP1控制器212。計(jì)算裝置100可執(zhí)行對于虛擬GP1控制器212所必需的任何初始化,以仿真虛擬GP1弓I腳,包含初始化任何需要的數(shù)據(jù)結(jié)構(gòu)或通信鏈路。在一些實(shí)施例中,在框304,計(jì)算裝置100可初始化用于虛擬GP1引腳的固件控制的后備存儲(chǔ)器區(qū)域。后備存儲(chǔ)器可被實(shí)施為由固件保留的主存儲(chǔ)器126的段,并且從而不可用于由操作系統(tǒng)204和/或應(yīng)用202使用。后備存儲(chǔ)器可由虛擬GP1控制器212用于存儲(chǔ)虛擬GP1引腳的狀態(tài),例如,含有與虛擬GP1引腳關(guān)聯(lián)的值的寄存器和含有虛擬GP1引腳的控制行為的值的寄存器。在一些實(shí)施例中,在框306,計(jì)算裝置100可初始化嵌入式控制器132和/或外圍裝置134。計(jì)算裝置100可執(zhí)行所需的任何初始化,例如發(fā)送重置信號(hào)或初始化命令。
      [0025]在框308,計(jì)算裝置100加載虛擬GP1控制器固件接口 208。計(jì)算裝置100可使用與操作系統(tǒng)204兼容的任何技術(shù)來加載虛擬GP1控制器固件接口 208。在一些實(shí)施例中,在框310,計(jì)算裝置100可初始化固件控制方法210,并將固件控制方法210存儲(chǔ)在系統(tǒng)數(shù)據(jù)表中。固件控制方法210可實(shí)施為能夠管理操作系統(tǒng)204與虛擬GP1控制器212之間通信的任何固件例程。例如,固件控制方法210可實(shí)施為由ACPI規(guī)范所定義的控制方法。ACPI控制方法可實(shí)施為用編譯成ACPI機(jī)器語言(AML)的ACPI源語言(ASL)寫的斷言和/或指令集。AML可實(shí)施為可由操作系統(tǒng)204翻譯的字節(jié)碼的集合。固件控制方法210的AML可被加載到存儲(chǔ)在存儲(chǔ)器126中的一個(gè)或多個(gè)ACPI表中。在運(yùn)行時(shí)間,操作系統(tǒng)204可通過查找存儲(chǔ)在ACPI表中的適當(dāng)AML來訪問固件控制方法210。計(jì)算裝置100可中斷固件控制方法210的AML以便執(zhí)行虛擬GP1控制器固件接口 208的功能。盡管圖示為單個(gè)固件控制方法210,但在一些實(shí)施例中,虛擬GP1控制器固件接口 208可包含任何數(shù)量的固件控制方法210。例如,虛擬GP1控制器固件接口 208可被實(shí)施為包含若干ACPI控制方法的ACPI裝置。
      [0026]在框312,計(jì)算裝置100加載操作系統(tǒng)204。計(jì)算裝置100可執(zhí)行將控制傳到操作系統(tǒng)204的固件引導(dǎo)加載程序。在加載操作系統(tǒng)204期間或之后,在框314,計(jì)算裝置100加載虛擬GP1控制器驅(qū)動(dòng)器206。例如,在一些實(shí)施例中,操作系統(tǒng)204可在仿真由平臺(tái)固件定義的虛擬GP1控制器裝置時(shí)加載虛擬GP1控制器驅(qū)動(dòng)器206。加載虛擬GP1控制器驅(qū)動(dòng)器206允許操作系統(tǒng)204傳遞到虛擬GP1控制器固件接口 208,并因此與虛擬GP1引腳交互。在一些實(shí)施例中,計(jì)算裝置100可參考一個(gè)或多個(gè)系統(tǒng)數(shù)據(jù)表來選擇對于加載的虛擬GP1控制器固件接口 208適當(dāng)?shù)奶摂MGP1控制器驅(qū)動(dòng)器206。
      [0027I在框316,計(jì)算裝置100運(yùn)行操作系統(tǒng)204(包含由操作系統(tǒng)204執(zhí)行的任何應(yīng)用202)并監(jiān)視GP1事件。GP1事件可包含由操作系統(tǒng)204引起的事件,包含由一個(gè)或多個(gè)應(yīng)用202請求的GP1事件。GP1事件還可包含由虛擬GP1控制器212引起的事件,包含源自于嵌入式控制器132和/或外圍裝置134的軟件始發(fā)的事件或多個(gè)事件。GP1事件還可包含由虛擬GP1控制器固件接口 208觸發(fā)的中斷。下面結(jié)合圖4和圖5詳細(xì)描述用于處理GP1事件的方法。在一些實(shí)施例中,在框318,計(jì)算裝置100可實(shí)現(xiàn)處理器120和/或I/O子系統(tǒng)122的硬件中斷。除了別的之外,虛擬GP1控制器固件接口 208還可使用單個(gè)硬件中斷線向操作系統(tǒng)204發(fā)信號(hào)通知事件。此外,在一些實(shí)施例中,虛擬GP1控制器212可監(jiān)視硬件中斷以管理來自嵌入式控制器132和/或外圍裝置134的事件。方法300環(huán)回到框316以繼續(xù)運(yùn)行操作系統(tǒng)204并監(jiān)視GP1事件。
      [0028]現(xiàn)在參考圖4,在使用時(shí),計(jì)算裝置100可執(zhí)行用于監(jiān)視由操作系統(tǒng)204接收的GP1事件并對其做出響應(yīng)的方法400。方法400開始于框402,在此計(jì)算裝置100使用操作系統(tǒng)204監(jiān)視GP1事件。GP1事件可實(shí)施為與虛擬GP1引腳的狀態(tài)相關(guān)的任何平臺(tái)事件。GP1事件包含諸如讀、寫等GP1命令或控制命令,以及與虛擬GP1引腳狀態(tài)相關(guān)的中斷或其它異步事件。在一些實(shí)施例中,在框404,計(jì)算裝置100可從應(yīng)用202接收對于GP1服務(wù)的調(diào)用。操作系統(tǒng)204可實(shí)現(xiàn)標(biāo)準(zhǔn)化應(yīng)用編程接口(API)以從應(yīng)用202接收對于GP1服務(wù)的調(diào)用。對于服務(wù)的調(diào)用通常可被映射到一個(gè)或多個(gè)GP1命令,包含I/O命令和控制命令(下面相對于框410進(jìn)一步描述)。在一些實(shí)施例中,在框406,計(jì)算裝置100可俘獲從虛擬GP1控制器固件接口 208接收的GP1中斷??苫谔摂MGP1引腳的狀態(tài),例如基于從仿真的狀態(tài)改變或者底層外圍裝置134和/或嵌入式控制器132的狀態(tài)改變,生成中斷??墒褂脤τ?jì)算裝置100上的固件可用的任何方法發(fā)信號(hào)通知該中斷。例如,可作為由ACPI規(guī)范所定義的系統(tǒng)控制中斷(SCI)生成中斷。相對于圖5的方法500進(jìn)一步描述GP1中斷的生成。
      [0029]在框408,計(jì)算裝置100確定是否已經(jīng)接收GP1事件。如果否,則方法400環(huán)回到框402以繼續(xù)監(jiān)視GP1事件。如果已經(jīng)接收GP1事件,則方法400前進(jìn)到框410。
      [0030]在框410,計(jì)算裝置100將GP1命令從操作系統(tǒng)204發(fā)送到虛擬GP1控制器驅(qū)動(dòng)器206 AP1命令規(guī)定將由GP1引腳執(zhí)行的操作。盡管GP1命令最終將由虛擬GP1引腳實(shí)現(xiàn),但操作系統(tǒng)204對于物理和虛擬GP1引腳都使用相同接口。從而,操作系統(tǒng)204以及操作系統(tǒng)204的驅(qū)動(dòng)器接口對于物理和虛擬GP1引腳可能是一樣的。如上所述,GP1命令可響應(yīng)于來自應(yīng)用202的服務(wù)請求,或者可被創(chuàng)建成服務(wù)于從虛擬GP1控制器固件接口 208接收的中斷。計(jì)算裝置100可使用任何方法將命令發(fā)送到虛擬GP1控制器驅(qū)動(dòng)器206。例如,操作系統(tǒng)204可調(diào)用由虛擬GP1控制器驅(qū)動(dòng)器206定義的一個(gè)或多個(gè)回叫函數(shù)。那些回叫函數(shù)可以是GP1控制器的眾所周知驅(qū)動(dòng)器接口的一部分。從而,操作系統(tǒng)204以對于硬件GP1驅(qū)動(dòng)器相同的方式與虛擬GP1控制器驅(qū)動(dòng)器206交互。
      [0031]在一些實(shí)施例中,在框412,計(jì)算裝置100可將I/O命令發(fā)送到虛擬GP1控制器驅(qū)動(dòng)器206。1/0命令可包含從虛擬GP1引腳讀或?qū)憯?shù)據(jù)的命令。在一些實(shí)施例中,在框414,計(jì)算裝置100可將控制命令發(fā)送到虛擬GP1控制器驅(qū)動(dòng)器206??刂泼羁砂{(diào)整虛擬GP1引腳的行為或查詢虛擬GP1引腳的狀況的命令??刂泼羁砂瑔⒂没蚪锰摂MGP1引腳上的中斷、調(diào)整虛擬GP1引腳的邏輯級(jí)、調(diào)整虛擬GP1引腳的驅(qū)動(dòng)電流的命令或其它控制命令。例如,操作系統(tǒng)204可發(fā)送控制命令以確定引起GP1中斷的虛擬GP1引腳或多個(gè)引腳。
      [0032]在框416,計(jì)算裝置100將GP1命令從虛擬GP1控制器驅(qū)動(dòng)器206發(fā)送到虛擬GP1控制器固件接口 208。計(jì)算裝置100可使用任何技術(shù)來調(diào)用虛擬GP1控制器固件接口 208。例如,計(jì)算裝置100可從系統(tǒng)數(shù)據(jù)表中選擇固件控制方法210,并執(zhí)行該控制方法。在一些實(shí)施例中,可使用適當(dāng)字節(jié)碼中斷程序執(zhí)行固件控制方法210。
      [0033]在框418,計(jì)算裝置100使用虛擬GP1控制器212來仿真虛擬GP1引腳以實(shí)現(xiàn)GP1命令。計(jì)算裝置100可使用任何技術(shù)來虛擬化、抽象或以別的方式仿真虛擬GP1引腳的行為。當(dāng)然,應(yīng)該理解到,在一些實(shí)施例中,虛擬GP1控制器固件接口 208和虛擬GP1控制器212都可用固件或相同固件控制方法210實(shí)現(xiàn)。在一些實(shí)施例中,在框420,計(jì)算裝置100可仿真硬件GP1引腳的行為。例如,計(jì)算裝置100可通過讀或?qū)懘鎯?chǔ)在與那個(gè)具體虛擬GP1引腳關(guān)聯(lián)的后備存儲(chǔ)器中的值來對讀命令或?qū)懨钭龀鲰憫?yīng)。在一些實(shí)施例中,后備存儲(chǔ)器可實(shí)施為保留供固件使用的存儲(chǔ)器126的段,并且從而與操作系統(tǒng)204隔離。計(jì)算裝置100從而可存留指配給虛擬GP1引腳的值;也就是,計(jì)算裝置100可在至少某個(gè)參考時(shí)段保持與虛擬GP1引腳關(guān)聯(lián)的值。附加地或備選地,計(jì)算裝置100可使用軟件模型、調(diào)用裝置驅(qū)動(dòng)器或應(yīng)用或其它仿真技術(shù)來仿真硬件GP1的行為。
      [0034]在一些實(shí)施例中,在框422,計(jì)算裝置100可將外圍裝置134的接口或嵌入式控制器132適配為虛擬GP1引腳。換言之,計(jì)算裝置100可使用外圍裝置134或嵌入式控制器132仿真虛擬GP1引腳。適配外圍裝置134的接口可使外圍裝置134對操作系統(tǒng)204而言看起來好像經(jīng)由一個(gè)或多個(gè)硬件GP1引腳連接到計(jì)算裝置100。具體地說,計(jì)算裝置100可適配用于控制外圍裝置134的具體硬件或軟件接□。例如,計(jì)算裝置100可將GP1命令(例如讀、寫、狀況和事件)翻譯成由具體外圍裝置134使用的硬件接口。適配嵌入式控制器132可使嵌入式控制器132的一個(gè)或多個(gè)輸入或輸出對操作系統(tǒng)204看起來好像硬件GP1引腳。那些輸入或輸出可被實(shí)施為嵌入式控制器132上的物理GP1引腳。例如,計(jì)算裝置100可在適當(dāng)互連總線上向并且從嵌入式控制器132轉(zhuǎn)發(fā)GP1命令,并且嵌入式控制器132可用它自己的I/O資源(例如GP1引腳或其它硬件接口)執(zhí)行I/O操作。在一些實(shí)施例中,嵌入式控制器132從而可與一個(gè)或多個(gè)外圍裝置134對接。
      [0035]在一些實(shí)施例中,在框424,計(jì)算裝置100向或者從嵌入式控制器132和/或外圍裝置134復(fù)用GP1數(shù)據(jù)。例如,單個(gè)嵌入式控制器132可包含到外圍裝置134的若干硬件I/O連接,但可使用單個(gè)總線、引腳或中斷連接到I/O子系統(tǒng)122。虛擬GP1控制器212—一或計(jì)算裝置100的附加虛擬GP1控制器212——可仿真多于一個(gè)的虛擬GP1引腳。虛擬GP1控制器212可包裝、標(biāo)識(shí)或另外復(fù)用與每個(gè)虛擬GP1引腳相關(guān)的GP1命令,使得嵌入式控制器132可在每個(gè)硬件I/O連接上執(zhí)行適當(dāng)操作。例如,嵌入式控制器132可包含若干硬件GP1引腳,并且虛擬GP1控制器212可仿真那些硬件GP1引腳中每個(gè)引腳的虛擬GP1引腳。類似地,在一些實(shí)施例中,計(jì)算裝置100可復(fù)用與共享同一硬件連接的若干外圍裝置134關(guān)聯(lián)的幾個(gè)虛擬GP1引腳的GP1數(shù)據(jù)。如上所述,復(fù)用可減少支持外圍裝置134所需的處理器120和/或I/O子系統(tǒng)122上的物理引腳數(shù)。
      [0036]在一些實(shí)施例中,在框426,計(jì)算裝置100可響應(yīng)于虛擬GP1引腳的仿真而生成GP1事件。例如,軟件仿真可確定,應(yīng)該基于虛擬GP1引腳的新狀態(tài)生成GP1事件。作為另一示例,計(jì)算裝置100可確定,應(yīng)該基于與嵌入式控制器132和/或外圍裝置134的交互生成GP1事件。圖5的方法500可處理由虛擬GP1控制器212生成的GP1事件,如下所述。
      [0037]在框428,計(jì)算裝置100將GP1命令的結(jié)果經(jīng)由虛擬GP1控制器驅(qū)動(dòng)器206返回到操作系統(tǒng)204。例如,虛擬GP1控制器驅(qū)動(dòng)器206可從之前由操作系統(tǒng)204調(diào)用的回叫方法返回結(jié)果。返回的結(jié)果可包含狀況代碼或描述GP1事件的其它信息。在一些實(shí)施例中,在框430,計(jì)算裝置100例如可響應(yīng)于讀命令而將虛擬GP1數(shù)據(jù)返回到操作系統(tǒng)204。例如,虛擬GP1數(shù)據(jù)可表示與虛擬GP1引腳關(guān)聯(lián)的虛擬輸入值。操作系統(tǒng)204又可使用返回的GP1數(shù)據(jù)對應(yīng)用202做出響應(yīng),服務(wù)于中斷,或以別的方式處理GP1事件。在返回結(jié)果之后,方法400環(huán)回到框402以繼續(xù)監(jiān)視GP1事件。
      [0038]現(xiàn)在參考圖5,在使用時(shí),計(jì)算裝置100可執(zhí)行用于監(jiān)視由虛擬GP1控制器212接收的GP1事件并對其做出響應(yīng)的方法500。方法500開始于框502,在此計(jì)算裝置100使用虛擬GP1控制器212監(jiān)視GP1事件。虛擬GP1控制器212可監(jiān)視影響虛擬GP1引腳狀態(tài)的任何平臺(tái)事件,包含軟件事件、硬件事件、中斷、網(wǎng)絡(luò)事件或影響仿真的虛擬GP1引腳的任何其它事件。在框504,計(jì)算裝置100監(jiān)視軟件GP1事件。虛擬GP1控制器212本身例如可響應(yīng)于從虛擬GP1控制器驅(qū)動(dòng)器206接收的GP1命令而用軟件或固件生成GP1事件。上面關(guān)于圖4的框426進(jìn)一步描述了軟件GP1事件的生成。在一些實(shí)施例中,在框506,計(jì)算裝置100可監(jiān)視虛擬GP1控制器212的固件控制的后備存儲(chǔ)器。例如,如果平臺(tái)事件已經(jīng)被寫到后備存儲(chǔ)器,則計(jì)算裝置100可以確定后備存儲(chǔ)器中的任何值是否已經(jīng)改變。在一些實(shí)施例中,在框508,計(jì)算裝置100可監(jiān)視I/O與外圍裝置134。計(jì)算裝置100可以確定對外圍裝置134是否已經(jīng)接收或發(fā)送數(shù)據(jù),外圍裝置134是否已經(jīng)觸發(fā)了中斷,外圍裝置134是否已經(jīng)準(zhǔn)備好傳送,或者與外圍裝置134的任何其它I/O操作是否懸而未決。類似地,在一些實(shí)施例中,在框510,計(jì)算裝置100可監(jiān)視I/O與嵌入式控制器132。
      [0039]在框512,計(jì)算裝置100確定是否已經(jīng)接收GP1事件。如果否,則方法500環(huán)回到框502以繼續(xù)監(jiān)視GP1事件。如果接收GP1事件,則方法500前進(jìn)到框514。
      [0040]在框514,計(jì)算裝置100使用虛擬GP1控制器212來仿真虛擬GP1引腳以處置GP1事件。具體地說,可響應(yīng)于處置GP1事件而修改虛擬GP1引腳的仿真狀態(tài)。計(jì)算裝置100可使用任何技術(shù)來虛擬化、抽象、適配或以別的方式仿真虛擬GP1引腳的行為。當(dāng)然,應(yīng)該理解到,在一些實(shí)施例中,虛擬GP1控制器固件接口 208和虛擬GP1控制器212都可用固件或相同固件控制方法210實(shí)現(xiàn)。在一些實(shí)施例中,在框516,計(jì)算裝置100可仿真硬件GP1引腳的行為。例如,計(jì)算裝置100可以確定與虛擬GP1引腳關(guān)聯(lián)的虛擬輸入值或與虛擬GP1引腳關(guān)聯(lián)的虛擬輸出值。在一些實(shí)施例中,虛擬GP1引腳的仿真狀態(tài)可存儲(chǔ)在固件控制的后備存儲(chǔ)器中,如上所述。附加地或備選地,計(jì)算裝置100可使用軟件模型、調(diào)用裝置驅(qū)動(dòng)器或應(yīng)用或使用任何其它仿真技術(shù)來仿真硬件GP1的行為。
      [0041]在一些實(shí)施例中,在框518,計(jì)算裝置100可將外圍裝置134的接口或嵌入式控制器132適配為虛擬GP1引腳。適配外圍裝置134的接口可使外圍裝置134對操作系統(tǒng)204而言看起來好像經(jīng)由一個(gè)或多個(gè)硬件GP1引腳連接到計(jì)算裝置100。具體地說,計(jì)算裝置100可適配用于控制外圍裝置134的具體硬件或軟件接口。例如,計(jì)算裝置100可以解釋從具體外圍裝置134接收的I/O事件(例如輸入、輸出或中斷)以修改虛擬GP1引腳的仿真狀態(tài)。適配嵌入式控制器132可基于嵌入式控制器132的一個(gè)或多個(gè)輸入或輸出的狀態(tài)修改虛擬GP1引腳的狀態(tài)。那些輸入或輸出可被實(shí)施為嵌入式控制器132上的物理GP1引腳。在一些實(shí)施例中,嵌入式控制器132從而可與一個(gè)或多個(gè)外圍裝置134對接。
      [0042]在一些實(shí)施例中,在框520,計(jì)算裝置100向或者從嵌入式控制器132和/或外圍裝置134復(fù)用GP1數(shù)據(jù)。例如,單個(gè)嵌入式控制器132可包含到外圍裝置134的若干硬件I/O連接,但可使用單個(gè)總線、引腳或中斷連接到I/O子系統(tǒng)122。虛擬GP1控制器212—一或計(jì)算裝置10的附加虛擬GP1控制器212——可仿真多于一個(gè)的虛擬GP1引腳。虛擬GP1控制器212可包裝、標(biāo)識(shí)或另外復(fù)用在若干虛擬GI1引腳上從嵌入式控制器132接收的I/O事件。例如,嵌入式控制器132可包含若干硬件GP1引腳,并且虛擬GP1控制器212可仿真那些硬件GP1引腳中每個(gè)引腳的虛擬GP1引腳。類似地,在一些實(shí)施例中,計(jì)算裝置100可復(fù)用與共享同一硬件連接的若干外圍裝置134關(guān)聯(lián)的幾個(gè)虛擬GP1引腳的GP1數(shù)據(jù)。如上所述,復(fù)用可減少支持外圍裝置134所需的處理器120和/或I/O子系統(tǒng)122上的物理引腳數(shù)。
      [0043]在處置GP1事件之后,在框522,計(jì)算裝置100確定對于GP1事件是否已經(jīng)啟用了中斷。中斷可能之前已經(jīng)由從虛擬GP1控制器驅(qū)動(dòng)器206或虛擬GP1控制器固件接口 208接收的控制命令啟用??蓪τ诟鱾€(gè)虛擬GP1引腳啟用中斷。從而,計(jì)算裝置100可確定與啟用的虛擬GP1引腳相關(guān)的虛擬GP1數(shù)據(jù)是否已經(jīng)改變。附加地或備選地,計(jì)算裝置100可確定對于GP1事件,中斷是否是適當(dāng)?shù)?。例如,?dāng)虛擬GP1的狀態(tài)已經(jīng)改變時(shí),中斷可能是適當(dāng)?shù)摹H绻袛辔磫⒂?,則方法500環(huán)回到框502以繼續(xù)監(jiān)視GP1事件。如上所述,操作系統(tǒng)204可在隨后時(shí)間通過發(fā)送適當(dāng)GP1命令來同步讀取GP1數(shù)據(jù)。如果中斷被啟用,則方法500前進(jìn)到框524。
      [0044]在框524,計(jì)算裝置100觸發(fā)從虛擬GP1控制器固件接口208到操作系統(tǒng)204的中斷。虛擬GP1控制器212可調(diào)用虛擬GP1控制器固件接口 208以生成中斷。中斷可被實(shí)施為由I/O子系統(tǒng)122生成的物理中斷,其如上所述可實(shí)施為分立芯片,或包含在計(jì)算裝置100的片上系統(tǒng)(SoC)中。中斷可由操作系統(tǒng)204處置,操作系統(tǒng)204又可調(diào)用虛擬GP1控制器驅(qū)動(dòng)器206的適當(dāng)函數(shù)以服務(wù)于中斷。上面結(jié)合圖4的框406進(jìn)一步描述了固件中斷的處置。該中斷可使用與操作系統(tǒng)204兼容的任何適當(dāng)技術(shù)觸發(fā)。例如,中斷可實(shí)施為由ACPI規(guī)范所定義的系統(tǒng)控制中斷(SCI)。在觸發(fā)中斷之后,方法500環(huán)回到框502以繼續(xù)監(jiān)視GP1事件。
      [0045]盡管方法400、500已經(jīng)被描述為同步監(jiān)視GP1事件,但應(yīng)該理解,在一些實(shí)施例中方法400、500可以是事件驅(qū)動(dòng)的或異步的。另外,方法400、500可在計(jì)算裝置100上彼此、與操作系統(tǒng)204以及與計(jì)算裝置100的任何應(yīng)用202同時(shí)執(zhí)行。
      [0046]示例
      下面提供了本文公開的技術(shù)的說明性示例。技術(shù)的實(shí)施例可包含下面描述的示例中的任一個(gè)或多個(gè)示例以及它們的任何組合。
      [0047]示例包含用于仿真通用I/0(GP10)的計(jì)算裝置,所述計(jì)算裝置包括:虛擬GP1控制器驅(qū)動(dòng)器;虛擬GP1控制器固件接口;以及虛擬GP1控制器,其中虛擬GP1控制器驅(qū)動(dòng)器
      (i)從所述計(jì)算裝置的操作系統(tǒng)接收GP1命令,所述GP1命令規(guī)定將由GP1引腳實(shí)現(xiàn)的操作;以及(ii)響應(yīng)于接收所述GP1命令而將所述GP1命令發(fā)送到虛擬GP1控制器固件接口 ;所述虛擬GP1固件接口從所述虛擬GP1控制器驅(qū)動(dòng)器接收所述GP1命令;以及所述虛擬GP1控制器響應(yīng)于所述虛擬GP1控制器固件接口從所述虛擬GP1控制器驅(qū)動(dòng)器接收所述GP1命令而仿真虛擬GP1引腳來實(shí)現(xiàn)所述GP1命令。
      [0048]示例2包含示例I的主題,并且其中所述GP1命令包括讀命令;仿真所述虛擬GP1引腳來實(shí)現(xiàn)所述GP1命令包括確定所述虛擬GP1引腳的虛擬輸入值;以及所述虛擬GP1控制器驅(qū)動(dòng)器進(jìn)一步響應(yīng)于所述虛擬GP1引腳的仿真而將所述虛擬輸入值返回到所述操作系統(tǒng)。
      [0049]示例3包含示例I和示例2中任一示例的主題,并且其中所述GP1命令包括寫命令;以及仿真所述虛擬GP1引腳來實(shí)現(xiàn)所述GP1命令包括確定所述虛擬GP1的虛擬輸出值并在參考時(shí)段內(nèi)將所述虛擬輸出值保持在所述虛擬GP1引腳上。
      [0050]示例4包含示例1-3中任一示例的主題,并且其中所述GP1命令包括控制命令;以及仿真所述虛擬GP1引腳來實(shí)現(xiàn)所述GP1命令包括根據(jù)所述控制命令來修改所述虛擬GP1的狀態(tài)。
      [0051]示例5包含示例1-4中任一示例的主題,并且其中所述虛擬GP1控制器驅(qū)動(dòng)器進(jìn)一步(i)接收第二GP1命令,所述第二GP1命令規(guī)定將由第二GP1引腳實(shí)現(xiàn)的操作;以及(ii)將所述第二 GP1命令發(fā)送到所述虛擬GP1控制器固件接口;所述虛擬GP1控制器固件接口進(jìn)一步從所述虛擬GP1控制器驅(qū)動(dòng)器接收所述第二GP1命令;以及所述虛擬GP1控制器進(jìn)一步響應(yīng)于所述虛擬GP1控制器固件接口從所述虛擬GP1控制器驅(qū)動(dòng)器接收所述第二GP1命令而仿真第二虛擬GP1引腳來實(shí)現(xiàn)所述第二 GP1命令。
      [0052]示例6包含示例1-5中任一示例的主題,并且其中仿真所述虛擬GP1引腳包括使用所述計(jì)算裝置的微控制器作為所述虛擬GP1引腳來仿真所述虛擬GP1引腳。
      [0053]示例7包含示例1-6中任一示例的主題,并且其中微控制器包括計(jì)算裝置的嵌入式控制器。
      [0054]示例8包含示例1-7中任一示例的主題,并且其中仿真所述虛擬GP1引腳進(jìn)一步包括使用所述嵌入式控制器的物理GP1引腳作為所述虛擬GP1引腳來仿真所述虛擬GP1引腳。
      [0055]示例9包含示例1-8中任一示例的主題,并且其中所述虛擬GP1控制器進(jìn)一步使用所述計(jì)算裝置的所述嵌入式控制器作為所述第二虛擬GP1引腳來仿真第二虛擬GP1引腳。
      [0056]示例10包含示例1-9中任一示例的主題,并且其中仿真所述虛擬GP1引腳包括使用到所述計(jì)算裝置的外圍裝置的接口作為所述虛擬GP1引腳來仿真所述虛擬GP1引腳。
      [0057]示例11包含示例1-10中任一示例的主題,并且其中所述虛擬GP1控制器進(jìn)一步保留存儲(chǔ)器段以供所述虛擬GP1控制器使用;以及仿真所述虛擬GP1引腳包括使用所述保留存儲(chǔ)器段作為后備存儲(chǔ)器來仿真所述虛擬GP1引腳。
      [0058]示例12包含示例1-11中任一示例的主題,并且其中虛擬GP1控制器進(jìn)一步接收GP1事件,GP1事件與所述虛擬GP1引腳的狀態(tài)相關(guān);以及仿真所述虛擬GP1引腳以根據(jù)所述GP1事件來修改所述虛擬GP1引腳的狀態(tài)。
      [0059]示例13包含示例1-12中任一示例的主題,并且其中所述GP1事件包括從所述計(jì)算裝置的微控制器接收的I/o事件;以及仿真所述虛擬GP1引腳包括根據(jù)所述GP1事件來修改所述虛擬GP1引腳的狀態(tài)。
      [0000]示例14包含示例1-13中任一示例的主題,并且其中微控制器包括計(jì)算裝置的嵌入式控制器。
      [0061]示例15包含示例1-14中任一示例的主題,并且其中所述虛擬GP1控制器進(jìn)一步使用所述計(jì)算裝置的所述嵌入式控制器作為所述第二虛擬GP1引腳來仿真第二虛擬GP1引腳。
      [0062]示例16包含示例1-15中任一示例的主題,并且其中所述GP1事件包括從所述計(jì)算裝置的外圍裝置接收的I/O事件;以及仿真所述虛擬GP1引腳包括根據(jù)所述GP1事件來修改所述虛擬GP1引腳的狀態(tài)。
      [0063]示例17包含示例1-16中任一示例的主題,并且其中所述虛擬GP1控制器進(jìn)一步保留存儲(chǔ)器段以供所述虛擬GP1控制器使用;接收GP1事件包括檢測對保留的存儲(chǔ)器段的存儲(chǔ)器存??;以及仿真所述虛擬GP1引腳包括使用所述保留存儲(chǔ)器段作為后備存儲(chǔ)器來仿真所述虛擬GP1引腳。
      [0064]示例18包含示例1-17中任一示例的主題,并且其中所述虛擬GP1控制器固件接口進(jìn)一步響應(yīng)于修改所述虛擬GP1引腳的狀態(tài)而觸發(fā)所述計(jì)算裝置的I/O子系統(tǒng)對所述操作系統(tǒng)的物理中斷。
      [0065]示例19包含示例1-18中任一示例的主題,并且其中所述中斷使所述操作系統(tǒng)將所述GP1命令發(fā)送到所述虛擬GP1控制器驅(qū)動(dòng)器。
      [0066]示例20包含示例1-19中任一示例的主題,并且其中由虛擬GP1控制器驅(qū)動(dòng)器接收GP1命令包括從操作系統(tǒng)接收回叫方法。
      [0067]示例21包含示例1-20中任一示例的主題,并且其中虛擬GP1控制器固件接口包括用于虛擬機(jī)的控制方法,所述控制方法由所述計(jì)算裝置的字節(jié)碼解釋器解釋。
      [0068]示例22包含示例1-21中任一示例的主題,并且其中虛擬GP1控制器固件接口包括高級(jí)配置與電源接口( ACPI)裝置,其包含多種ACPI控制方法。
      [0069]示例23包含用于仿真計(jì)算裝置上的通用I/0(GP10)的方法,所述方法包括:所述計(jì)算裝置的操作系統(tǒng)的虛擬GP1控制器驅(qū)動(dòng)器接收GP1命令,所述GP1命令規(guī)定將由GP1引腳實(shí)現(xiàn)的操作;響應(yīng)于接收所述GP1命令而將所述GP1命令從所述虛擬GP1控制器驅(qū)動(dòng)器發(fā)送到所述計(jì)算裝置的虛擬GP1控制器固件接口;所述虛擬GP1控制器固件接口從所述虛擬GP1控制器驅(qū)動(dòng)器接收所述GP1命令;以及所述計(jì)算裝置的虛擬GP1控制器響應(yīng)于所述虛擬GP1控制器固件接口從所述虛擬GP1控制器驅(qū)動(dòng)器接收所述GP1命令而仿真虛擬GP1引腳來實(shí)現(xiàn)所述GP1命令。
      [0070]示例24包含示例23的主題,并且其中接收GP1命令包括接收讀命令;仿真虛擬GP1引腳來實(shí)現(xiàn)GP1命令包括確定虛擬GP1引腳的虛擬輸入值;以及所述方法進(jìn)一步包括:響應(yīng)于仿真虛擬GP1引腳而將虛擬輸入值從虛擬GP1控制器驅(qū)動(dòng)器返回到操作系統(tǒng)。
      [0071]示例25包含示例23和示例24中任一示例的主題,并且其中接收GP1命令包括接收寫命令;以及仿真所述虛擬GP1引腳來實(shí)現(xiàn)所述GP1命令包括確定所述虛擬GP1的虛擬輸出值并在參考時(shí)段內(nèi)將所述虛擬輸出值保持在所述虛擬GP1引腳上。
      [0072]示例26包含示例23-25中任一示例的主題,并且其中接收GP1命令包括接收控制命令;以及仿真所述虛擬GP1引腳來實(shí)現(xiàn)所述GP1命令包括根據(jù)所述控制命令來修改所述虛擬GP1的狀態(tài)。
      [0073]示例27包含示例23-26中任一示例的主題,并且進(jìn)一步包含:虛擬GP1控制器驅(qū)動(dòng)器接收第二 GP1命令,第二 GP1命令規(guī)定將由第二 GP1引腳實(shí)現(xiàn)的操作;將所述第二 GP1命令從所述虛擬GP1控制器驅(qū)動(dòng)器發(fā)送到所述虛擬GP1控制器固件接口;所述虛擬GP1控制器固件接口從所述虛擬GP1控制器驅(qū)動(dòng)器接收所述第二GP1命令;以及所述計(jì)算裝置的虛擬GP1控制器響應(yīng)于所述虛擬GP1控制器固件接口從所述虛擬GP1控制器驅(qū)動(dòng)器接收所述第二 GP1命令而仿真第二虛擬GP1引腳來實(shí)現(xiàn)所述第二 GP1命令。
      [0074]示例28包含示例23-27中任一示例的主題,并且其中仿真所述虛擬GP1引腳包括使用所述計(jì)算裝置的微控制器作為所述虛擬GP1引腳來仿真所述虛擬GP1引腳。
      [0075]示例29包含示例23-28中任一示例的主題,并且其中使用微控制器仿真虛擬GP1引腳包括使用所述計(jì)算裝置的嵌入式控制器作為所述虛擬GP1引腳來仿真所述虛擬GP1引腳。
      [0076]示例30包含示例23-29中任一示例的主題,并且其中仿真所述虛擬GP1引腳進(jìn)一步包括使用所述嵌入式控制器的物理GP1引腳作為所述虛擬GP1引腳來仿真所述虛擬GP1引腳。
      [0077]示例31包含示例23-30中任一示例的主題,并且進(jìn)一步包含:計(jì)算裝置的虛擬GP1控制器使用計(jì)算裝置的嵌入式控制器作為第二虛擬GP1引腳來仿真第二虛擬GP1引腳。
      [0078]示例32包含示例23-31中任一示例的主題,并且其中仿真所述虛擬GP1引腳包括使用到所述計(jì)算裝置的外圍裝置的接口作為所述虛擬GP1引腳來仿真所述虛擬GP1引腳。
      [0079]示例33包含示例23-32中任一示例的主題,并且進(jìn)一步包含:保留存儲(chǔ)器段供虛擬GP1控制器使用;其中仿真虛擬GP1引腳包括使用所述保留存儲(chǔ)器段作為后備存儲(chǔ)器來仿真所述虛擬GP1引腳。
      [0080]示例34包含示例23-33中任一示例的主題,并且進(jìn)一步包含:所述虛擬GP1控制器接收GP1事件,所述GP1事件與所述虛擬GP1引腳的狀態(tài)相關(guān);以及所述虛擬GP1控制器仿真所述虛擬GP1引腳以根據(jù)所述GP1事件來修改所述虛擬GP1引腳的狀態(tài)。
      [0081]示例35包含示例23-34中任一示例的主題,并且其中接收所述GP1事件包括從所述計(jì)算裝置的微控制器接收I/o事件;以及仿真所述虛擬GP1引腳包括根據(jù)所述GP1事件來修改所述虛擬GP1引腳的狀態(tài)。
      [0082I示例36包含示例23-35中任一示例的主題,并且其中接收I/O事件包括從計(jì)算裝置的嵌入式控制器接收I/O事件。
      [0083]示例37包含示例23-36中任一示例的主題,并且進(jìn)一步包含:虛擬GP1控制器使用計(jì)算裝置的嵌入式控制器作為第二虛擬GP1引腳來仿真第二虛擬GP1引腳。
      [0084]示例38包含示例23-37中任一示例的主題,并且其中接收所述GP1事件包括從所述計(jì)算裝置的外圍裝置接收I/o事件;以及仿真所述虛擬GP1引腳包括根據(jù)所述GP1事件來修改所述虛擬GP1引腳的狀態(tài)。
      [0085]示例39包含示例23-38中任一示例的主題,并且進(jìn)一步包含:保留存儲(chǔ)器段供虛擬GP1控制器使用;其中接收GP1事件包括檢測對保留的存儲(chǔ)器段的存儲(chǔ)器存??;以及其中仿真虛擬GP1引腳包括使用所述保留存儲(chǔ)器段作為后備存儲(chǔ)器來仿真所述虛擬GP1引腳。
      [0086]示例40包含示例23-39中任一示例的主題,并且進(jìn)一步包含:所述虛擬GP1控制器固件接口響應(yīng)于修改所述虛擬GP1引腳的狀態(tài)而觸發(fā)所述計(jì)算裝置的I/O子系統(tǒng)對所述操作系統(tǒng)的物理中斷。
      [0087]示例41包含示例23-40中任一示例的主題,并且其中所述中斷使所述操作系統(tǒng)將所述GP1命令發(fā)送到所述虛擬GP1控制器驅(qū)動(dòng)器。
      [0088]示例42包含示例23-41中任一示例的主題,并且其中由虛擬GP1控制器驅(qū)動(dòng)器接收GP1命令包括從操作系統(tǒng)接收回叫方法。
      [0089]示例43包含示例23-42中任一示例的主題,并且其中虛擬GP1控制器固件接口包括用于虛擬機(jī)的控制方法,所述控制方法由所述計(jì)算裝置的字節(jié)碼解釋器解釋。
      [0090]示例44包含示例23-43中任一示例的主題,并且其中虛擬GP1控制器固件接口包括高級(jí)配置與電源接口( ACPI)裝置,包含多種ACPI控制方法。
      [0091 ]示例45包含計(jì)算裝置,計(jì)算裝置包括:處理器;以及存儲(chǔ)器,其中存儲(chǔ)有多個(gè)指令,所述指令當(dāng)由處理器執(zhí)行時(shí)使計(jì)算裝置執(zhí)行示例23-44中任一個(gè)的方法。
      [0092]示例46包含一個(gè)或多個(gè)機(jī)器可讀存儲(chǔ)介質(zhì),其包括其上存儲(chǔ)的多個(gè)指令,所述指令響應(yīng)于被執(zhí)行而導(dǎo)致計(jì)算裝置執(zhí)行示例23-44中任一個(gè)的方法。
      [0093]示例47包含包括用于執(zhí)行示例23-44中任一示例的方法的部件的電子裝置。
      [0094]示例48包含用于仿真通用I/0(GP10)的計(jì)算裝置,所述計(jì)算裝置包括:用于由計(jì)算裝置的操作系統(tǒng)的虛擬GP1控制器驅(qū)動(dòng)器接收GP1命令的部件,所述GP1命令規(guī)定將由GP1引腳實(shí)現(xiàn)的操作;用于響應(yīng)于接收所述GP1命令而將所述GP1命令從所述虛擬GP1控制器驅(qū)動(dòng)器發(fā)送到所述計(jì)算裝置的虛擬GP1控制器固件接口的部件;用于由所述虛擬GP1控制器固件接口從所述虛擬GP1控制器驅(qū)動(dòng)器接收所述GP1命令的部件;以及用于由所述計(jì)算裝置的虛擬GP1控制器響應(yīng)于所述虛擬GP1控制器固件接口從所述虛擬GP1控制器驅(qū)動(dòng)器接收所述GP1命令而仿真虛擬GP1引腳來實(shí)現(xiàn)所述GP1命令的部件。
      [0095]示例49包含示例48的主題,并且其中用于接收GP1命令的部件包括用于接收讀命令的部件;用于仿真虛擬GP1引腳來實(shí)現(xiàn)GP1命令的部件包括用于確定虛擬GP1引腳的虛擬輸入值的部件;以及所述計(jì)算裝置進(jìn)一步包括:用于響應(yīng)于仿真虛擬GP1引腳而將虛擬輸入值從虛擬GP1控制器驅(qū)動(dòng)器返回到操作系統(tǒng)的部件。
      [0096]示例50包含示例48和示例49中任一示例的主題,并且其中用于接收GP1命令的部件包括用于接收寫命令的部件;用于仿真所述虛擬GP1引腳來實(shí)現(xiàn)GP1命令的部件包括用于確定所述虛擬GP1的虛擬輸出值并在參考時(shí)段內(nèi)將所述虛擬輸出值保持在所述虛擬GP1引腳上的部件。
      [0097]示例51包含示例48-50中任一示例的主題,并且其中用于接收GP1命令的部件包括用于接收控制命令的部件;以及用于仿真虛擬GP1引腳來實(shí)現(xiàn)GP1命令的部件包括用于根據(jù)所述控制命令來修改所述虛擬GP1的狀態(tài)的部件。
      [0098]示例52包含示例48-51中任一示例的主題,并且進(jìn)一步包含:用于由所述虛擬GP1控制器驅(qū)動(dòng)器接收第二 GP1命令的部件,所述第二 GP1命令規(guī)定將由第二 GP1引腳實(shí)現(xiàn)的操作;用于將所述第二GP1命令從所述虛擬GP1控制器驅(qū)動(dòng)器發(fā)送到所述虛擬GP1控制器固件接口的部件;用于由所述虛擬GP1控制器固件接口從所述虛擬GP1控制器驅(qū)動(dòng)器接收所述第二GP1命令的部件;以及用于由所述計(jì)算裝置的虛擬GP1控制器響應(yīng)于所述虛擬GP1控制器固件接口從所述虛擬GP1控制器驅(qū)動(dòng)器接收所述第二 GP1命令而仿真第二虛擬GP1引腳來實(shí)現(xiàn)所述第二 GP1命令的部件。
      [0099]示例53包含示例48-52中任一示例的主題,并且其中用于仿真所述虛擬GP1引腳的部件包括用于使用所述計(jì)算裝置的微控制器作為所述虛擬GP1引腳來仿真所述虛擬GP1引腳的部件。
      [0100]示例54包含示例48-53中任一示例的主題,并且其中用于使用微控制器仿真虛擬GP1引腳的部件包括用于使用所述計(jì)算裝置的嵌入式控制器作為所述虛擬GP1引腳來仿真所述虛擬GP1引腳的部件。
      [0101]示例55包含示例48-54中任一示例的主題,并且其中用于仿真虛擬GP1引腳的部件進(jìn)一步包括用于使用所述嵌入式控制器的物理GP1引腳作為所述虛擬GP1引腳來仿真所述虛擬GP1引腳的部件。
      [0102]示例56包含示例48-55中任一示例的主題,并且進(jìn)一步包含:用于由計(jì)算裝置的虛擬GP1控制器使用計(jì)算裝置的嵌入式控制器作為第二虛擬GP1引腳來仿真第二虛擬GP1引腳的部件。
      [0103]示例57包含示例48-56中任一示例的主題,并且其中用于仿真所述虛擬GP1引腳的部件包括用于使用到所述計(jì)算裝置的外圍裝置的接口作為所述虛擬GP1引腳來仿真所述虛擬GP1引腳的部件。
      [0104]示例58包含示例48-57中任一示例的主題,并且進(jìn)一步包含:用于保留存儲(chǔ)器段供虛擬GP1控制器使用的部件;其中用于仿真虛擬GP1引腳的部件包括用于使用所述保留存儲(chǔ)器段作為后備存儲(chǔ)器來仿真所述虛擬GP1引腳的部件。
      [0105]示例59包含示例48-58中任一示例的主題,并且進(jìn)一步包含:用于由所述虛擬GP1控制器接收GP1事件的部件,所述GP1事件與所述虛擬GP1引腳的狀態(tài)相關(guān);以及用于由所述虛擬GP1控制器仿真所述虛擬GP1引腳以根據(jù)所述GP1事件來修改所述虛擬GP1引腳的狀態(tài)的部件。
      [0106]示例60包含示例48-59中任一示例的主題,并且其中用于接收GP1事件的部件包括用于從計(jì)算裝置的微控制器接收I/O事件的部件;以及用于仿真所述虛擬GP1引腳的部件包括用于根據(jù)GP1事件來修改所述虛擬GP1引腳的狀態(tài)的部件。
      [0107]示例61包含示例48-60中任一示例的主題,并且其中用于接收I/O事件的部件包括用于從計(jì)算裝置的嵌入式控制器接收I/o事件的部件。
      [0108]示例62包含示例48-61中任一示例的主題,并且進(jìn)一步包含:用于由虛擬GP1控制器使用計(jì)算裝置的嵌入式控制器作為第二虛擬GP1引腳來仿真第二虛擬GP1引腳的部件。
      [0109]示例63包含示例48-62中任一示例的主題,并且其中用于接收GP1事件的部件包括用于從計(jì)算裝置的外圍裝置接收I/O事件的部件;以及用于仿真所述虛擬GP1引腳的部件包括用于根據(jù)GP1事件來修改所述虛擬GP1引腳的狀態(tài)的部件。
      [0110]示例64包含示例48-63中任一示例的主題,并且進(jìn)一步包含:用于保留存儲(chǔ)器段供虛擬GP1控制器使用的部件;其中用于接收GP1事件的部件包括用于檢測對保留的存儲(chǔ)器段的存儲(chǔ)器存取的部件;以及其中用于仿真虛擬GP1引腳的部件包括用于使用所述保留存儲(chǔ)器段作為后備存儲(chǔ)器來仿真所述虛擬GP1引腳的部件。
      [0111]示例65包含示例48-64中任一示例的主題,并且進(jìn)一步包含:用于由虛擬GP1控制器固件接口響應(yīng)于修改所述虛擬GP1引腳的狀態(tài)而觸發(fā)所述計(jì)算裝置的I/O子系統(tǒng)對所述操作系統(tǒng)的物理中斷的部件。
      [0112]示例66包含示例48-65中任一示例的主題,并且其中所述中斷使所述操作系統(tǒng)將所述GP1命令發(fā)送到所述虛擬GP1控制器驅(qū)動(dòng)器。
      [0113]示例67包含示例48-66中任一示例的主題,并且其中用于由虛擬GP1控制器驅(qū)動(dòng)器接收GP1命令的部件包括用于從操作系統(tǒng)接收回叫方法的部件。
      [0114]示例68包含示例48-67中任一示例的主題,并且其中虛擬GP1控制器固件接口包括用于虛擬機(jī)的控制方法,所述控制方法由所述計(jì)算裝置的字節(jié)碼解釋器解釋。
      [0115]示例69包含示例48-68中任一示例的主題,并且其中虛擬GP1控制器固件接口包括高級(jí)配置與電源接口( ACPI)裝置,包含多種ACPI控制方法。
      【主權(quán)項(xiàng)】
      1.一種用于仿真通用I/0(GP1)的計(jì)算裝置,所述計(jì)算裝置包括虛擬GP1控制器驅(qū)動(dòng)器、虛擬GP1控制器固件接口和虛擬GP1控制器,其中: 所述虛擬GP1控制器驅(qū)動(dòng)器將(i)從所述計(jì)算裝置的操作系統(tǒng)接收GP1命令,所述GP1命令規(guī)定將由GP1引腳實(shí)現(xiàn)的操作;以及(ii)響應(yīng)于接收所述GP1命令而將所述GP1命令發(fā)送到所述虛擬GP1控制器固件接口 ; 所述虛擬GP1固件接口將從所述虛擬GP1控制器驅(qū)動(dòng)器接收所述GP1命令;以及 所述虛擬GP1控制器將響應(yīng)于所述虛擬GP1控制器固件接口從所述虛擬GP1控制器驅(qū)動(dòng)器接收所述GP1命令而仿真虛擬GP1引腳來實(shí)現(xiàn)所述GP1命令。2.如權(quán)利要求1所述的計(jì)算裝置,其中: 所述GP1命令包括讀命令; 仿真所述虛擬GP1引腳來實(shí)現(xiàn)所述GP1命令包括確定所述虛擬GP1引腳的虛擬輸入值;以及 所述虛擬GP1控制器驅(qū)動(dòng)器進(jìn)一步響應(yīng)于所述虛擬GP1引腳的仿真而將所述虛擬輸入值返回到所述操作系統(tǒng)。3.如權(quán)利要求1所述的計(jì)算裝置,其中: 所述GP1命令包括寫命令;以及 仿真所述虛擬GP1引腳來實(shí)現(xiàn)所述GP1命令包括確定所述虛擬GP1的虛擬輸出值并在參考時(shí)段內(nèi)將所述虛擬輸出值保持在所述虛擬GP1引腳上。4.如權(quán)利要求1所述的計(jì)算裝置,其中: 所述GP1命令包括控制命令;以及 仿真所述虛擬GP1引腳來實(shí)現(xiàn)所述GP1命令包括根據(jù)所述控制命令來修改所述虛擬GP1的狀態(tài)。5.如權(quán)利要求1所述的計(jì)算裝置,其中: 所述虛擬GP1控制器驅(qū)動(dòng)器進(jìn)一步(i)接收第二 GP1命令,所述第二 GP1命令規(guī)定將由第二GP1引腳實(shí)現(xiàn)的操作;以及(ii)將所述第二GP1命令發(fā)送到所述虛擬GP1控制器固件接口; 所述虛擬GP1控制器固件接口進(jìn)一步從所述虛擬GP1控制器驅(qū)動(dòng)器接收所述第二GP1命令;以及 所述虛擬GP1控制器進(jìn)一步響應(yīng)于所述虛擬GP1控制器固件接口從所述虛擬GP1控制器驅(qū)動(dòng)器接收所述第二 GP1命令而仿真第二虛擬GP1引腳來實(shí)現(xiàn)所述第二 GP1命令。6.如權(quán)利要求1所述的計(jì)算裝置,其中仿真所述虛擬GP1引腳包括使用所述計(jì)算裝置的嵌入式控制器作為所述虛擬GP1引腳來仿真所述虛擬GP1引腳。7.如權(quán)利要求6所述的計(jì)算裝置,其中仿真所述虛擬GP1引腳進(jìn)一步包括使用所述嵌入式控制器的物理GP1引腳作為所述虛擬GP1引腳來仿真所述虛擬GP1引腳。8.如權(quán)利要求1所述的計(jì)算裝置,其中仿真所述虛擬GP1引腳包括使用到所述計(jì)算裝置的外圍裝置的接口作為所述虛擬GP1引腳來仿真所述虛擬GP1引腳。9.如權(quán)利要求1所述的計(jì)算裝置,其中: 所述虛擬GP1控制器進(jìn)一步保留存儲(chǔ)器段以供所述虛擬GP1控制器使用;以及 仿真所述虛擬GP1引腳包括使用所述保留存儲(chǔ)器段作為后備存儲(chǔ)器來仿真所述虛擬GP1引腳。10.如權(quán)利要求1-9中任一項(xiàng)所述的計(jì)算裝置,其中所述虛擬GP1控制器進(jìn)一步: 接收GP1事件,所述GP1事件與所述虛擬GP1引腳的狀態(tài)相關(guān);以及 仿真所述虛擬GP1引腳以根據(jù)所述GP1事件來修改所述虛擬GP1引腳的狀態(tài)。11.如權(quán)利要求10所述的計(jì)算裝置,其中: 所述GP1事件包括從所述計(jì)算裝置的嵌入式控制器接收的I/O事件;以及 仿真所述虛擬GP1引腳包括根據(jù)所述GP1事件來修改所述虛擬GP1引腳的狀態(tài)。12.如權(quán)利要求10所述的計(jì)算裝置,其中: 所述GP1事件包括從所述計(jì)算裝置的外圍裝置接收的I/O事件;以及 仿真所述虛擬GP1引腳包括根據(jù)所述GP1事件來修改所述虛擬GP1引腳的狀態(tài)。13.如權(quán)利要求10所述的計(jì)算裝置,其中所述虛擬GP1控制器固件接口進(jìn)一步響應(yīng)于修改所述虛擬GP1引腳的狀態(tài)而觸發(fā)所述計(jì)算裝置的I/O子系統(tǒng)對所述操作系統(tǒng)的物理中斷。14.如權(quán)利要求13所述的計(jì)算裝置,其中所述中斷使所述操作系統(tǒng)將所述GP1命令發(fā)送到所述虛擬GP1控制器驅(qū)動(dòng)器。15.如權(quán)利要求1-9中任一項(xiàng)所述的計(jì)算裝置,其中所述虛擬GP1控制器固件接口包括高級(jí)配置與電源接口(ACPI)裝置,所述高級(jí)配置與電源接口(ACPI)裝置包含多種ACPI控制方法,其中每種ACPI控制方法都包括用于虛擬機(jī)的控制方法,所述控制方法由所述計(jì)算裝置的字節(jié)碼解釋器解釋。16.—種用于仿真計(jì)算裝置上的通用I/0(GP10)的方法,所述方法包括: 由所述計(jì)算裝置的操作系統(tǒng)的虛擬GP1控制器驅(qū)動(dòng)器接收GP1命令,所述GP1命令規(guī)定將由GP1引腳實(shí)現(xiàn)的操作; 響應(yīng)于接收所述GP1命令而將所述GP1命令從所述虛擬GP1控制器驅(qū)動(dòng)器發(fā)送到所述計(jì)算裝置的虛擬GP1控制器固件接口 ; 由所述虛擬GP1控制器固件接口從所述虛擬GP1控制器驅(qū)動(dòng)器接收所述GP1命令;以及 響應(yīng)于所述虛擬GP1控制器固件接口從所述虛擬GP1控制器驅(qū)動(dòng)器接收所述GP1命令,由所述計(jì)算裝置的虛擬GP1控制器仿真虛擬GP1引腳來實(shí)現(xiàn)所述GP1命令。17.如權(quán)利要求16所述的方法,進(jìn)一步包括: 由所述虛擬GP1控制器驅(qū)動(dòng)器接收第二 GP1命令,所述第二 GP1命令規(guī)定將由第二GP1引腳實(shí)現(xiàn)的操作; 將所述第二 GP1命令從所述虛擬GP1控制器驅(qū)動(dòng)器發(fā)送到所述虛擬GP1控制器固件接口; 由所述虛擬GP1控制器固件接口從所述虛擬GP1控制器驅(qū)動(dòng)器接收所述第二 GP1命令;以及 由所述計(jì)算裝置的虛擬GP1控制器響應(yīng)于所述虛擬GP1控制器固件接口從所述虛擬GP1控制器驅(qū)動(dòng)器接收所述第二 GP1命令而仿真第二虛擬GP1引腳來實(shí)現(xiàn)所述第二 GP1命令。18.如權(quán)利要求16所述的方法,其中仿真所述虛擬GP1引腳包括使用所述計(jì)算裝置的嵌入式控制器作為所述虛擬GP1引腳來仿真所述虛擬GP1引腳。19.如權(quán)利要求16所述的方法,其中仿真所述虛擬GP1引腳包括使用到所述計(jì)算裝置的外圍裝置的接口作為所述虛擬GP1弓I腳來仿真所述虛擬GP1弓I腳。20.如權(quán)利要求16所述的方法,進(jìn)一步包括: 由所述虛擬GP1控制器接收GP1事件,所述GP1事件與所述虛擬GP1引腳的狀態(tài)相關(guān);以及 由所述虛擬GP1控制器仿真所述虛擬GP1引腳以根據(jù)所述GP1事件來修改所述虛擬GP1引腳的狀態(tài)。21.如權(quán)利要求20所述的方法,其中: 接收所述GP1事件包括從所述計(jì)算裝置的嵌入式控制器接收I/O事件;以及 仿真所述虛擬GP1引腳包括根據(jù)所述GP1事件來修改所述虛擬GP1引腳的狀態(tài)。22.如權(quán)利要求20所述的方法,其中: 接收所述GP1事件包括從所述計(jì)算裝置的外圍裝置接收I/O事件;以及 仿真所述虛擬GP1引腳包括根據(jù)所述GP1事件來修改所述虛擬GP1引腳的狀態(tài)。23.一種計(jì)算裝置,包括: 處理器;以及 存儲(chǔ)器,其中存儲(chǔ)有多個(gè)指令,所述指令當(dāng)由所述處理器執(zhí)行時(shí)使所述計(jì)算裝置執(zhí)行如權(quán)利要求16-22中任一項(xiàng)所述的方法。24.—個(gè)或多個(gè)機(jī)器可讀存儲(chǔ)介質(zhì),包括在其上存儲(chǔ)的多個(gè)指令,所述指令響應(yīng)于被執(zhí)行而導(dǎo)致計(jì)算裝置執(zhí)行如權(quán)利要求16-22中任一項(xiàng)所述的方法。25.—種計(jì)算裝置,包括用于執(zhí)行如權(quán)利要求16-22中任一項(xiàng)所述的方法的部件。
      【文檔編號(hào)】G06F9/455GK106062714SQ201580010920
      【公開日】2016年10月26日
      【申請日】2015年3月5日
      【發(fā)明人】N.J.亞當(dāng)斯, R.E.古夫, S.P.派薩拉巴拉甘加哈拉, P.杜塔
      【申請人】英特爾公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1