本公開涉及通信,特別涉及一種云上運算單元訪問終端i/o器件的方法,一種云上運算單元訪問終端i/o器件的系統,一種電子設備以及一種計算機可讀存儲介質。
背景技術:
1、pc機(personal?computer,個人計算機)、手機、電視機頂盒、物聯網終端等都是計算機系統。一個計算機系統一般由三種功能部件構成:多個不同功能的輸入輸出器件、運算單元、存儲器。以pc機為例,其輸入輸出設備包括顯示器、鼠標、鍵盤、揚聲器、攝像頭等,內置cpu(central?processing?unit,中央處理器)作為運算單元,內置有一定容量的ram(random?access?memory,隨機存取存儲器)作為存儲器。一個典型的小型計算系統模型如圖1所示。計算機的運算單元與輸入輸出器件(i/o器件)之間通過通信總線(bus)連接,實現數據傳輸。小型計算機系統一般使用短距或板級的通信總線技術標準,常見的包括usb(universal
2、serial?bus,通用串行總線)、pci(peripheral?component?interconnect,定義局部總線的標準)、i2c(inter-integrated?circuit,雙向二線制同步串行總線)等等。一條總線可以同時連接多個i/o器件。
3、在運算單元中包含有各個總線的控制器硬件,并運行有操作系統軟件。為了讓運算單元中的軟件能使用通信總線,在操作系統中需要加載各個總線控制器的驅動程序;為了讓運算單元中的軟件能與不同的i/o器件通信,在操作系統中需要加載各個i/o器件的驅動程序。
4、現有計算機系統的一個特點是運算單元與i/o器件集成在同一個設備中,形成一種具備完整計算功能的終端產品。在這種技術架構中,現有的短距或板級的通信總線技術是適用的,且運行得很好。但這種計算機系統存在三個主要問題:一是,由于依賴于設備內集成的運算單元,因此運算能力受限且不易擴展;二是,不同產品的運算性能差異很大,導致同一種應用對使用不同終端的用戶來說的體驗不一致;三是,需要在終端上安裝軟件,導致部署和維護管理難度大。
技術實現思路
1、為了至少解決現有技術中存在的上述技術問題,本公開提供一種云上運算單元訪問終端i/o器件的方法、云上運算單元訪問終端i/o器件的系統、電子設備及計算機可讀存儲介質,使云上運算單元可以訪問終端設備上的i/o器件;這樣,既可以充分使用現有的海量i/o器件,又能適應端云一體的新型計算機架構。
2、第一方面,本公開提供一種云上運算單元訪問終端輸入輸出器件i/o器件的方法,應用于總線代理單元,所述方法包括:
3、識別終端設備中存在的總線控制器,并加載總線代理程序;
4、與云上運算單元建立網絡連接,并使云上運算單元加載虛擬總線驅動程序,以及使云上運算單元加載i/o器件的器件驅動程序;
5、通過總線代理程序接收來自i/o器件的數據,經過所述云上運算單元上的虛擬總線驅動程序將數據轉發給對應的器件驅動程序,以及,將器件驅動程序經過所述云上運算單元上的虛擬總線驅動程序發送到總線代理程序的發送給i/o器件的數據轉發給對應的i/o器件。
6、進一步的,
7、所述使云上運算單元加載虛擬總線驅動程序包括:
8、將終端設備中包含的各個總線的信息發送到云上運算單元,使云上運算單元根據總線信息加載每一類總線的虛擬總線驅動程序;以及,
9、與云上運算單元中的每一個虛擬總線驅動程序建立網絡連接;
10、所述使云上運算單元加載i/o器件的器件驅動程序包括:
11、初始化通信總線,獲取連接在該總線上的i/o器件的信息;
12、將i/o器件的信息通過網絡連接發送到云上運算單元的虛擬總線驅動程序,使虛擬總線驅動程序根據i/o器件的信息加載相應的器件驅動程序;
13、或者,
14、通過總線代理程序中轉使云上運算單元與總線控制器通信,并使云上運算單元獲取總線上的i/o器件的信息,再由虛擬總線驅動程序根據i/o器件的信息加載相應的器件驅動程序。
15、進一步的,所述初始化通信總線,獲取連接在該總線上的i/o器件信息,包括:
16、直接通過總線代理程序從總線控制器獲取i/o器件的信息;或者,
17、接收虛擬總線驅動程序向總線代理程序發送的初始化總線的指令;
18、根據所述初始化總線的指令通過總線代理程序初始化總線控制器,以獲取連接在該總線上的i/o器件的信息。
19、進一步的,所述方法還包括:
20、當具有多個云上運算單元時,對于每一個通信總線,建立其總線代理程序與云上運算單元之間單獨的連接;
21、將所述單獨的連接用于后續該通信總線的總線代理程序與該通信總線對應的虛擬總線驅動程序之間通信。
22、進一步的,所述與云上運算單元建立網絡連接,包括:
23、連接運算單元管理服務器,查詢需要連接的云上運算單元的地址,并在查詢時提供本終端設備的標識,使運算單元管理服務器根據終端設備標識確定其所需要連接的云上運算單元的地址信息,并向總線代理單元返回該需要連接的云上運算單元的地址信息;
24、使用返回的該云上運算單元的地址信息連接云上運算單元。
25、進一步的,
26、所述方法還包括:
27、在向運算單元管理服務器查詢所需連接的云上運算單元的地址時還提供通信總線的標識信息,使所述運算單元管理服務器向總線代理單元返回的云上運算單元的地址信息中還包括云上運算單元與通信總線之間的對應關系;
28、所述使用返回的該云上運算單元的地址信息連接云上運算單元包括:
29、根據云上運算單元與通信總線之間的對應關系將各個總線代理程序連接到對應的云上運算單元。
30、第二方面,本公開提供一種云上運算單元訪問終端輸入輸出器件i/o器件的方法,應用于云上運算單元,所述方法包括:
31、與總線代理單元建立網絡連接,所述總線代理單元識別了終端設備中存在的總線控制器,并加載有總線代理程序;
32、基于總線代理單元加載虛擬總線驅動程序;以及,
33、基于總線代理單元加載i/o器件的器件驅動程序;
34、通過虛擬總線驅動程序將來自i/o器件的數據轉發給對應的器件驅動程序,所述來自i/o器件的數據由總線代理單元通過總線代理程序接收并轉發至虛擬總線驅動程序,并將器件驅動程序發送給i/o器件的數據通過虛擬總線驅動程序發送到總線代理程序,并通過總線代理程序轉發給對應的i/o器件。
35、進一步的,
36、所述基于總線代理單元加載虛擬總線驅動程序包括:
37、接收總線代理單元發送的終端設備中包含的各個總線的信息;
38、根據總線信息加載每一類總線的虛擬總線驅動程序;
39、將每一個虛擬總線驅動程序與總線代理單元建立網絡連接;
40、所述基于總線代理單元加載i/o器件的器件驅動程序包括:
41、通過虛擬總線驅動程序接收總線代理單元通過網絡連接發送的i/o器件的信息,所述i/o器件的信息為總線代理單元初始化通信總線后獲取的連接在該總線上的i/o器件的信息,并通過虛擬總線驅動程序根據所述i/o器件的信息加載相應的器件驅動程序;
42、或者,
43、通過虛擬總線驅動程序經總線代理程序中轉,與總線控制器通信,以獲取總線上的i/o器件的信息,再通過虛擬總線驅動程序根據i/o器件的信息加載相應的器件驅動程序。
44、進一步的,
45、在接收總線代理單元通過網絡連接發送的i/o器件的信息之前,還包括:
46、通過虛擬總線驅動程序向總線代理程序發送初始化總線的指令,使總線代理單元根據所述初始化總線的指令通過總線代理程序初始化總線控制器,以獲取連接在該總線上的i/o器件的信息。
47、第三方面,本公開提供一種云上運算單元訪問終端i/o器件的系統,所述系統包括總線代理單元和云上運算單元,所述總線代理單元包括:
48、第一加載模塊,其設置為識別終端設備中存在的總線控制器,并加載總線代理程序;
49、第一連接模塊,其設置為與云上運算單元建立網絡連接,并使云上運算單元加載虛擬總線驅動程序,以及使云上運算單元加載i/o器件的器件驅動程序;
50、傳輸模塊,其設置為通過總線代理程序接收來自i/o器件的數據,經過所述云上運算單元上的虛擬總線驅動程序將數據轉發給對應的器件驅動程序,以及,將器件驅動程序經過所述云上運算單元上的虛擬總線驅動程序發送到總線代理程序的發送給i/o器件的數據轉發給對應的i/o器件。
51、進一步的,所述第一連接模塊包括第一發送單元和連接單元;
52、所述第一發送單元設置為將終端設備中包含的各個總線的信息發送到云上運算單元,使云上運算單元根據總線信息加載每一類總線的虛擬總線驅動程序;
53、所述連接單元設置為與云上運算單元中的每一個虛擬總線驅動程序建立網絡連接;
54、所述第一連接模塊還包括初始化單元和第二發送單元;
55、所述初始化單元設置為初始化通信總線,獲取連接在該總線上的i/o器件的信息;
56、所述第二發送單元設置為將i/o器件的信息通過網絡連接發送到云上運算單元的虛擬總線驅動程序,使虛擬總線驅動程序根據i/o器件的信息加載相應的器件驅動程序;
57、或者,所述第一連接模塊還包括中轉單元;
58、所述中轉單元設置為通過總線代理程序中轉使云上運算單元與總線控制器通信,并使云上運算單元獲取總線上的i/o器件的信息,再由虛擬總線驅動程序根據i/o器件的信息加載相應的器件驅動程序。
59、進一步的,所述初始化單元具體設置為:
60、直接通過總線代理程序從總線控制器獲取i/o器件的信息;或者,
61、接收虛擬總線驅動程序向總線代理程序發送的初始化總線的指令;以及,
62、根據所述初始化總線的指令通過總線代理程序初始化總線控制器,以獲取連接在該總線上的i/o器件的信息。
63、進一步的,所述第一連接模塊還設置為:
64、當具有多個云上運算單元時,對于每一個通信總線,建立其總線代理程序與云上運算單元之間單獨的連接;
65、將所述單獨的連接用于后續該通信總線的總線代理程序與該通信總線對應的虛擬總線驅動程序之間通信。
66、進一步的,所述第一連接模塊具體設置為:
67、連接運算單元管理服務器,查詢需要連接的云上運算單元的地址,并在查詢時提供本終端設備的標識,使運算單元管理服務器根據終端設備標識確定其所需要連接的云上運算單元的地址信息,并向總線代理單元返回該需要連接的云上運算單元的地址信息;
68、使用返回的該云上運算單元的地址信息連接云上運算單元。
69、進一步的,所述第一連接模塊具體還設置為:
70、在向運算單元管理服務器查詢所需連接的云上運算單元的地址時還提供通信總線的標識信息,使所述運算單元管理服務器向總線代理單元返回的云上運算單元的地址信息中還包括云上運算單元與通信總線之間的對應關系;
71、根據云上運算單元與通信總線之間的對應關系將各個總線代理程序連接到對應的云上運算單元。
72、第四方面,本公開提供一種云上運算單元訪問終端i/o器件的系統,所述系統包括總線代理單元和云上運算單元,所述云上運算單元包括:
73、第二連接模塊,其設置為與總線代理單元建立網絡連接,所述總線代理單元識別了終端設備中存在的總線控制器,并加載有總線代理程序;
74、第二加載模塊,其設置為基于總線代理單元加載虛擬總線驅動程序;
75、第三加載模塊,其設置為基于總線代理單元加載i/o器件的器件驅動程序;
76、訪問模塊,其設置為通過虛擬總線驅動程序將來自i/o器件的數據轉發給對應的器件驅動程序,所述來自i/o器件的數據由總線代理單元通過總線代理程序接收并轉發至虛擬總線驅動程序,并將器件驅動程序發送給i/o器件的數據通過虛擬總線驅動程序發送到總線代理程序,并通過總線代理程序轉發給對應的i/o器件。
77、進一步的,
78、所述第二加載模塊具體設置為:
79、接收總線代理單元發送的終端設備中包含的各個總線的信息;
80、根據總線信息加載每一類總線的虛擬總線驅動程序;
81、將每一個虛擬總線驅動程序與總線代理單元建立網絡連接;
82、所述第三加載模塊具體設置為:
83、通過虛擬總線驅動程序接收總線代理單元通過網絡連接發送的i/o器件的信息,所述i/o器件的信息為總線代理單元初始化通信總線后獲取的連接在該總線上的i/o器件的信息,并通過虛擬總線驅動程序根據所述i/o器件的信息加載相應的器件驅動程序;
84、或者,
85、通過虛擬總線驅動程序經總線代理程序中轉,與總線控制器通信,以獲取總線上的i/o器件的信息,再通過虛擬總線驅動程序根據i/o器件的信息加載相應的器件驅動程序。
86、進一步的,
87、所述第三加載模塊還設置為在接收總線代理單元通過網絡連接發送的i/o器件的信息之前,通過虛擬總線驅動程序向總線代理程序發送初始化總線的指令,使總線代理單元根據所述初始化總線的指令通過總線代理程序初始化總線控制器,以獲取連接在該總線上的i/o器件的信息。
88、第五方面,本公開提供一種電子設備,包括存儲器和處理器,所述存儲器中存儲有計算機程序,當所述處理器運行所述存儲器存儲的計算機程序時,所述處理器執行如第一方面和第二方面中任一所述的云上運算單元訪問終端i/o器件的方法。
89、第六方面,本公開提供一種計算機可讀存儲介質,所述計算機可讀存儲介質上存儲有計算機程序,所述計算機程序被處理器執行時實現上述第一方面和第二方面中任一所述的云上運算單元訪問終端i/o器件的方法。
90、有益效果:
91、本公開提供的云上運算單元訪問終端i/o器件的方法、云上運算單元訪問終端i/o器件的系統、電子設備及存儲介質,可以實現云上運算單元通過網絡訪問現有技術標準的i/o器件,可以復用現有的i/o控制器、總線控制器、器件驅動程序等產品,既可以充分使用現有的海量i/o器件,又能適應端云一體的新型計算機架構。