本發(fā)明涉及一種用于更新在帶有隨機(jī)存取存儲(chǔ)器和只讀存儲(chǔ)器的物理機(jī)器上在超級(jí)管理程序(Hypervisor)下運(yùn)行的虛擬機(jī)的方法。此外,本發(fā)明還涉及一種相對(duì)應(yīng)的設(shè)備、一種相對(duì)應(yīng)的計(jì)算機(jī)程序以及一種相對(duì)應(yīng)的存儲(chǔ)介質(zhì)。
背景技術(shù):
公知的汽車控制設(shè)備通常具有用于進(jìn)行車載診斷(On-Board-Diagnose)的能力。典型地,所提供的診斷在此涉及控制設(shè)備本身、其功能性和軟件更新。例如可以借助極其不同的車輛通信網(wǎng)絡(luò)、如CAN、Flexray或者以太網(wǎng)以及相應(yīng)的診斷協(xié)議、如OBD來(lái)訪問(wèn)通用的(gattungsmaessig)控制設(shè)備的這些能力。為了在控制設(shè)備與外部診斷工具之間建立診斷通信連接,這樣的控制設(shè)備具有診斷地址。在控制設(shè)備之內(nèi)的唯一的軟件系統(tǒng)的情況下,所描述的能力被認(rèn)為是現(xiàn)有技術(shù)。
但是,在虛擬化的控制設(shè)備中存在多個(gè)軟件系統(tǒng)(所謂的客戶系統(tǒng)(Gastsysteme))和超級(jí)管理程序的附加的軟件組件。作為其結(jié)果,對(duì)于每個(gè)客戶系統(tǒng)、硬件和超級(jí)管理程序需要關(guān)于狀態(tài)信息的診斷能力??蛻粝到y(tǒng)和超級(jí)管理程序最后必須被更新。
DE 19921845 A1描述了一種用于汽車的診斷測(cè)試設(shè)備,其中在汽車中設(shè)置可編程的、具有自診斷裝置的控制設(shè)備,所述控制設(shè)備以程序控制的方式控制、監(jiān)控汽車的發(fā)動(dòng)機(jī)控制裝置和其他系統(tǒng)、生成錯(cuò)誤代碼以及存儲(chǔ)所述錯(cuò)誤代碼,并且所述控制設(shè)備可以經(jīng)由汽車側(cè)的診斷/檢驗(yàn)插頭與外部診斷測(cè)試儀連接。外部診斷測(cè)試儀被配備有程序識(shí)別設(shè)備和程序加載設(shè)備。借助程序識(shí)別設(shè)備詢問(wèn)并識(shí)別在所連接的控制設(shè)備中包含的程序版本。接著,當(dāng)在汽車側(cè)現(xiàn)存的并且通過(guò)診斷/檢驗(yàn)插頭識(shí)別的、在汽車的所連接的控制設(shè)備中存在的程序沒(méi)有被存儲(chǔ)在最新的且最近的版本中時(shí),由診斷測(cè)試儀的程序加載設(shè)備將分別最近的版本加載到相對(duì)應(yīng)的控制設(shè)備的程序存儲(chǔ)器中。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明提供了按照獨(dú)立權(quán)利要求所述的一種用于更新在帶有隨機(jī)存取存儲(chǔ)器和只讀存儲(chǔ)器的物理機(jī)器上在超級(jí)管理程序下運(yùn)行的虛擬機(jī)的方法、一種相對(duì)應(yīng)的設(shè)備、一種相對(duì)應(yīng)的計(jì)算機(jī)程序以及一種相對(duì)應(yīng)的存儲(chǔ)介質(zhì)。
所建議的解決方案以如下認(rèn)知為基礎(chǔ):虛擬化的系統(tǒng)具有比單個(gè)軟件系統(tǒng)更多的可更新的組件。在這里是需要彼此獨(dú)立的更新的多個(gè)客戶系統(tǒng)和超級(jí)管理程序本身。
這種解決方案的優(yōu)點(diǎn)在于,保持現(xiàn)有的基于診斷通信和診斷地址以及引導(dǎo)管理器(Bootmanager)的流程。這樣,每個(gè)客戶系統(tǒng)都記住它自己的診斷地址,并能夠處理診斷通信。通信基礎(chǔ)架構(gòu)可以或者在多個(gè)客戶系統(tǒng)之間被分享,或者只被保留給一個(gè)客戶系統(tǒng)。
在此,特別有利的是本發(fā)明的確定的實(shí)施形式的更新處于運(yùn)行中的生產(chǎn)環(huán)境(Produktivumgebung)的能力。這意味著,超級(jí)管理程序和虛擬機(jī)連同由其實(shí)施的應(yīng)用程序在虛擬機(jī)或者超級(jí)管理程序就在那兒被更新期間可以正常地繼續(xù)運(yùn)轉(zhuǎn)。
在此,所介紹的方案考慮到如下情況:大部分控制設(shè)備(在汽車技術(shù)中比方說(shuō)要考慮到發(fā)動(dòng)機(jī)和車身控制或者行駛動(dòng)態(tài)調(diào)節(jié))實(shí)施其直接來(lái)自內(nèi)部閃存的機(jī)器代碼。在這樣的設(shè)備處在更新的范圍內(nèi)執(zhí)行的快閃重新編程期間,通過(guò)應(yīng)用在這里討論的方法使得在重新編程期間可以實(shí)施應(yīng)用程序代碼成為可能。就此而言,這被證實(shí)為合乎目的的,因?yàn)橥瑫r(shí)的代碼實(shí)施在傳統(tǒng)做法的情況下幾乎是不可能的。
通過(guò)在從屬權(quán)利要求中舉出的措施能夠?qū)崿F(xiàn)在獨(dú)立權(quán)利要求中說(shuō)明的基本思想的有利的擴(kuò)展方案和改進(jìn)方案。這樣可以設(shè)置,客戶系統(tǒng)在被提高的授權(quán)級(jí)別(Berechtigungsstufe)上運(yùn)行,并代表如下超級(jí)管理程序接收到更新要求:該超級(jí)管理程序最后通過(guò)引導(dǎo)管理器或者通過(guò)該引導(dǎo)管理器起動(dòng)的引導(dǎo)加載程序進(jìn)行更新。因此,為了更新的目的,該超級(jí)管理程序仿佛被分配給一個(gè)客戶系統(tǒng)。該超級(jí)管理程序以這種方式可以與這個(gè)確定的客戶系統(tǒng)共同被更新。
按照變型方案可以設(shè)置,該客戶系統(tǒng)自己確定可能的更新(Update)并且觸發(fā)該可能的更新。相對(duì)應(yīng)的實(shí)施形式被證實(shí)為盡可能地與每個(gè)診斷工具無(wú)關(guān)。
附圖說(shuō)明
本發(fā)明的實(shí)施例在附圖中示出,并在以下描述中作更詳細(xì)地被闡述。附圖中:
圖1示出了按照實(shí)施形式的方法的數(shù)據(jù)流圖。
圖2示意性地示出了按照第二實(shí)施形式的控制設(shè)備連同可能的通信伙伴和基礎(chǔ)架構(gòu)的方框圖。
具體實(shí)施方式
圖1將所建議的用于更新在帶有隨機(jī)存取存儲(chǔ)器12和只讀存儲(chǔ)器14的物理機(jī)器38上在超級(jí)管理程序16下運(yùn)行的虛擬機(jī)18的方法10的基本流程概括成根據(jù)尤頓/迪馬克符號(hào)(Yourdon/DeMarco-Notation)的數(shù)據(jù)流圖。超級(jí)管理程序16在單獨(dú)的診斷地址下運(yùn)行虛擬機(jī)18,其中只讀存儲(chǔ)器14存儲(chǔ)超級(jí)管理程序16和虛擬機(jī)18的機(jī)器代碼20。虛擬機(jī)18在該診斷地址下借助于通信基礎(chǔ)架構(gòu)48從外部設(shè)備50接收到更新要求24,并將該更新要求24通知給超級(jí)管理程序16。超級(jí)管理程序16把機(jī)器代碼20從只讀存儲(chǔ)器14遷移到隨機(jī)存取存儲(chǔ)器12,起動(dòng)該虛擬機(jī),并實(shí)施(26)虛擬機(jī)18的引導(dǎo)管理器28。引導(dǎo)管理器28在該虛擬機(jī)18的診斷地址下接收到當(dāng)前的機(jī)器代碼22,并至少部分地用當(dāng)前的機(jī)器代碼22代替只讀存儲(chǔ)器14中的機(jī)器代碼20。引導(dǎo)管理器28最后重新起動(dòng)(30)虛擬機(jī)18。
圖2在更新控制設(shè)備(電子控制單元,ECU(electronic control unit))的范圍內(nèi)用圖說(shuō)明更詳細(xì)的情景,而不必使其客戶系統(tǒng)停止使用。
在常規(guī)的控制設(shè)備52在其硬件平臺(tái)42上只實(shí)施具有唯一的診斷地址A的軟件44期間,在虛擬化的控制設(shè)備40的情況下,在共同的物理機(jī)器38上在診斷地址B下,超級(jí)管理程序16(虛擬機(jī)監(jiān)控器,VMM(virtual machine monitor))在診斷地址B下運(yùn)行第一虛擬機(jī)18,并且在診斷地址C下運(yùn)行第二虛擬機(jī)32。因此,不僅該第一虛擬機(jī)18而且該第二虛擬機(jī)32都能夠運(yùn)行診斷通信。診斷地址B或者診斷地址C不僅體現(xiàn)在其下運(yùn)行的虛擬機(jī)18、32,而且體現(xiàn)超級(jí)管理程序16本身。
從外部設(shè)備50(例如診斷測(cè)試儀),診斷的更新要求24在診斷地址B下到達(dá)。該相關(guān)的第一虛擬機(jī)18將這通知給超級(jí)管理程序16。
被尋址的第一虛擬機(jī)18在超級(jí)管理程序16處要求傳輸和實(shí)施超級(jí)管理程序16和第一虛擬機(jī)18的來(lái)自隨機(jī)存取存儲(chǔ)器12(RAM(random-access memory))的機(jī)器代碼20。當(dāng)超級(jí)管理程序16的配置允許這一點(diǎn)時(shí),該超級(jí)管理程序16把有關(guān)的機(jī)器代碼20傳輸?shù)诫S機(jī)存取存儲(chǔ)器12中,并從那出發(fā)繼續(xù)進(jìn)行26該實(shí)施。在此,第一虛擬機(jī)18和第二虛擬機(jī)32在一般情況下可以只在其所分配的資源、如存儲(chǔ)位置、設(shè)備和處理器內(nèi)核的數(shù)目的范圍界限(Bereichsgrenze)36之內(nèi)被更新。因而,當(dāng)應(yīng)該適配該范圍界限36時(shí),首先要更新該超級(jí)管理程序16。
第一虛擬機(jī)18現(xiàn)在重新起動(dòng),并實(shí)施來(lái)自隨機(jī)存取存儲(chǔ)器12的引導(dǎo)管理器28(引導(dǎo)裝入程序(bootstrap loader),bootloader)。引導(dǎo)管理器28在第一虛擬機(jī)18的診斷地址B下是可達(dá)到的。
此后,引導(dǎo)管理器28接收到其他指令和當(dāng)前的機(jī)器代碼22,以便在向相關(guān)的第一虛擬機(jī)18的診斷地址B的診斷通信的過(guò)程中執(zhí)行更新。根據(jù)該更新要求24,引導(dǎo)管理器28選擇性地更新第一虛擬機(jī)18或者超級(jí)管理程序16。
最后,引導(dǎo)管理器28重新起動(dòng)第一虛擬機(jī)18(26)。現(xiàn)在,平常的引導(dǎo)順序繼續(xù),并重新起動(dòng)(30)第一虛擬機(jī)18。如果超級(jí)管理程序16曾被更新,則第一虛擬機(jī)18在超級(jí)管理程序16處要求完整的系統(tǒng)重新起動(dòng)。不管怎么樣,新的功能性只有在或者重新起動(dòng)超級(jí)管理程序16或者重新起動(dòng)系統(tǒng)之后才成為在起作用的。