TWI512479B - 針對記憶體映射組態分派處理器之技術 - Google Patents
針對記憶體映射組態分派處理器之技術 Download PDFInfo
- Publication number
- TWI512479B TWI512479B TW102145163A TW102145163A TWI512479B TW I512479 B TWI512479 B TW I512479B TW 102145163 A TW102145163 A TW 102145163A TW 102145163 A TW102145163 A TW 102145163A TW I512479 B TWI512479 B TW I512479B
- Authority
- TW
- Taiwan
- Prior art keywords
- processors
- pci
- service unit
- stationary
- processor
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
- G06F13/4221—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3296—Power saving characterised by the action undertaken by lowering the supply or operating voltage
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0024—Peripheral component interconnect [PCI]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multi Processors (AREA)
- Stored Programmes (AREA)
Description
本發明係有關於一種針對記憶體映射組態分派處理器之技術。
由於近期在技術方面的創新,用戶都在尋求更大量的輸入/輸出(I/O)資源。然而,由於I/O標準和/或頻寬的限制,裝置無法支援更多數量的I/O裝置以提供該等I/O資源。系統供應商所面臨的挑戰是為用戶提供一更大量的I/O資源。
依據本發明之一實施例,係特地提出一種裝置,該裝置包含有:一個主處理器可以靜止在該裝置上運行的一個或多個從屬處理器,該等處理器的每一個可以存取一週邊組件互連(PCI)分段其不同的匯流排,該PCI分段使用一個基於32位元的記憶體映射組態,以及在該主處理器指出該等一個或多個從屬處理器是靜止的之後,一個服務單元可以切換到一64位元的記憶體映射組態,其中在該服務單
元切換到該64位元的記憶體映射組態之後,該等處理器的每一個都可以被分派到該PCI分段其數個實例中的其中一個。這些實例的每一個都可以存取該PCI分段其所有的匯流排。
100‧‧‧一裝置
100’‧‧‧一裝置
110‧‧‧服務單元
120‧‧‧主處理器
122-1‧‧‧從屬處理器
122-2‧‧‧從屬處理器
130‧‧‧PCI分段
130-0‧‧‧PCI分段的第一實例
130-1‧‧‧PCI分段的第二實例
130-2‧‧‧PCI分段的第三實例
132‧‧‧匯流排
200‧‧‧一裝置
201-1、201-2、201-3‧‧‧記憶體映射組態(MMCFG)
204‧‧‧共享記憶體
204-1、204-2、204-3‧‧‧暫用暫
存器
208‧‧‧根聯合體
210‧‧‧BIOS
212‧‧‧ACPI表/命名空間資源
214‧‧‧PCI
300‧‧‧一計算裝置
310‧‧‧處理器
320‧‧‧機器可讀取的儲存媒體
321‧‧‧初始化指令
333‧‧‧靜止指令
325‧‧‧轉移指令
327‧‧‧分派指令
329‧‧‧返回指令
400‧‧‧一流程圖
410~440‧‧‧方塊
以下的詳細描述會參考到所附圖示,其中:圖1A和1B為一種裝置的示例方塊圖,該裝置可用於分派處理器到一記憶體映射組態;圖2為一種裝置的另一個示例方塊圖,該裝置可用於分派處理器到一記憶體映射組態;圖3是一種計算裝置的一示例方塊圖,該裝置包含有可用於分派處理器到一記憶體映射組態的指令;以及;圖4是一種方法的一示例流程圖,該方法可用於分派處理器到一記憶體映射組態。
本發明其具體的細節會在以下的說明中提出,以提供實施例的一種完全性的理解。然而,可以被理解的是,實施例可以在沒有這些具體細節的情況下被實踐出。舉例來說,系統可以以方塊圖來被展示出,以避免因說明太多沒有必要的細節而模糊了實施例。在其他的實例中,眾所周知的程序、結構和技術可以以沒有不必要細節的方式來被展示出,以避免模糊了實施例。
由於資訊時代的變動性和其高度要求的天性,IT企業若要生產出可容納大量I/O資源之設備,其障礙正不斷地被提高。例如,對於虛擬化而言,具有一種可支援大量I/O資源的能力正變得被高度地重視,因為更多的客體作業系統(OS)都嘗試要求這種資產的所有權。因此,隨著在諸如一些尖端系統的裝置上可使用I/O卡數量的增加,以及有更多的虛擬功能正被添加到快速週邊組件互連(PCIe)裝置上,在一個單一PCI分段內PCI匯流排數目正變得越來越稀有。
藉由支援多個PCI分段,供應商也許能夠提供更多的匯流排數目。然而,支援多個PCI分段通常需要使用超過4GB的記憶體映射I/O範圍,被稱為記憶體映射組態(MMCFG)。對於需要存取在該MMCFG空間中資源的早期韌體程式碼而言,因其仍然在工作32的位元模式下,這會帶來了一個問題。而且,大多數廠商提供有被配置成支援32位元的硬體初始化韌體套件。因此,在早期的啟動過程中支援多個PCI分段產生了一些挑戰。這些挑戰可能包含需要修改供應商所提供的程式套件使之可在64位元的模式下運作,這因此又需要支援更為複雜的程式碼,因而導致了產品發布的延遲。
實施例可以允許在早期的啟動過程中支援單一一個PCI分段,然後在把系統資源換手給一OS之前,使用一個處理器來適當地啟動額外的PCI分段。舉例來說,一個主處理器可以靜止在一裝置上運行的一個或多個從屬處理
器。該等處理器的每一個都可以存取一個週邊組件互連(PCI)分段其不同的匯流排,該PCI分段使用一個基於32位元的記憶體映射組態。在該主處理器指出該等一個或多個從屬處理器是靜止的之後,一個服務單元可以切換到一個64位元的記憶體映射組態。在該服務單元切換到該64位元的記憶體映射組態之後,該等處理器的每一個都可以被分派到該PCI分段其數個實例中的其中一個。這些實例的每一個都可以存取該PCI分段其所有的匯流排。
因此,藉由延遲PCI分段其多個實例的啟用直到硬體初始化完成後,實施例可提供更多的PCI匯流排數量,同時仍然允許系統韌體程式碼未經修改就可執行,該程式碼仍仰賴於單一一個PCI分段組態。因此,實施例可以簡單地實現,因為一種伴隨於要重新編寫32位元的程式碼使之相容於64位元情況的複雜性,已被降低或消除。
這進一步可以轉化成在開發時間上的節省以及可按時做產品的發布。此外,根據實施例,啟動多個PCI分段可使得在硬體廠商之間交換韌體套件變得更為容易。舉例來說,供應商可以構建他們自己的只能工作在32位元模式下的套件,而不是可處理多種模式(舉例來說,既要在32位元也要在64位元的模式下工作)的套件。開發只支援單一模式的套件可以減少開發可支援多種模式的套件所需要的時間和驗證週期。此外,實施例可以使用業界標準介面,諸如SMBus,因此可讓實現變得容易。
現在請參考所附圖式,圖1A和1B是一裝置100的
示例方塊圖,該裝置可用於分派處理器120、122-1和122-2到一記憶體映射組態。該裝置100可以是,舉例來說,一伺服器、一安全微處理器、一筆記型電腦、一桌上型電腦、一種一體成型系統、一網路裝置、一控制器、一無線裝置、或可以連接到一週邊組件互連(PCI)介面之任何其它類型的裝置。
PCI該術語可以指該PCI區域匯流排標準和/或一區域電腦匯流排用於在一電腦中安裝硬體裝置的部分。該PCI匯流排可以支援在一處理器匯流排中所找到的功能,但在一個標準化的格式中,它是獨立於任何特定處理器的。連接到該匯流排上的裝置對於該處理器而言可以像是直接被連接到該處理器匯流排一樣,並且在該處理器的定址空間中可以被分派位址。該裝置可被安裝到一母板本身(舉例來說,一個平面的裝置),或是被安插在一插槽中的一張擴充卡。舉例來說,PCI卡可以包含網絡卡、音效卡、數據機、諸如USB或串列埠之額外的埠、電視選台卡、磁盤控制器等等。
PCI同時支援記憶體空間的32位元和64位元位址。當該裝置100啟動時,BIOS或系統韌體(圖中未示出)會分派在該PCI位址範圍中的記憶體空間區域給PCI週邊裝置。一區域的一基底位址被儲存在該裝置的PCI組態空間的該基底位址暫存器中。每一區域的大小一般是一個二的冪次,並且該所分派的基底位址會恰位於一個等於該區域大小的邊界上。在記憶體空間中的PCI週邊裝置會被記憶體映射到
一個主機位址範圍之中,諸如一處理器的位址空間,從而使得資料存取到任何的裝置可以由該處理器其本身的載入或儲存指令來執行。每一個PCI週邊裝置是由一個匯流排號碼、一個裝置號碼、和一個功能號碼來被辨識的。該PCI規格允許單一一個系統或分段可承載多達256個匯流排,但是256個匯流排對於許多大型的系統而言可能是不夠用的,如以上所解釋的。
在圖1A和1B的該實施例中,該裝置100包含有一個服務單元110和數個處理器120、122-1和122-2。該服務單元110可以包含,舉例來說,一種硬體裝置,其包含有可用於執行以下所述的功能,諸如控制邏輯和/或記憶體,的電子電路。作為附加功能或是另一種選擇,該服務單元110可以被實現為一連串的指令,其被編程於一機器可讀取的儲存媒體上並可由一處理器來執行。該等處理器120、122-1和122-2可以是,一中央處理單元(CPU)、一基於半導體的微處理器、一圖形處理單元(GPU)、或其他適合於檢索和執行指令的硬體裝置。
舉例來說,該服務單元110可以是在該裝置之中的一獨立的電腦系統,其提供一些服務任務,諸如系統重啟或PCI配置。只要該服務單元110被供給電源,該服務單元110便可以提供服務,即使該裝置100的一個主要的作業系統(OS)被關閉、有缺陷或根本沒有被安裝。
在該裝置100已經開始從系統韌體(圖中未示出),諸如一基本輸入/輸出系統(BIOS),來啟動之後,圖1A展示
出該裝置100的一個狀態。因為該系統韌體可能是由32位元的指令所構成,該裝置100可能是在32位元的模式下。因此,每一個處理器120、122-1和122-2一開始可以存取一週邊組件互連(PCI)分段130其不同的匯流排132,該PCI分段使用一種基於32位元的記憶體映射組態(圖中未示出)。
如以上所解釋的,該PCI規格允許一個單一系統或分段來承載最多到256個匯流排。該術語匯流排可以定義為在一個CPU和一個週邊裝置之間的一種低階介面。舉例來說,該主處理器120可以存取該PCI分段130編號為0-84的匯流排132,該第一個從屬處理器122-1可以存取該PCI分段130編號為85-169的匯流排132,而該第二個從屬處理器122-2可以存取該PCI分段130編號為170-255的匯流排132。因此,如在圖1A中所示,該等處理器120、122-1和122-2的每一個在一開始所包含的記憶體映射組態會限制它們只能存取該PCI分段130中的某一部分,該等處理器120、122-1和122-2中不會有任何兩個可以存取相同的匯流排132。
然後該服務單元110可選擇該等處理器的其中之一120為一個主處理器。接下來該主處理器120可以靜止在該裝置100上運行的一個或多個從屬處理器122-1和122-2。雖然圖2展示出兩個從屬處理器122-1和122-2,但實施例可以包含多於或少於兩個從屬處理器。靜止該術語可以指暫停或改變在一電腦或處理器上正在運行程序的狀態,諸如那些可以修改有關於記憶體存取的資訊,諸如一種寫入請求。
該等靜止的處理器120、122-1和122-2不會發送流量到外部於該等處理器120、122-1和122-2的結構,並且不會透過該記憶體映射組態進行操作。在該主處理器120指出該等一個或多個從屬處理器122-1和122-2是靜止的之後,該服務單元110可以透過一種旁帶機制,諸如一平台環境控制介面(PECI)和/或一系統管理匯流排(SMBus),來把該裝置100切換到一種64位元的記憶體映射組態。
該該服務單元110會配置該裝置100的一個或多個資源以切換該PCI分段130到該64位元的記憶體映射組態。舉例來說,該服務單元110可以重置該等處理器120和122-1和122-2的每一個的PCI範圍的一個基底數為零,其中該基底數被儲存在該等處理器120和122-1和122-2的每一個其記憶體映射組態中。
此外,該服務單元110可以配置每一個根聯合體(圖中未示出)以根據64位元的記憶體映射組態來進行解碼。根聯合體該術語可以指一裝置,該裝置會把一個處理器和記憶體子系統連接到由一個或多個開關裝置所構成的一個PCI交換結構(圖中未示出)。把該裝置100切換到一個64位元的記憶體映射組態會在以下針對圖2來進行說明。此外,該服務單元110可以預先啟用(但不允許使用)該64位元的記憶體映射組態,諸如藉由為PCI規劃位址和設定暫存器(圖中未示出)。舉例來說,該服務單元100可以設定暫存器來指定該等處理器120、122-1和122-2的每一個其可使用匯流排的一個範圍。
如在圖1B中所示,在該服務單元100切換該裝置100到該64位元的記憶體映射組態之後,該等處理器120、122-1和122-2的每一個都被分派到該PCI分段130其數個實例130-0至130-2的其中一個。該等實例130-0到130-2的每一個都可以存取全部的匯流排132。舉例來說,藉由切換到該64位元的記憶體映射組態,該服務單元110可以在該等處理器120、122-1和122-2的每一個的該記憶體映射組態中建立一個額外的、多位元的實例欄位(圖中未示出)。此外,如以上所解釋的,該服務單元110可以配置該根聯合體208以根據該64位元的記憶體映射組態組態來進行解碼。
舉例來說,在該主處理器120的該實例欄位中的一個數值「00」可以指出它被分派到該PCI分段的一個第一實例130-0。而在該第一個從屬處理器122-1的該實例欄位中的一個數值「01」可以指出它被分派到該PCI分段的一個第二實例130-1。同樣的,在該第二個從屬處理器122-2的該實例欄位中的一個數值「10」可以指出它被分派到該PCI分段的一個第三實例130-2。藉由在該等處理器120、122-1和122-2的內部建立該PCI分段130的該等實例130-0至130-2,該等處理器120、122-1和122-2的每一個都可以存取一最大數目或更多的匯流排132,正如由該PCI規格所規範每一PCI分段130所允許的數量,諸如256個匯流排。
該服務單元110切換到該64位元的記憶體映射組態不僅是在該裝置100已經開始從一基本輸入/輸出系統(BIOS)做啟動之後,而且是在把系統資源換手給該裝置100
的一種作業系統(OS)之前,諸如一裝置驅動程式。因此,實施例可以允許在一個單一裝置100上的數個處理器120、122-1和122-2可以存取更多數量的PCI匯流排132,而不需要修改系統韌體,諸如改成像是64位元模式的另一種格式。
圖2是一裝置200的另一個示例方塊圖,該裝置用於分派處理器到記憶體映射組態。該裝置200可以是,舉例來說,一伺服器、一安全微處理器、一筆記型電腦、一桌上型電腦、一種一體成型系統、一網路裝置、一控制器、一無線裝置、或可以連接到一週邊組件互連(PCI)介面之任何其它類型的裝置。此外,圖2的該裝置200至少包含有圖1的該裝置100的功能和/或硬體。舉例來說,在圖2該裝置200中的該服務單元110、主處理器120以及從屬處理器122-1和122-2會分別包含有在圖1該裝置100中的該服務單元110、主處理器120以及從屬處理器122-1和122-2的該功能。除此之外,圖2的該裝置200還包含一個根聯合體208、BIOS 210、一ACPI表/命名空間資源212和PCI 214。
該BIOS 210和ACPI表/命名空間資源212可以包含,舉例來說,一個硬體裝置,該裝置包含用於執行以下所述的功能,諸如控制邏輯和/或記憶體,的電子電路。作為附加功能或是另一種選擇,該BIOS 210和ACPI表/命名空間資源212可以被實現為一連串的指令或微程式碼,其被編程於一機器可讀取的儲存媒體上並可由一處理器來執行。該PCI 214可以提供一個硬體和/或韌體介面,用於把一個或多個PCI週邊裝置(圖中未示出)連接該到該裝置200的該等
一個或多個處理器120、122-1和122-2。
在圖2中,該主處理器120被展示成要寫入該服務單元110的一共享記憶體204以指出該等一個或多個從屬處理器122-1和122-2是被靜止了。在該等一個或多個從屬處理器122-1和122-2被靜止之後,該服務單元110將從該主處理器120接收該裝置200的控制。
在該服務單元110切換到該64位元的記憶體映射組態之後,該服務單元將把該裝置200的控制還給該等處理器120、122-1和122-2。舉例來說,在該服務單元110切換到該64位元的記憶體映射組態之後,該服務單元110可以啟用一個旗標,該旗標位於該等一個或多個處理器120、122-1和122-2內的一個暫用暫存器204-1至204-3。在此同時,該BIOS 210可指示該等靜止的處理器120、122-1和122-2來輪詢其暫用暫存器204-1至204-3,以確定該旗標是否被啟用。如果該旗標被啟用的話,該等靜止的處理器120、122-1和122-2可以從一靜止的狀態轉回到一個活躍狀態。該服務單元將把該裝置的控制轉移給該等處理器120、122-1和122-2,如果該旗標被啟用的話。
如在以上在圖1中所解釋的,在該服務單元110切換到該64位元的記憶體映射組態之後,該等處理器120、122-1和122-2的每一個會被分派可以存取一個PCI分段其不同的實例,而且每一個實例可以存取所有的PCI匯流排。舉例來說,該主處理器120的一記憶體映射組態(MMCFG)202-1可以存取一個第一實例(PCI分段0),該第一從屬處理
器122-1的一個MMCFG 202-2可以存取一個第二實例(PCI分段1),而該第二從屬處理器122-2的一個MMCFG 202-3可以存取一個第三實例(PCI分段2),其中每一個實例(PCI分段0-2)都具有256個匯流排(0-255)。
在該旗標被啟用之後,該主處理器120可以走訪該等PCI匯流排以將資源分派到該等PCI分段(PCI分段0-2)。該主處理器120也可以建構先進組態與電源介面(ACPI)靜態表和命名空間資源212以揭露有關於該等分段的資訊給該裝置200一個OS(圖中未示出)。
舉例來說,該主處理器120,透過該OS或韌體,可以在啟動時查詢所有的PCI匯流排(透過PCI組態空間),以找出那些裝置目前是存在的,以及每一個需要那些系統資源(記憶體空間、I/O空間、中斷線等等)。然後該主處理器120可分配該等資源,並告知每一個裝置它的分配。雖然實施例是參考到32和64位元的模式,但是實施例並不侷限於此,並且也可以包含其他位元的模式。
圖3是一計算裝置300的一示例方塊圖,其包含有用於分派處理器到一記憶體映射組態的指令。在圖3的該實施例中,該計算裝置300包含一處理器310和一機器可讀取的儲存媒體320。該機器可讀取的儲存媒體320還包含有可用於分派處理器(圖中未示出)到一記憶體映射組態的指令321、323、325、327和329。
該計算裝置300可以是,舉例來說,一安全微處理器、一筆記型電腦、一桌上型電腦、一種一體成型系統、
一伺服器、一網路裝置、一控制器、一無線裝置、或能夠執行該等指令321、323、325、327和329之任何其他類型的裝置。在特定的示例中,該計算裝置300可以包含有或可以被連接到附加的組件,諸如記憶體、控制器、處理器、等等。
該處理器310,至少是一中央處理單元(CPU)、至少是一種基於半導體的微處理器、至少是一個圖形處理單元(GPU)、一微控制器、由微程式碼所控制之專用邏輯硬體、或是適合於檢索和執行儲存在該機器可讀取儲存媒體320中的指令之其他的硬體裝置或它們的組合。該處理器310可以提取、解碼、和執行指令321、323、325、327和329以實現分派該等處理器到該記憶體映射組態。作為檢索和執行指令的一種替代或是附加的能力,該處理器310可以包含至少一個積體電路(IC)、其他的控制邏輯、其他電子電路、或它們的組合,其包含一些用於執行指令321、323、325、327和329其功能的電子元件。
該機器可讀取的儲存媒體320可以是包含或儲存可執行指令之任何的電子、磁性、光學或其它實體的儲存裝置。因此,該機器可讀取的儲存媒體320可以是,舉例來說,隨機存取記憶體(RAM)、一電子式可清除程式化唯讀記憶體(EEPROM)、一儲存碟、一唯讀光碟片(CD-ROM)、等等。因此,該機器可讀取的儲存媒體320可以是非暫時性的。如下面會詳細描述的,機器可讀取的儲存媒體320可以被編碼,使其具有一連串可用於分派該等處理器到該記憶
體映射組態的可執行指令。
此外,該等指令321、323、325、327和329當由一處理器(舉例來說,透過該處理器的一個處理元件或多個處理元件)來執行時,可致使該處理器執行程序,諸如,圖4的該程序。舉例來說,該初始化指令321可由該處理器310來執行以初始化數個處理器來存取一個週邊組件互連(PCI)分段其不同的匯流排,該等不同的匯流排的每一個被分派給該等數個處理器中唯一的一個。該靜止指令323可以由該處理器310來執行以靜止該等數個處理器。
該轉移指令325可以由該處理器310來執行,以把該裝置的控制從該等靜止的處理器中的至少一個轉移給一服務單元(圖中未示出)。該分派指令327可以由該處理器310來執行,以在該裝置的一作業系統(OS)被載入之前,以該等處理器的每一個被分派到該PCI分段的不同的實例,經由該服務單元為該等數個處理器的每一個皆分派一個可存取該所有匯流排的記憶體映射組態。該返回指令329可由該處理器310來執行以把該裝置的控制從該服務單元還給該等靜止的處理器中的至少一個。該PCI匯流排將被走訪而且一先進組態與電源介面(ACPI)將被設置(圖中未示出),在控制被還給該至少一個靜止的處理器之後。
圖4是一種方法400的一示例流程圖,該方法可用於分派處理器到一記憶體映射組態。雖然該方法400在以下的執行方式是參考該裝置200來描述的,但其他適合於執行該方法400的組件也可以被採用,諸如該裝置100。此外,
該等用於執行該方法400的組件可以被散佈在多個裝置上(舉例來說,可和輸入和輸出裝置通信的一種處理裝置)。在特定的情況下,可相互協調執行的多個裝置可以被視為是一個可執行該方法400的單一裝置。該方法400可以被實現為可執行指令的形式,其儲存在一機器可讀取的儲存媒體上,諸如儲存媒體320,和/或被實現為電子電路的形式。
在方塊410,在一裝置開始一啟動序列之後,數個處理器120、122-1和122-2接收從一個BIOS 210來的32位元指令。然後,在方塊420,該等數個處理器的其中一個120會被選擇出以靜止該等數個處理器的其餘部分122-1和122-2。接下來,在方塊430中,該等數個處理器120、122-1和122-2會被分派,諸如藉由該服務單元110連接到一PCI 214介面,依據64位元的記憶體映射組態202-1至202-3。
在方塊430的該分派之前,該等數個處理器120、122-1和122-2的每一個將存取一個PCI分段130之分開的匯流排132。在方塊430的該分派之後,該等數個處理器120、122-1和122-2的每一個將存取該PCI分段130匯流排的不同實例130-0至130-2其所有的匯流排132。在方塊440,在透過該PCI的硬體介面被初始化之前,該數個靜止的處理器120、122-1和122-2會被激活。
根據以上所述,實施例提供了一種方法和/或裝置可用於延緩多個PCI分段的啟用,直到硬體初始化完成為止。因此,實施例可提供更多的PCI匯流排號碼,同時仍然允許那些仰賴於單一一個PCI分段組態的系統韌體程式碼
不用修改就可執行。因此,實施例可以簡單地實現,因伴隨於重新編寫32位元的程式碼使之相容於64位元情況的一種複雜性會被降低或消除。舉例來說,實施例可以允許在早期的啟動期間支援單一一個PCI分段,然後再使用一個處理器,諸如一個服務處理器,以在把系統資源換手給一OS之前可適當地啟用額外的PCI分段。
400‧‧‧一流程圖
410~440‧‧‧方塊
Claims (15)
- 一種用以針對記憶體映射組態分派處理器之裝置,該裝置包含有:一個主處理器,用以靜止在該裝置上運行的一個或多個從屬處理器,該等處理器中的每一個用以使用一個基於32位元的記憶體映射組態存取一週邊組件互連(PCI)分段之不同的匯流排;以及一個服務單元,用以在該主處理器指出該一個或多個從屬處理器是靜止的之後,切換到一64位元的記憶體映射組態;其中在該服務單元切換到該64位元的記憶體映射組態之後,該等處理器中的每一個分派到該PCI分段之多個實例中的其中一個,該等實例中的每一個用以存取該PCI分段之所有的匯流排。
- 如請求項1之裝置,其中,該服務單元將透過一旁帶機構切換到該64位元的記憶體映射組態;以及該旁帶機構為一平台環境控制介面(PECI)和一系統管理匯流排(SMBus)兩者中的至少一個。
- 如請求項1之裝置,其中該服務單元用以在該裝置已經開始從一基本輸入/輸出系統(BIOS)啟動之後,並且在把系統資源移交該裝置的一作業系統(OS)之前,切換到該64位元的記憶體映射組態。
- 如請求項1之裝置,其中,該主處理器將會寫入到該服務單元的一共享記憶體以指出該一個或多個從屬處理器係靜止;在該一個或多個從屬處理器靜止之後,該服務單元將從該主處理器接收該裝置的控制;以及在該服務單元切換到該64位元的記憶體映射組態之後,該服務單元將把該裝置的控制還給該等處理器。
- 如請求項4之裝置,其中,該等靜止的處理器將會輪詢該等靜止的處理器中的每一個的一個暫用暫存器,以確定一旗標是否啟用;以及在該服務單元切換到該64位元的記憶體映射組態之後,該服務單元將啟用該旗標。
- 如請求項5之裝置,其中,如果該旗標啟用,該等靜止的處理器將從一靜止的狀態轉換到一個活動狀態;以及如果該旗標啟用,該服務單元將把該裝置的控制轉移給該等處理器。
- 如請求項5之裝置,其中在該旗標啟用之後,該主處理器將會進行以下動作中的至少一個:走訪該PCI匯流排以把資源分派到該等PCI分段;以及建構先進組態與電源介面(ACPI)靜態表和命名空間資源以揭露有關於該等分段的資訊給該裝置的一作業系統(OS)。
- 如請求項1之裝置,其中在該主處理器靜止該一個或多個從屬處理器之後,該服務單元將執行以下動作中的至少一個:預先啟動該64位元的記憶體映射組態、規劃位址和設定暫存器。
- 如請求項1之裝置,其中,在該服務單元切換到該64位元的記憶體映射組態之前,對該記憶體映射組態的存取是在一個32位元的範圍內;以及在該服務單元切換到該64位元的記憶體映射組態之後,該裝置的硬體被初始化。
- 如請求項1之裝置,其中,該等靜止的處理器不會透過該處理器外部的一組織結構(fabric)發送訊務;以及該等靜止的處理器不會透過該記憶體映射組態進行操作。
- 如請求項1之裝置,其中,該服務單元將該裝置的一個或多個資源組配來切換該PCI分段到該64位元的記憶體映射組態;以及組配該等一個或多個資源包含有以下動作中的至少一個:將該等處理器中的每一個的一PCI域之一個基底數設定為零;將每一個根聯合體組配來解碼該64位元的記憶體映射組態。
- 一種用以針對記憶體映射組態分派處理器之方法,該方法包含有: 在一裝置開始一啟動序列之後,於數個處理器處接收來自一個基本輸入/輸出系統(BIOS)的32位元指令;選擇該等數個處理器的其中之一以靜止該等數個處理器的其餘部分;根據一64位元的記憶體映射組態分派該等數個處理器以與一週邊組件互連(PCI)介接;以及在透過該PCI的硬體介接初始化之前,致動該等數個靜止的處理器。
- 如請求項12之方法,其中,在該分派之前,該等數個處理器中的每一個將存取一單一PCI分段之各別的匯流排;以及在該分派之後,該等數個處理器中的每一個將存取該PCI分段匯流排的不同實例之所有的匯流排。
- 一種非暫時性電腦可讀儲存媒體,其儲存有指令,該等指令在由一個裝置的一處理器執行時,致使該處理器進行下列動作:初始化數個處理器來存取一個週邊組件互連(PCI)分段之不同的匯流排,該等不同的匯流排中的每一個僅分派給該等數個處理器中的一個;靜止該等數個處理器;把該裝置的控制從該等靜止的處理器中的至少一個轉移給一服務單元;在該裝置的一作業系統(OS)被載入之前,經由該服務單元為該等數個處理器中的每一個分派一個可存取 所有該等匯流排的記憶體映射組態,而該等處理器中的每一個係分派到該PCI分段的不同實例;以及把該裝置的控制從該服務單元還給該等靜止的處理器中的至少一個。
- 如請求項14之非暫時性電腦可讀儲存媒體,其中在控制還給該至少一個靜止的處理器之後,該PCI匯流排將被走訪而且一先進組態與電源介面(ACPI)即被設置。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2013/023552 WO2014120113A1 (en) | 2013-01-29 | 2013-01-29 | Assigning processors to memory mapped configuration |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201430572A TW201430572A (zh) | 2014-08-01 |
TWI512479B true TWI512479B (zh) | 2015-12-11 |
Family
ID=51262685
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW102145163A TWI512479B (zh) | 2013-01-29 | 2013-12-09 | 針對記憶體映射組態分派處理器之技術 |
Country Status (5)
Country | Link |
---|---|
US (1) | US9940291B2 (zh) |
EP (1) | EP2951705A4 (zh) |
CN (1) | CN105264506B (zh) |
TW (1) | TWI512479B (zh) |
WO (1) | WO2014120113A1 (zh) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8402188B2 (en) | 2008-11-10 | 2013-03-19 | Micron Technology, Inc. | Methods and systems for devices with a self-selecting bus decoder |
TWI561986B (en) * | 2015-12-21 | 2016-12-11 | Mitac Computing Technology Corp | Method for allocating memory resource |
CN106951326B (zh) * | 2017-03-16 | 2023-01-06 | 腾讯科技(深圳)有限公司 | 一种文件解锁方法及电子设备 |
US11038749B2 (en) * | 2018-12-24 | 2021-06-15 | Intel Corporation | Memory resource allocation in an end-point device |
EP3924821A1 (en) | 2019-02-14 | 2021-12-22 | International Business Machines Corporation | Directed interrupt virtualization with running indicator |
JP7459119B2 (ja) | 2019-02-14 | 2024-04-01 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 割り込みテーブルを使用したマルチレベルの仮想化のための有向割り込み方法、システム、プログラム |
CA3130164A1 (en) | 2019-02-14 | 2020-08-20 | International Business Machines Corporation | Directed interrupt for multilevel virtualization |
JP7335339B2 (ja) | 2019-02-14 | 2023-08-29 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 有向割り込みの仮想化方法、システム、プログラム |
TWI759677B (zh) | 2019-02-14 | 2022-04-01 | 美商萬國商業機器公司 | 用於具有回退之經引導中斷虛擬化之方法、電腦系統及電腦程式產品 |
TWI727607B (zh) * | 2019-02-14 | 2021-05-11 | 美商萬國商業機器公司 | 用於具有中斷表之經引導中斷虛擬化之方法、電腦系統及電腦程式產品 |
TWI764082B (zh) | 2019-02-14 | 2022-05-11 | 美商萬國商業機器公司 | 用於經引導中斷虛擬化之中斷信號之方法、電腦系統及電腦程式產品 |
TWI710911B (zh) * | 2019-05-02 | 2020-11-21 | 緯創資通股份有限公司 | 電子系統、主機端裝置及控制方法 |
US11386020B1 (en) * | 2020-03-03 | 2022-07-12 | Xilinx, Inc. | Programmable device having a data processing engine (DPE) array |
US20220335003A1 (en) * | 2021-04-19 | 2022-10-20 | Advanced Micro Devices, Inc. | Master-Slave Communication with Subdomains |
CN114328323A (zh) * | 2021-12-01 | 2022-04-12 | 北京三快在线科技有限公司 | 一种数据中转单元及基于数据中转单元的数据传输方法 |
CN114185607B (zh) * | 2022-02-14 | 2022-06-14 | 苏州浪潮智能科技有限公司 | Arm服务器中pci设备的启动控制方法、装置及设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7356636B2 (en) * | 2005-04-22 | 2008-04-08 | Sun Microsystems, Inc. | Virtualized PCI switch |
TW200839513A (en) * | 2006-11-22 | 2008-10-01 | Transitive Ltd | Memory consistency protection in a multiprocessor computing system |
US8250348B2 (en) * | 2005-05-19 | 2012-08-21 | International Business Machines Corporation | Methods and apparatus for dynamically switching processor mode |
Family Cites Families (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5481738A (en) * | 1992-02-20 | 1996-01-02 | International Business Machines Corporation | Apparatus and method for communicating a quiesce and unquiesce state between elements of a data processing complex |
US6092170A (en) * | 1996-11-29 | 2000-07-18 | Mitsubishi Denki Kabushiki Kaisha | Data transfer apparatus between devices |
US6070207A (en) * | 1998-01-26 | 2000-05-30 | Intel Corporation | Hot plug connected I/O bus for computer system |
US6738882B1 (en) * | 1999-11-30 | 2004-05-18 | Hewlett-Packard Development Company, L.P. | Concurrent multi-processor memory testing beyond 32-bit addresses |
WO2001061935A1 (en) * | 2000-02-17 | 2001-08-23 | Conexant Systems, Inc, | Cable modem having a programmable media access controller |
US6990685B1 (en) | 2000-06-15 | 2006-01-24 | Dell Products L.P. | System and method for tracking bootable devices |
US6704831B1 (en) * | 2000-11-16 | 2004-03-09 | Sun Microsystems, Inc. | Method and apparatus for converting address information between PCI bus protocol and a message-passing queue-oriented bus protocol |
US20050114639A1 (en) * | 2001-05-11 | 2005-05-26 | Zimmer Vincent J. | Hardened extensible firmware framework to support system management mode operations using 64-bit extended memory mode processors |
US6848046B2 (en) | 2001-05-11 | 2005-01-25 | Intel Corporation | SMM loader and execution mechanism for component software for multiple architectures |
US7185135B1 (en) | 2002-07-12 | 2007-02-27 | Cypress Semiconductor Corporation | USB to PCI bridge |
US7953074B2 (en) | 2003-01-21 | 2011-05-31 | Emulex Design And Manufacturing Corporation | Apparatus and method for port polarity initialization in a shared I/O device |
US7155379B2 (en) * | 2003-02-25 | 2006-12-26 | Microsoft Corporation | Simulation of a PCI device's memory-mapped I/O registers |
US7956995B2 (en) | 2005-01-07 | 2011-06-07 | Kyoto University | Optical sensor and method for manufacturing the same |
US7395367B2 (en) | 2005-10-27 | 2008-07-01 | International Business Machines Corporation | Method using a master node to control I/O fabric configuration in a multi-host environment |
US7447822B2 (en) * | 2005-12-12 | 2008-11-04 | Inventec Corporation | Hot-plug control system and method |
US7650259B2 (en) * | 2007-10-01 | 2010-01-19 | International Business Machines Corporation | Method for tuning chipset parameters to achieve optimal performance under varying workload types |
US7827333B1 (en) * | 2008-02-04 | 2010-11-02 | Nvidia Corporation | System and method for determining a bus address on an add-in card |
US8332593B2 (en) * | 2008-12-24 | 2012-12-11 | Nuon, Inc. | Memory space management and mapping for memory area network |
JP5401679B2 (ja) | 2009-02-19 | 2014-01-29 | 株式会社日立製作所 | 計算機システム、管理方法及び管理サーバ |
US8429323B2 (en) * | 2010-05-05 | 2013-04-23 | International Business Machines Corporation | Memory mapped input/output bus address range translation |
US8615645B2 (en) * | 2010-06-23 | 2013-12-24 | International Business Machines Corporation | Controlling the selectively setting of operational parameters for an adapter |
US8593629B2 (en) | 2011-02-17 | 2013-11-26 | Hewlett-Packard Development Company, L.P. | Apparatus for performing SERS |
US9588048B2 (en) | 2011-05-20 | 2017-03-07 | Hewlett-Packard Development Company, L.P. | Surface enhanced raman spectroscopy sensor, system and method of sensing |
US8949474B1 (en) * | 2011-11-21 | 2015-02-03 | Marvell International Ltd. | Method for inter-chip and intra-chip addressing using port identifiers and address mapping |
US8645594B2 (en) * | 2012-06-29 | 2014-02-04 | Intel Corporation | Driver-assisted base address register mapping |
US9626324B2 (en) * | 2014-07-08 | 2017-04-18 | Dell Products L.P. | Input/output acceleration in virtualized information handling systems |
-
2013
- 2013-01-29 CN CN201380071515.4A patent/CN105264506B/zh active Active
- 2013-01-29 US US14/763,501 patent/US9940291B2/en active Active
- 2013-01-29 WO PCT/US2013/023552 patent/WO2014120113A1/en active Application Filing
- 2013-01-29 EP EP13873433.0A patent/EP2951705A4/en not_active Withdrawn
- 2013-12-09 TW TW102145163A patent/TWI512479B/zh not_active IP Right Cessation
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7356636B2 (en) * | 2005-04-22 | 2008-04-08 | Sun Microsystems, Inc. | Virtualized PCI switch |
US8250348B2 (en) * | 2005-05-19 | 2012-08-21 | International Business Machines Corporation | Methods and apparatus for dynamically switching processor mode |
TW200839513A (en) * | 2006-11-22 | 2008-10-01 | Transitive Ltd | Memory consistency protection in a multiprocessor computing system |
Also Published As
Publication number | Publication date |
---|---|
CN105264506B (zh) | 2018-01-26 |
EP2951705A4 (en) | 2016-11-02 |
EP2951705A1 (en) | 2015-12-09 |
US9940291B2 (en) | 2018-04-10 |
WO2014120113A1 (en) | 2014-08-07 |
US20150356049A1 (en) | 2015-12-10 |
CN105264506A (zh) | 2016-01-20 |
TW201430572A (zh) | 2014-08-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI512479B (zh) | 針對記憶體映射組態分派處理器之技術 | |
CN107015845B (zh) | Gpu虚拟化 | |
US9229730B2 (en) | Multi-chip initialization using a parallel firmware boot process | |
US9170835B2 (en) | Apparatus and method for expedited virtual machine (VM) launch in VM cluster environment | |
US8595723B2 (en) | Method and apparatus for configuring a hypervisor during a downtime state | |
WO2017024783A1 (zh) | 一种虚拟化方法、装置和*** | |
JP5308522B2 (ja) | ハイパーバイザ・ローディングのためのメモリ管理 | |
US20090265708A1 (en) | Information Processing Apparatus and Method of Controlling Information Processing Apparatus | |
US8037210B2 (en) | Computer and method for directly accessing computer hardware by virtual system | |
US9454397B2 (en) | Data processing systems | |
US10620963B2 (en) | Providing fallback drivers for IO devices in a computing system | |
CN103034524A (zh) | 半虚拟化的虚拟gpu | |
JP2011100431A (ja) | 仮想マシン制御装置及び仮想マシン制御方法 | |
US10437762B2 (en) | Partitioned interconnect slot for inter-processor operation | |
US9910690B2 (en) | PCI slot hot-addition deferral for multi-function devices | |
CN113312141A (zh) | 用于虚拟机的虚拟串行端口 | |
US20170277632A1 (en) | Virtual computer system control method and virtual computer system | |
TW201319827A (zh) | 執行多重作業系統的方法及電子裝置 | |
US10853284B1 (en) | Supporting PCI-e message-signaled interrupts in computer system with shared peripheral interrupts | |
US9323539B2 (en) | Constructing persistent file system from scattered persistent regions | |
US9766918B2 (en) | Virtual system device identification using GPU to host bridge mapping | |
US11829772B2 (en) | Heterogeneous compute domains with an embedded operating system in an information handling system | |
JP2010128943A (ja) | 情報処理装置および情報処理装置の制御方法 | |
CN117742962A (zh) | 一种虚拟机资源的管理方法、装置、设备及存储介质 | |
JP2013182461A (ja) | 情報処理装置および情報処理装置におけるリソースの制御方法、並びにコンピュータ・プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | Annulment or lapse of patent due to non-payment of fees |