一種總線虛擬化的方法、裝置及系統的制作方法
【技術領域】
[0001] 本發明涉及計算機技術領域,具體涉及一種總線虛擬化的方法、裝置及系統。
【背景技術】
[0002] 現有技術中的多內核操作系統是指在一個物理計算節點內包含多個處理器內核, 處理器內核使用同一根全局數據總線,也叫前端總線,前端總線通過主橋(hostbridge)或 者根復合體(RC,rootcomplex)的轉接可W連接到PCIE總線,于是,運行于不同處理器內 核的內核代碼都可W通過一個配置寄存器對掃描連接在PCIE總線上的總線設備、對PCI總 線上的總線設備進行訪問。一個配置寄存器對包括一個地址寄存器和一個數據寄存器。
[0003] 現有技術中,每個處理器內核都可W通過一個配置寄存器對掃描總線和配置讀寫 總線設備。送樣;所有的處理器內核只有一個配置寄存器對,多個處理器內核對該配置寄存 器對進行共享,送樣,地址寄存器和數據寄存器中的值就會出現混亂,導致正確性的問題。
【發明內容】
[0004] 本發明實施例提供一種總線虛擬化的方法,可W確保每個處理器內核在訪問總線 設備時,可W使用獨立的一個配置寄存器對,從而可W保證處理器內核對總線設備訪問正 確性。本發明實施例還提供了相應的裝置及系統。
[0005] 本發明第一方面提供一種總線虛擬化的方法,包括;所述總線的根復合體RC中包 括多個配置寄存器對,且每個配置寄存器對包括一個地址寄存器和一個數據寄存器;
[0006] 所述RC接收處理器內核中的總線代理裝置發出的總線事務消息,所述總線事務 消息中包含本次總線事務的標識,所述本次總線事務的標識用于標識發起所述本次總線事 務的所述處理器內核;
[0007] 所述RC從所述多個配置寄存器對中,確定所述本次總線事務的標識對應的所述 處理器內核應使用的配置寄存器對,W便所述處理器內核向確定的所述配置寄存器對的地 址寄存器中寫入要配置的地址信息,向確定的所述配置寄存器對的數據寄存器中讀寫要給 總線設備配置的數據。
[0008] 結合第一方面,在第一種可能的實現方式中,所述RC從所述多個配置寄存器對 中,確定所述本次總線事務的標識對應的所述處理器內核應使用的配置寄存器對,包括:
[0009] 所述RC根據所述本次總線事務的標識,從總線事務標識與配置寄存器對的關聯 關系中,確定與所述本次總線事務的標識對應的配置寄存器對,作為所述本次總線事務的 標識對應的所述處理器內核應使用的配置寄存器對。
[0010] 結合第一方面,在第二種可能的實現方式中,所述RC從所述多個配置寄存器對 中,確定所述本次總線事務的標識對應的所述處理器內核應使用的配置寄存器對,包括:
[0011] 所述RC從所述多個配置寄存器對中,確定狀態處于空閑態的配置寄存器對;
[0012] 從狀態處于空閑態的配置寄存器對中,選擇一個配置寄存器對,作為所述本次總 線事務的標識對應的所述處理器內核應使用的配置寄存器對。
[0013] 結合第一方面第二種可能的實現方式,在第H種可能的實現方式中,所述從狀態 處于空閑態的配置寄存器對中,選擇一個配置寄存器對,作為所述本次總線事務的標識對 應的所述處理器內核應使用的配置寄存器對之后,所述方法還包括:
[0014] 將選擇的所述一個配置寄存器對中記錄的總線事務標識修改為所述本次總線事 務的標識,將所述一個配置寄存器對的狀態修改為使用狀態。
[0015] 結合第一方面第二種可能的實現方式,在第四種可能的實現方式中,當確定狀態 處于空閑態的配置寄存器對時,確定出所述多個配置寄存器對的狀態都處于使用狀態,貝U 向所述處理器內核發出異常報告。
[0016] 結合第一方面、第一方面第一種至第四種可能的實現方式中的任意一種,在第五 種可能的實現方式中,當所述總線事務消息中還包含事務類型的索引信息時,所述RC從所 述多個配置寄存器對中,確定所述本次總線事務的標識對應的所述處理器內核應使用的配 置寄存器對之后,所述方法還包括:
[0017] 根據所述事務類型的索引信息和設備訪問權限表,確定所述處理器內核對所述事 務類型的索引信息所標識的總線設備是否具有訪問權限,所述設備訪問權限表用于描述處 理器內核對事務類型的索引信息所標識的總線設備是否具有訪問權限;
[0018] 當確定具有訪問權限時,則允許所述處理器內核訪問所述事務類型的索引信息所 標識的總線設備。
[0019] 結合第一方面、第一方面第一種至第四種可能的實現方式中的任意一種,在第六 種可能的實現方式中,所述本次總線事務的標識為單核中央處理器CPU的標識、運行于處 理器內核上的負載操作系統的標識或者是多個負載操作系統構成的分區的區域標識。
[0020] 本發明第二方面提供一種總線的根復合體RC裝置,包括:多個配置寄存器對,且 每個配置寄存器對包括一個地址寄存器和一個數據寄存器;
[0021] 接收單元,用于接收處理器內核中的總線代理裝置發出的總線事務消息,所述總 線事務消息中包含本次總線事務的標識,所述本次總線事務的標識用于標識發起所述本次 總線事務的所述處理器內核;
[0022] 確定單元,用于從所述多個配置寄存器對中,確定所述接收單元接收的所述本次 總線事務的標識對應的所述處理器內核應使用的配置寄存器對,W便所述處理器內核向確 定的所述配置寄存器對的地址寄存器中寫入要配置的地址信息,向確定的所述配置寄存器 對的數據寄存器中讀寫要給總線設備配置的數據。
[0023] 結合第二方面,在第一種可能的實現方式中,
[0024] 所述確定單元,用于根據所述本次總線事務的標識,從總線事務標識與配置寄存 器對的關聯關系中,確定與所述本次總線事務的標識對應的配置寄存器對,作為所述本次 總線事務的標識對應的所述處理器內核應使用的配置寄存器對。
[00巧]結合第二方面,在第二種可能的實現方式中,
[0026]所述確定單元,用于從所述多個配置寄存器對中,確定狀態處于空閑態的配置寄 存器對,從狀態處于空閑態的配置寄存器對中,選擇一個配置寄存器對,作為所述本次總線 事務的標識對應的所述處理器內核應使用的配置寄存器對。
[0027] 結合第二方面第二種可能的實現方式,在第H種可能的實現方式中,
[0028]所述確定單元,還用于將選擇的所述一個配置寄存器對中記錄的總線事務標識修 改為所述本次總線事務的標識,將所述一個配置寄存器對的狀態修改為使用狀態。
[0029] 結合第二方面第二種可能的實現方式,在第四種可能的實現方式中,所述裝置還 包括發送單元,
[0030] 所述發送單元,用于當所述確定單元確定狀態處于空閑態的配置寄存器對時,確 定出所述多個配置寄存器對的狀態都處于使用狀態,則向所述處理器內核發出異常報告。
[0031] 結合第二方面、第二方面第一種至第四種可能的實現方式中的任意一種,在第五 種可能的實現方式中,當所述總線事務消息中還包含事務類型的索引信息時,
[0032] 所述確定單元,還用于根據所述事務類型的索引信息和設備訪問權限表,確定所 述處理器內核對所述事務類型的索引信息所標識的總線設備是否具有訪問權限,所述設備 訪問權限表用于描述處理器內核對事務類型的索引信息所標識的總線設備是否具有訪問 權限;
[0033] 所述裝置還包括:
[0034] 權限驗證單元,用于當所述確定單元確定具有訪問權限時,則允許所述處理器內 核訪問所述事務類型的索引信息所標識的總線設備。
[0035] 本發明第H方面提供一種總線虛擬化的系統,包括:多個處理器內核、總線的根復 合體RC和總線設備,所述每個處理器內核中都包含一個總線代理裝置,所述總線的根復合 體RC中包括多個配置寄存器對,且每個配置寄存器對包括一個地址寄存器和一個數據寄 存器;
[0036] 所述RC接收處理器內核中的總線代理裝置發出的總線事務消息,所述總線事務 消息中包含本次總線事務的標識,所述本次總線事務的標識用于標識發起所述本次總線事 務的所述處理器內核;
[0037] 所述RC從所述多個配置寄存器對中,確定所述本次總線事務的標識對應的所述 處理器內核應使用的配置寄存器對,W便所述處理器內核向確定的所述配置寄存器對的地 址寄存器中寫入要配置的地址信息,向確定的所述配置寄存器對的數據寄存器中讀寫要給 總線設備配置的數據。
[0038] 本發明實施例提供的總線虛擬化的方法中,所述總線的根復合體RC中包括多個 配置寄存器對,且每個配置寄存器對包括一個地址寄存器和一個數據寄存器;所述RC接收 處理器內核中的總線代理裝置發出的總線事務消息,所述總線事務消息中包含本次總線事 務的標識,所述本次總線事務的標識用于標識發起所述本次總線事務的所述處理器內核; 所述RC從所述多個配置寄存器對中,確定所述本次總線事務的標識對應