專利名稱:復(fù)合設(shè)備仿真的制作方法
技術(shù)領(lǐng)域:
本發(fā)明的實施例涉及復(fù)合設(shè)備仿真(composite device emulation)。
背景技術(shù):
今天,典型的遠(yuǎn)程管理系統(tǒng)依賴于在PC (個人計算機(jī))上運行的專用遠(yuǎn)程連接應(yīng)用軟件,以及依賴于操作系統(tǒng)處于穩(wěn)定狀態(tài)并且運行以便遠(yuǎn)程管理會話處于活動狀態(tài)。隨著即使在PC故障或關(guān)機(jī)的情況下仍然工作的硬件輔助的遠(yuǎn)程管理技術(shù)的引入,減少了這些依賴性并且允許實現(xiàn)更為復(fù)雜的遠(yuǎn)程管理能力,而這樣的能力在前一代PC或僅靠軟件的解決方案中是無法提供的。例如,名為"Virtual IDE Interface and Protocol for Use in IDE Redirection Communication"的美國專利申請序號11/027,754描述了一種機(jī)制,該機(jī)制例如能夠使用諸如IDE硬盤或CD-ROM之類的遠(yuǎn)程IDE存儲設(shè)備來引導(dǎo)系統(tǒng)。作為另一個示例,一些服務(wù)器系統(tǒng)具有分立、獨立的USB產(chǎn)品,所述USB產(chǎn)品具有支持預(yù)定義的一組被仿真設(shè)備的重定向功能。
在附圖中,通過示例而非限制的方式說明了本發(fā)明的實施例,并且其中相同的附圖標(biāo)記指代相似要素,其中圖1說明了根據(jù)本發(fā)明的實施例的系統(tǒng);圖2說明了根據(jù)本發(fā)明的實施例的數(shù)據(jù)仿真器;圖3說明了根據(jù)本發(fā)明的實施例的方法。
具體實施例方式以下所描述的示例僅用于說明的目的,而決不希望對本發(fā)明的實施例進(jìn)行限制。 因此,在詳細(xì)描述示例或者提供了一個或更多個示例的情況下,應(yīng)當(dāng)理解所述示例并不應(yīng)被解釋為是窮舉的,并且并非要將本發(fā)明的實施例限制為所描述的和/或所示出的那些示例。在一個示例實施例中,可以通過將設(shè)備功能(諸如鍵盤和鼠標(biāo),以及來自存儲設(shè)備的數(shù)據(jù)傳輸)從遠(yuǎn)程管理機(jī)器重定向到本地托管(managed)機(jī)器來實現(xiàn)遠(yuǎn)程管理。通過仿真這些設(shè)備,遠(yuǎn)程管理機(jī)器經(jīng)過基于硬件的通信信道在本地托管機(jī)器上作為獨立于OS 的設(shè)備而出現(xiàn)。設(shè)備的仿真使得本地托管機(jī)器能夠被遠(yuǎn)程管理。例如,對已經(jīng)變得不穩(wěn)定或者系統(tǒng)本地用戶無法修復(fù)的系統(tǒng)進(jìn)行的遠(yuǎn)程維修和支持都可以在遠(yuǎn)程被處理。在一個實施例中,可以使用USB (通用串行總線)協(xié)議來實現(xiàn)設(shè)備仿真,所述USB協(xié)議支持包括USB ⑶(光盤)驅(qū)動器、USB軟盤、USB鑰匙盤、USB鍵盤和USB鼠標(biāo)的各種類型的設(shè)備,以及即插即用和系統(tǒng)引導(dǎo)。伴隨著視頻重定向,設(shè)備仿真能夠通過LAN(局域網(wǎng))連接而形成KVM(鍵盤視頻鼠標(biāo))結(jié)構(gòu),并且仿真本地托管機(jī)器上的復(fù)合USB設(shè)備。各種版本的USB規(guī)范可以從 USB-IF (USB 開發(fā)者論壇)(位于 3855 Sff 153rd Drive, Beaverton, Oregon, 97006)獲得。 下文中,遠(yuǎn)程管理機(jī)器被稱作“管理控制臺”,而本地托管機(jī)器則被稱作“系統(tǒng)”。圖1是說明了根據(jù)一個實施例的計算系統(tǒng)100的框圖。在一些實施例中,計算系統(tǒng)100可以包括至少一個處理器102A、102B。這里所討論的“處理器”涉及用于完成計算任務(wù)的硬件和軟件資源的任意組合。例如,處理器可以包括中央處理單元(CPU),例如102A、 102B,用于執(zhí)行機(jī)器可讀指令以根據(jù)預(yù)定義的指令集來處理數(shù)據(jù),或用于容納固件。處理器可以包括具有多個處理核心的多核處理器??商娲兀幚砥骺梢允侵缚梢员话ㄔ诙嗪颂幚砥髦械奶幚砗诵?,其中操作系統(tǒng)可以將該處理核心當(dāng)作具有完整執(zhí)行資源集合的分立處理器。這些處理器可以是高性能的,以用于執(zhí)行復(fù)雜的應(yīng)用軟件。此外,系統(tǒng)100無需為了處理器102A、102B工作而處于活動的電源狀態(tài)。其它實現(xiàn)也是可能的。系統(tǒng)100可以包括至少一個或更多個另外的處理器102C。在一個實施例中,一個或更多個另外的處理器可以包括微控制器102C。在一個實施例中,微控制器102C可以包括管理引擎(manageability engine),其是可從英特爾 公司(位于2200 Mission College Blvd. ,Santa Clara,CA 95054)獲得的英特爾 .主動管理技術(shù)的一部分。管理引擎可以代表系統(tǒng)100中的應(yīng)用來執(zhí)行各種服務(wù)。管理引擎可以在輔助電源上運行,由此可以在所有電源狀態(tài)中使用。在一個實施例中,微控制器102可以嵌入在芯片組108上,具體地是MCH 108A上,然而本發(fā)明的實施例并不局限于此。在圖2中,處理器102C被示為位于芯片組108 上。在其它實施例中,作為替代,處理器102C也可以與一個或更多個CPU 102A、102B集成在一起。如各處所使用的,微控制器102C可以是指處理器的一種具體實現(xiàn);然而,本發(fā)明的實施例并不局限于此,并且所要理解的是,在其它實施例中微控制器102C可以泛指系統(tǒng) 100中的多個處理器其中之一。系統(tǒng)100還可以包括存儲器106。存儲器106可以存儲能夠被執(zhí)行的機(jī)器可執(zhí)行指令132,和/或能夠被訪問、操作和/或操縱的數(shù)據(jù)。這里所說的“機(jī)器可執(zhí)行”指令涉及可以由一個或更多個機(jī)器理解以執(zhí)行一個或更多個邏輯操作的表達(dá)。例如,機(jī)器可執(zhí)行指令132可以包括能夠由處理器編譯器解釋以便對一個或更多個數(shù)據(jù)對象執(zhí)行一個或更多個操作的指令。然而,這僅僅是機(jī)器可執(zhí)行指令的一個示例,而本發(fā)明的實施例并不局限于此。例如,存儲器106可以包括只讀的、大存儲容量的、隨機(jī)訪問的計算機(jī)可訪問存儲器, 非易失性存儲器,和/或一種或更多種其它類型的機(jī)器可訪問存儲器。在一個實施例中,存儲器106可以根據(jù)例如UMA (統(tǒng)一存儲器架構(gòu))進(jìn)行分區(qū),以使得存儲器106的一些部分可以為微控制器102C保留并且由微控制器102C使用。邏輯130可以被包括在系統(tǒng)100上,或者位于系統(tǒng)100的任意部分(例如,微控制器102C)之內(nèi)。邏輯130可以包括硬件、軟件,或者硬件和軟件的組合(例如,固件)。例如,邏輯130可以包括用于執(zhí)行這里所描述的操作的電路系統(tǒng)(例如,一個或更多個電路)。 例如,邏輯130可以包括一個或更多個數(shù)字電路、一個或更多個模擬電路、一個或更多個狀態(tài)機(jī)、可編程邏輯,和/或一個或更多個ASIC (專用集成電路)。邏輯130可以被硬線連接, 以執(zhí)行一個或更多個操作??商鎿Q地或附加地,邏輯130可以用諸如存儲器106這樣的存儲器中所存儲的機(jī)器可執(zhí)行指令132來具體實現(xiàn),以執(zhí)行那些操作??商鎿Q地或附加地,邏輯130可以用固件來具體實現(xiàn)。邏輯可以被包括在系統(tǒng)100的各種組件之內(nèi)。邏輯130可以被這里所描述的各種組件用來執(zhí)行各種功能。
芯片組108可以包括主橋/中樞系統(tǒng)(host bridge/hub system),其可以將每個 CPU 102A、102B與存儲器106相互耦合。芯片組108可以包括一個或更多個集成電路芯片, 諸如可以從英特爾 公司商業(yè)上提供的集成電路芯片組(例如,圖形、存儲器、圖形/存儲器以及I/O控制器中樞芯片組)中選擇的那些集成電路芯片,但是還可以、或者替代地使用其它一個或更多個集成電路芯片。芯片組108可以經(jīng)由存儲器總線112與存儲器106進(jìn)行通信,并且可以經(jīng)由系統(tǒng)總線110與處理器102A、102B進(jìn)行通信。在可替代實施例中,處理器102A、102B和存儲器106可以直接耦合(而不經(jīng)由芯片組108)至系統(tǒng)總線110。 根據(jù)一個實施例,芯片組108可以包括耦合到存儲器106的存儲器控制中樞 (MCH) 108A,以及輸入/輸出控制中樞(ICH) 108B,但是本發(fā)明的實施例并不局限于此。例如,MCH 108A的功能可以整體或部分集成到CPU上,并且ICH 108B可以是獨立芯片組。作為另一個示例,在一些實施例中,系統(tǒng)100無需包括芯片組108,而是一些或全部的芯片組功能可以被集成到處理器管芯(die)上。MCH 108A例如可以包括存儲器和圖形控制器。ICH 108B例如可以包括輸入/輸出控制器,其包括集成網(wǎng)絡(luò)接口 120以使得系統(tǒng)100能夠通過網(wǎng)絡(luò)116與遠(yuǎn)程系統(tǒng)(例如管理控制臺118)進(jìn)行通信。在另一個實施例中,所述網(wǎng)絡(luò)接口可以是附接到ICH 108B的獨立網(wǎng)絡(luò)接口卡(NIC)。系統(tǒng)還可以包括設(shè)備仿真器114。如這里的各個實施例中所描述的,設(shè)備仿真器 114可以仿真一個或更多個設(shè)備(“被仿真設(shè)備”)。如這里所使用的,“被仿真設(shè)備”是指在系統(tǒng)100中要被進(jìn)行仿真的設(shè)備。被仿真設(shè)備可以表示物理或虛擬設(shè)備。此外,所述物理或虛擬設(shè)備可以是系統(tǒng)100或管理控制臺118上的設(shè)備。例如,在一個實施例中,被仿真設(shè)備物理上并不位于系統(tǒng)100上。在另一個實施例中,被仿真設(shè)備可以并不存在于管理控制臺118上,而是可以由設(shè)備仿真器114為了預(yù)期功能而進(jìn)行虛擬仿真。在一個實施例中,設(shè)備仿真器114可以通過主機(jī)控制器的內(nèi)部端口嵌入在芯片組 108中,例如具體地是嵌入在108B中。然而,再次指出,本發(fā)明的實施例并不局限于此,并且作為替代,設(shè)備仿真器114也可以通過主機(jī)控制器的外部端口連接到芯片組108。此外, 其它的實現(xiàn)也是可能的。在實施例中,主機(jī)控制器使得能夠在其所支持的設(shè)備(例如,USB) 和操作系統(tǒng)之間進(jìn)行通信。在本發(fā)明的實施例中,設(shè)備仿真器114可以通過(使用發(fā)送到管理控制臺118以及從其接收的命令和數(shù)據(jù)控制)模仿系統(tǒng)100中的設(shè)備功能來仿真設(shè)備,從而所述設(shè)備仿真器可以對系統(tǒng)100表現(xiàn)為物理設(shè)備。設(shè)備仿真器114可以對應(yīng)于單功能的設(shè)備,或者對應(yīng)于多功能的復(fù)合設(shè)備。在一個實施例中,微控制器102可以位于MCH 108A上,并且設(shè)備仿真器114可以位于ICH 108B上。在可替代實施例中,微控制器102和設(shè)備仿真器114都可以位于同一集成電路上。然而,本發(fā)明的實施例在這些方面上并不受限制。處理器102々、1028、102(、存儲器106、總線110、112以及以上所描述的某些其它組件可以被包括在單個電路板(例如系統(tǒng)主板118)中,或者甚至集成在同一硅片上,但是本發(fā)明的實施例并不局限于此。圖2提供了設(shè)備仿真器的擴(kuò)展的說明。設(shè)備仿真器114可以包括一種或更多種功能。在USB設(shè)備仿真器的情況下,這些功能被實現(xiàn)為USB端點(endpoint)。如這里所使用的,端點通常是指設(shè)備仿真器上的功能的實現(xiàn)(例如,硬件、軟件、固件),但是并不局限于USB實現(xiàn)。
設(shè)備仿真器114可以包括至少一個端點,盡管示出了多個端點202A、202B、 202C、…、202N。每個端點202A、202B、202C、...、202N可以對應(yīng)于被仿真設(shè)備的一種功能。 端點202A、202B、202C、…、202N還可以維護(hù)狀態(tài)(包括完成信息)。例如,對于發(fā)往主機(jī)處理器102A、102B的事務(wù),端點202A、202B,202C、...、202N可以收集主機(jī)所生成的ACK(應(yīng)答),而對于來自主機(jī)處理器102A、102B的事務(wù),則可以生成對于主機(jī)處理器102A、102B的 ACK。每個端點202A、202B、202C、…、202N可以包括至少一個緩沖器206 (被示出為由所有端點使用的單個共享緩沖器)。此外,每個端點202A、202B、202C還可以包括至少一組寄存器208(同樣,被示出為由所有端點使用的單組共享寄存器)。緩沖器206可以存儲相應(yīng)設(shè)備的仿真信息(以下所描述的),并且還從主機(jī)控制器接收完成信息。所述至少一組寄存器208例如可以被微控制器102C用來控制所述一個或更多個端點202A、202B、202C、…、202N。微控制器102C可以通過對與端點202A、202B、202C、…、 202N相關(guān)聯(lián)的寄存器208進(jìn)行編程而使得端點202A、202B、202C、...、202N能夠仿真設(shè)備。 此外,微控制器102C可以根據(jù)所需端點的數(shù)目來啟用端點202A、202B、202C、…、202N仿真不同設(shè)備功能,或禁止端點202A、202B、202C、…、202N仿真不同設(shè)備功能。在一個實施例中,一旦端點202A、202B、202C、...、202N被啟用,設(shè)備仿真器114就可以通過例如ICH 108B 的內(nèi)部端口耦合到主機(jī)控制器。如上所述,設(shè)備仿真器114可以用作單功能設(shè)備,或者作為多功能設(shè)備。就此方面而言,設(shè)備仿真器114在其作為單功能設(shè)備時可以包括單個端點(例如,202A、202B、 202C、…、202N之一),而在其作為多功能復(fù)合設(shè)備時可以包括多個端點202A、202B、 202C、…、202N。在USB設(shè)備仿真的情況下,例如,設(shè)備仿真器114可以表示具有多種功能的復(fù)合USB設(shè)備,并且每種功能可以被設(shè)備仿真器114的端點202A、202B、202C、…、202N 所處理。在一個實施例中,設(shè)備功能可以被稱作接口。設(shè)備仿真器114還可以包括數(shù)據(jù)移動邏輯204,用以將仿真信息(以下所描述的) 移至緩沖器206,以及從緩沖器206移出仿真信息。如這里所使用的,數(shù)據(jù)移動邏輯是指用于傳輸數(shù)據(jù)的專用功能或?qū)S媚K。DMA(直接存儲器存取)引擎是數(shù)據(jù)移動邏輯的一個示例。圖3說明了根據(jù)本發(fā)明的實施例的方法。圖3的方法在框300開始并且繼續(xù)至框 302,在框302,所述方法可以包括在處理器處接收仿真信息,所述仿真信息對應(yīng)于被仿真設(shè)備的一種或更多種功能,并且所述仿真信息包括數(shù)據(jù)和命令中的至少一個。如這里所使用的,“仿真信息”是指可以被發(fā)送到管理控制臺118和/或從管理控制臺118接收的對應(yīng)于被仿真設(shè)備的命令或數(shù)據(jù)。仿真信息可以包括仿真命令和/或數(shù)據(jù)。在一個實施例中,仿真信息可以是外部發(fā)送的,例如,來自管理控制臺118。然而, 本發(fā)明的實施例并不局限于此,并且在一些實施例中,仿真信息可以是從系統(tǒng)100自身的一個或更多個組件發(fā)送的。在一個實施例中,會發(fā)生事件,其觸發(fā)在管理控制臺118和系統(tǒng) 100之間仿真信息的傳送。所述事件可以從管理控制臺118或系統(tǒng)100發(fā)起。例如,所述事件可以在管理控制臺118需要遠(yuǎn)程地在系統(tǒng)100上安裝操作系統(tǒng)的情況下被觸發(fā)(在這種情況下,管理控制臺118可以發(fā)起對存儲設(shè)備的仿真)?;蛘?,管理控制臺118可能需要遠(yuǎn)程地使用鍵盤來控制系統(tǒng)100 (在這種情況下,管理控制臺118可以發(fā)起對鍵盤的仿真)。 系統(tǒng)100可以通過網(wǎng)絡(luò)接口在網(wǎng)絡(luò)116接收仿真信息,但是本發(fā)明的實施例并不局限于此。仿真信息可以在系統(tǒng)100的微控制器102C處被接收,并且被存儲在為微控制器 102C保留的存儲器中,諸如存儲在存儲器106或者專用于微控制器102C的另一存儲器(未示出)中。在一個實施例中,在系統(tǒng)100處所接收的仿真信息可以與具有第一協(xié)議的設(shè)備相關(guān)聯(lián)。仿真信息隨后可以被轉(zhuǎn)換為第二協(xié)議。所述第一和第二協(xié)議可以是相同協(xié)議,或者它們可以是不同協(xié)議。在一個實施例中,第二協(xié)議(與發(fā)送設(shè)備相關(guān)聯(lián)的)可以是任意協(xié)議,而第一協(xié)議(與系統(tǒng)100相關(guān)聯(lián)的)為USB(通用串行總線),然而本發(fā)明的實施例并不局限于該標(biāo)準(zhǔn)。在2000年4月27日的通用串行總線規(guī)范修訂版2.0中定義了當(dāng)前版本的 USB協(xié)議,但是本發(fā)明的實施例并不局限于特定版本的USB。USB提供了一些便利。例如,由于在操作系統(tǒng)前(pre-operating system)引導(dǎo)時間就支持USB設(shè)備,所以仿真的USB設(shè)備能夠被動態(tài)插入正在運行的系統(tǒng)或者從正在運行的系統(tǒng)動態(tài)拔出。此外,標(biāo)準(zhǔn)的USB設(shè)備并不涉及專門的主機(jī)驅(qū)動程序開發(fā)。然而,本發(fā)明的實施例并不局限于此。在框304,所述方法可以包括根據(jù)所述仿真信息執(zhí)行多種功能中的至少一種功能的高級仿真,所述仿真由處理器執(zhí)行。在一個實施例中,微控制器102C可以管理對被仿真設(shè)備的高級仿真,而設(shè)備仿真器114例如可以在設(shè)備仿真器114的硬件電路中管理對被仿真設(shè)備的低級仿真。在該實施例中,微控制器102C還可以管理一個或更多個網(wǎng)絡(luò)協(xié)議,以使得能夠通過網(wǎng)絡(luò)116與一個或更多個管理控制臺(例如管理控制臺118)進(jìn)行通信。在另一個實施例中,對被仿真設(shè)備的高級和低級仿真都可以在例如設(shè)備仿真器114的硬件電路中實現(xiàn),而微控制器102C可以僅執(zhí)行對設(shè)備仿真器114的數(shù)據(jù)傳輸。高級仿真是指對被仿真設(shè)備進(jìn)行仿真,使得微控制器102C或設(shè)備仿真器114能夠在會話管理級別上表現(xiàn)得像被仿真設(shè)備一樣。低級仿真是指在協(xié)議級別上對被仿真設(shè)備進(jìn)行仿真。該高級仿真可以是特定于設(shè)備的(或者在被仿真設(shè)備是多功能的復(fù)合設(shè)備的情況下,特定于功能/接口的)。類似地,移至端點的數(shù)據(jù)/從端點移出的數(shù)據(jù)是特定于功能 /接口的,并且是功能/接口協(xié)議的一部分。例如,在設(shè)備仿真器125對具有多種功能的USB 復(fù)合設(shè)備進(jìn)行仿真的情況下,微控制器102C可以使仿真數(shù)據(jù)適合于USB事務(wù)分組,或者可以從USB事務(wù)分組中提取仿真數(shù)據(jù),諸如對于從設(shè)備仿真器114到微控制器102C(并隨后到網(wǎng)絡(luò))的數(shù)據(jù)的OUT事務(wù)、對于從微控制器102C(從網(wǎng)絡(luò))到設(shè)備仿真器114的數(shù)據(jù)的 IN事務(wù)、或者發(fā)送并返回控制/狀態(tài)信息的SETUP事務(wù)。在框306,所述方法可以包括將所述仿真信息從處理器傳輸?shù)皆O(shè)備仿真器。為了向設(shè)備仿真器114傳輸仿真信息,可以將仿真信息從存儲器(例如存儲器106)移動到與相應(yīng)的端點202A、202B、202C、…、202N相關(guān)聯(lián)的緩沖器206。在一個實施例中,數(shù)據(jù)移動邏輯 204可以被用來進(jìn)行上述操作。然而,在例如微控制器102C和設(shè)備仿真器114可以位于同一管芯的實施例中,并不需要使用數(shù)據(jù)移動邏輯。例如,微控制器102C可以被用來執(zhí)行去往/來自端點202A、202B、202C、...、202N的數(shù)據(jù)傳輸。緩沖器206中所存儲的仿真信息的格式可以與通過網(wǎng)絡(luò)傳輸?shù)姆抡嫘畔⒈3忠粯佣唇?jīng)處理,從而依賴于例如設(shè)備仿真器114中的復(fù)雜硬件去執(zhí)行協(xié)議轉(zhuǎn)換,或者微控制器102C可以通過可執(zhí)行代碼來處理協(xié)議轉(zhuǎn)換。在框308,所述方法可以包括由設(shè)備仿真器執(zhí)行多種功能中的至少一種功能的低級仿真。設(shè)備仿真器114隨后可以處理低級協(xié)議。例如,在一個實施例中,所述低級協(xié)議可以是USB鏈路層傳輸協(xié)議,諸如IN/OUT/SETUP事務(wù)排序、事務(wù)重試、地址分配等。
對于USB鍵盤仿真的示例而言,設(shè)備仿真器114可以通過IN事務(wù)接收對被仿真的 USB鍵盤中出現(xiàn)的按鍵中斷的查詢。設(shè)備仿真器114可以重試IN事務(wù),并且同時將對于IN 事務(wù)數(shù)據(jù)的請求轉(zhuǎn)發(fā)至微控制器102C。然后,微控制器102C在設(shè)備仿真器114的緩沖器 206中準(zhǔn)備針對中斷查詢的狀態(tài)。并且在主機(jī)控制器隨后再次重試IN事務(wù)時,設(shè)備仿真器 114能夠?qū)N事務(wù)的數(shù)據(jù)從緩沖器206傳送到主機(jī)控制器。隨后,主機(jī)控制器能夠通過類似的IN事務(wù)協(xié)議請求實際的按鍵數(shù)據(jù)。如果設(shè)備仿真器114是復(fù)雜的硬件,則除了處理高級協(xié)議之外還能處理低級協(xié)議。例如,設(shè)備仿真器114可以理解正在通過低級協(xié)議所傳送的命令并且對其進(jìn)行響應(yīng),而無需來自微控制器102C的支持(或者借助最小的支持)。設(shè)備仿真器114的硬件甚至可以轉(zhuǎn)換為最終網(wǎng)絡(luò)分組格式或者從最終網(wǎng)絡(luò)分組格式進(jìn)行轉(zhuǎn)換,以減少微控制器102C的工作。所述方法可以在框310處結(jié)束。在操作中,管理控制臺118所傳送的命令和/或數(shù)據(jù)可以對系統(tǒng)100表現(xiàn)為由物理或虛擬的被仿真設(shè)備(或其組合)所傳送的命令和/或數(shù)據(jù)。例如,管理控制臺118所傳送的鏡像文件可以對系統(tǒng)100表現(xiàn)為由耦合到系統(tǒng)100 的物理或虛擬CD-ROM(所述的“被仿真設(shè)備”)所傳送的鏡像文件;或者管理控制臺118所傳送的鍵盤敲擊可以對系統(tǒng)100表現(xiàn)為由耦合到系統(tǒng)100的被仿真鍵盤所傳送的相同鍵盤敲擊。作為示例,如果需要安裝操作系統(tǒng),并且這樣的安裝通常要使用諸如CD-ROM(光盤-只讀存儲器)之類的存儲設(shè)備來執(zhí)行,則設(shè)備仿真器114可以通過CD-ROM鏡像文件來 (物理地和/或虛擬地)仿真CD-ROM的功能。作為另一個示例,為了避免需要系統(tǒng)管理員真實出現(xiàn)以對系統(tǒng)100執(zhí)行修復(fù)或更新,例如,管理控制臺118可以通過向系統(tǒng)100發(fā)送命令/數(shù)據(jù)來管理修復(fù)和/或更新,所述命令/數(shù)據(jù)使得設(shè)備仿真器114能夠仿真系統(tǒng)100 上的鍵盤敲擊或鼠標(biāo)移動。例如,設(shè)備仿真器114可以(遠(yuǎn)程地)對物理或虛擬地位于管理控制臺118上的存儲設(shè)備進(jìn)行仿真。在該示例中,管理控制臺118可以發(fā)送命令以用于對被仿真的存儲設(shè)備的插入或移除進(jìn)行仿真。一旦被仿真的存儲設(shè)備對系統(tǒng)100表現(xiàn)為被附接上,則系統(tǒng)100 上的OS(操作系統(tǒng))能夠?qū)Ρ环抡娴拇鎯υO(shè)備進(jìn)行訪問,就像其物理地位于那里一樣。隨后,與存儲相關(guān)的命令(諸如讀取命令或?qū)懭朊?可以被從OS發(fā)往設(shè)備仿真器114,并且被轉(zhuǎn)發(fā)至管理控制臺118。例如,響應(yīng)于存儲讀取命令,管理控制臺118可以向設(shè)備仿真器114發(fā)送存儲數(shù)據(jù),并且隨后由設(shè)備仿真器114返回至0S。例如,響應(yīng)于寫入命令,OS可以向設(shè)備仿真器 114發(fā)送存儲數(shù)據(jù),設(shè)備仿真器114隨后可以將存儲數(shù)據(jù)轉(zhuǎn)發(fā)至管理控制臺。管理控制臺 118還可以在命令結(jié)尾處向設(shè)備仿真器114發(fā)送狀態(tài)響應(yīng),該狀態(tài)響應(yīng)隨后可以被設(shè)備仿真器114返回至OS。 鍵盤仿真是另一個示例,其中管理控制臺118可以發(fā)送命令以用于對鍵盤的插入或移除進(jìn)行仿真。管理控制臺118可以向設(shè)備仿真器114發(fā)送鍵盤數(shù)據(jù)消息(例如,以按鍵形式)。設(shè)備仿真器114可以向管理控制臺118發(fā)送狀態(tài)消息,例如LED開/關(guān)狀態(tài)。在以上說明書中,已經(jīng)參考說明書的具體實施例對本發(fā)明進(jìn)行了描述。然而,顯然可以對這些實施例進(jìn)行各種修改和改變,而不會與本發(fā)明相背離。因此,說明書和附圖應(yīng)被認(rèn)為是說明性的而不是限制性的。
權(quán)利要求
1.一種裝置,包括 多個端點,其中每個端點對應(yīng)于被仿真設(shè)備的一種功能;具有至少一個緩沖器,用以存儲與所述被仿真設(shè)備相對應(yīng)的仿真信息;和用于執(zhí)行與所述多個端點相對應(yīng)的功能中的至少一種功能的低級仿真。
2.如權(quán)利要求1所述的裝置,其中所述設(shè)備仿真器內(nèi)部耦合至集成電路。
3.如權(quán)利要求1所述的裝置,其中每個端點從存儲器取得與所述被仿真設(shè)備相對應(yīng)的仿真信息,并且所述設(shè)備仿真器還包括數(shù)據(jù)移動邏輯,用于將所述仿真信息從所述存儲器移至所述至少一個緩沖器。
4.如權(quán)利要求1所述的裝置,還包括用于執(zhí)行與所述多個端點相對應(yīng)的功能中的至少一種功能的高級仿真的邏輯。
5.如權(quán)利要求1所述的裝置,其中每個端點還包括用于啟用和禁止所述每個端點的至少一組寄存器。
6.一種系統(tǒng),包括 微控制器,用于接收與被仿真設(shè)備的一種或更多種功能相對應(yīng)的仿真信息,所述仿真信息包括數(shù)據(jù)和命令中的至少一個;并且根據(jù)所述仿真信息執(zhí)行所述多種功能的高級仿真;和設(shè)備仿真器,其耦合到所述微控制器,所述設(shè)備仿真器具有 多個端點,其中每個端點對應(yīng)于所述被仿真設(shè)備的所述多種功能中的一種功能;并且具有至少一個緩沖器以存儲所述仿真信息;用于執(zhí)行所述多種功能中的至少一種功能的低級仿真的邏輯;以及直接存儲器存取(DMA)引擎,用于將仿真信息從所述存儲器傳輸?shù)剿鲋辽僖粋€緩沖器。
7.如權(quán)利要求6所述的系統(tǒng),還包括網(wǎng)絡(luò)接口,用于從遠(yuǎn)程系統(tǒng)接收所述仿真信息。
8.如權(quán)利要求7所述的系統(tǒng),還包括中樞控制器,并且其中所述設(shè)備仿真器內(nèi)部耦合至所述中樞控制器。
9.如權(quán)利要求6所述的系統(tǒng),其中每個端點從存儲器取得與所述被仿真設(shè)備相對應(yīng)的仿真信息,并且所述設(shè)備仿真器還包括數(shù)據(jù)移動邏輯,用于將所述仿真信息從所述存儲器移至所述至少一個緩沖器。
10.如權(quán)利要求6所述的系統(tǒng),其中每個端點還包括至少一組寄存器,并且其中所述微控制器使用所述至少一組寄存器來啟用和禁止所述多個端點。
11.一種方法,包括在處理器處接收仿真信息,所述仿真信息對應(yīng)于被仿真設(shè)備的一種或更多種功能,并且所述仿真信息包括數(shù)據(jù)和命令中的至少一個;根據(jù)所述仿真信息執(zhí)行所述多種功能中的至少一種功能的高級仿真,所述仿真由所述處理器執(zhí)行;將所述仿真信息從所述處理器傳輸?shù)皆O(shè)備仿真器;并且由所述設(shè)備仿真器執(zhí)行所述多種功能中的至少一種功能的低級仿真。
12.如權(quán)利要求11所述的方法,其中所述的將所述仿真信息從所述處理器傳輸?shù)皆O(shè)備仿真器包括直接存儲器存取(DMA)引擎將所述仿真信息從為所述處理器保留的存儲器傳輸?shù)剿鲈O(shè)備仿真器的至少一個緩沖器。
13.如權(quán)利要求11所述的方法,還包括所述處理器使用與所述設(shè)備仿真器相關(guān)聯(lián)的至少一組寄存器來啟用和禁止與所述設(shè)備仿真器相關(guān)聯(lián)的每個端點。
14.一種其上存儲有指令的制品,所述指令當(dāng)由機(jī)器執(zhí)行時,導(dǎo)致以下在處理器處接收仿真信息,所述仿真信息對應(yīng)于被仿真設(shè)備的一種或更多種功能,并且所述仿真信息包括數(shù)據(jù)和命令中的至少一個;根據(jù)所述仿真信息執(zhí)行所述多種功能中的至少一種功能的高級仿真,所述仿真由所述處理器執(zhí)行;將所述仿真信息從所述處理器傳輸?shù)皆O(shè)備仿真器;并且由所述設(shè)備仿真器執(zhí)行所述多種功能中的至少一種功能的低級仿真。
15.如權(quán)利要求14所述的制品,其中導(dǎo)致將所述仿真信息從所述處理器傳輸?shù)皆O(shè)備仿真器的所述指令包括導(dǎo)致直接存儲器存取(DMA)引擎將所述仿真信息從為所述處理器保留的存儲器傳輸?shù)剿鲈O(shè)備仿真器的至少一個緩沖器的指令。
16.如權(quán)利要求14所述的制品,還包括所述處理器使用與所述設(shè)備仿真器相關(guān)聯(lián)的至少一組寄存器來啟用和禁止與所述設(shè)備仿真器相關(guān)聯(lián)的每個端點。
全文摘要
在一個實施例中,一種裝置提供了多個端點,每個端點對應(yīng)于被仿真設(shè)備的一種功能,每個端點具有至少一個緩沖器,用以存儲對應(yīng)于被仿真設(shè)備的仿真信息;并且提供了用于執(zhí)行與所述多個端點相對應(yīng)的功能中的至少一種功能的低級仿真的邏輯。
文檔編號G06F11/26GK102171655SQ200980139237
公開日2011年8月31日 申請日期2009年12月14日 優(yōu)先權(quán)日2008年12月29日
發(fā)明者K·L·黃, K·瓦迪韋呂, N·迪亞曼特 申請人:英特爾公司