用于使具有不同的安全等級的軟件在多核處理器系統(tǒng)中共存的方法
【技術領域】
[0001]本發(fā)明涉及一種用于使具有不同的安全等級的軟件在多核處理器中共存的方法,所述多核處理器具有至少兩個計算核(Rechenkern),其中為每個計算核分配了存儲區(qū)域,并且在所述計算核中的一個上對具有預先給定的安全等級的軟件進行處理。
【背景技術】
[0002]在汽車工業(yè)中,使用嵌入在用于對不同的流程進行控制的控制儀中的系統(tǒng),在所述系統(tǒng)中使用多核微控制器。這些多核微控制器包括兩個或者更多個計算核。對于與安全相關的應用來說,通常通過合適的硬件措施來保護這些計算核,比如其方法是:具有Lockstep (鎖步)的計算核在所親合的計算核中得到保護或者使用錯誤冗余的(f eh I err edundant) CPU ο在計算核的Lockstep配對(Lockstep-Paar)中,兩個計算核同步地工作,其中在所述兩個計算核上相同的軟件在運行,并且比較器對每次運算的結果進行比較。在發(fā)現不同時發(fā)出錯誤的信息。但是,作為主動的總線用戶,所述Lockstep配對僅僅作為用戶而出現。由此這樣的配對也被稱為得到保護的計算核。
[0003]除此以外,在汽車領域內,對于與安全相關的電子系統(tǒng)來說,ISO 26262是相關的。該標準引入ASIL (Automotive Safety Integrity Level (汽車安全完整性等級))的概念,并且允許將不同的系統(tǒng)、功能和子功能根據其安全相關性分類為所述不同的安全等級(ASIL)。這些ASIL包括QM、A、B、C、D (升序分類)。如果在計算系統(tǒng)、比如微型計算器中同時使用不同的ASIL,那就在所述不同的安全等級之間要求某種獨立性、所謂的無干擾性(Freedom-from-1nterference)。
[0004]重要的是,對于與安全相關的應用來說以簡單的形式將具有不同的安全等級的部件彼此分開。
【發(fā)明內容】
[0005]由此本發(fā)明所基于的任務是說明一種用于使具有不同的安全等級的軟件在多核處理器中共存的方法,其中對于與安全相關的應用來說以簡單的形式將設置有不同的安全等級的系統(tǒng)部件彼此分開。
[0006]按照本發(fā)明,所述任務通過以下方式得到解決:為處理軟件部分的計算核分配了受到保護的存儲區(qū)域,處理所述軟件部分的計算核對該存儲區(qū)域進行訪問,其中禁止所述多核處理器的其它計算核中的至少一個計算核對所述所分配的、受到保護的存儲區(qū)域進行訪問。這具有以下優(yōu)點:僅僅被分配給相同的安全等級的系統(tǒng)部件彼此進行通信。由此可以容易地將所述多核微處理器的、具有不同的安全等級的系統(tǒng)部件分開。這樣的解決方案不僅允許盡可能好地將這些計算核和存儲單元彼此分開,而且也能夠實現對于各個系統(tǒng)部件的分開開發(fā)。鑒于這一點,在這樣的多核微處理器系統(tǒng)中存在著無干擾性的形式的獨立性。通過這種分開可以以足夠的可靠性排除所述多核微處理器的一個系統(tǒng)部件對于所述多核微處理器的另外的系統(tǒng)部件的錯誤的影響。
[0007]有利地,在計算核與所述存儲區(qū)域之間構成的存儲保護裝置僅僅允許這樣的計算核訪問受到保護的存儲區(qū)域,該計算核具有相同的安全等級并且被分配給這個存儲區(qū)域。原則上的構思在于:在每個計算核上僅僅給定的安全等級的軟件在運行,并且保證沒有計算核訪問另外的計算核的受到保護的存儲區(qū)域。由此在每個計算核上存在著具有ASIL的軟件。由此利用五個計算核可以實現具有ASIL QM、A、B、C、D的安全等級的系統(tǒng)。這能夠以一般的形式實現無干擾性論證,并且由此能夠在多核微處理器中實現不同的ASIL的共存。
[0008]在一種設計方案中,構造為二級的存儲保護裝置允許計算核通過在所述存儲保護裝置中所構成的等級層來訪問相應的受到保護的存儲區(qū)域。所述存儲保護裝置允許通過合適的編程來保證,僅僅特定的總線主控裝置(Busmaster)對所選擇的、受到保護的存儲區(qū)域進行訪問,這就是說,給定的主控裝置對多核處理器的特定的存儲區(qū)域決不進行訪問,這不取決于何種軟件在其上面運行。
[0009]在一種變型方案中,所述軟件在所述多核處理器的起動過程中檢查,是否僅僅分配給所述受到保護的存儲區(qū)域的計算核對所述受到保護的存儲區(qū)域進行訪問。由此保證,所選擇的、包括預先給定的安全等級的區(qū)域彼此分開并且不受所述多核微處理器的其它組成部分的影響。
[0010]在一種實施方式中,為了檢查對所述受到保護的存儲區(qū)域的訪問,從所述存儲保護裝置中讀出配置,或者通過所述軟件重新對所述存儲保護裝置進行編程。因為僅僅在所述多核處理器的起動過程期間進行所述重新編程,所以保證在多核處理器系統(tǒng)運行期間在具有另外的安全等級的軟件訪問所述存儲保護裝置時不對所述配置進行改變。
[0011]在另一種變型方案中,所述存儲保護裝置的重新編程靜態(tài)地進行。也就是說,在編程過程之后不再能改變所述編程,這一點尤其通過所述存儲保護裝置的所使用的形式得到保證。但是,由于這種處理方式,在通過具有預先給定的安全等級的軟件來起動所述多核微處理器的時間點可以保證,在不取決于具有另外的安全等級的軟件是否在其它的、在所述多核處理器系統(tǒng)中所包含的計算核上運行的情況下,這個具有另外的安全等級的軟件不能訪問所述計算核的對具有預先給定的安全等級的軟件進行訪問的區(qū)域。這一點在所述多核處理器單元的連續(xù)的運行中再加載(nachladen)其它的軟件時也適用。
[0012]在一種實施方式中,所述存儲保護裝置的配置允許具有第一安全等級的第一計算核和具有第二安全等級的第二計算核對受到保護的第三存儲區(qū)域進行訪問。這樣的訪問在所述多核微處理器的各個的系統(tǒng)部件、比如所述第一及第二計算核在執(zhí)行(Abarbeitung)在其上面運行的、具有不同的安全等級的軟件時必須相互通信時總是具有特殊的意義。由此設立了兩個系統(tǒng)部件可以對其進行訪問的附加的、受到保護的存儲區(qū)域。由此保證,僅僅這種軟件并且沒有其它另外的軟件組件還能訪問所述受到保護的第三存儲區(qū)域。
[0013]有利地,所述第一計算核對受到保護的第一存儲區(qū)域進行訪問,而同時所述第二計算核對受到保護的第二存儲區(qū)域進行訪問。由此所述具有不同的安全等級的軟件可以平行并置地在不同的計算核上被執(zhí)行,由此由于能夠平行化的存儲訪問而使執(zhí)行過程加速。在進行這樣的能夠平行化的存儲訪問時,在所述第一計算單元與所述受到保護的第一存儲區(qū)域之間并且在所述第二計算單元與所述受到保護的第二存儲區(qū)域之間不存在對訪問的影響。為了保證這樣的能夠平行化的存儲訪問,比如可以使用與所述計算核直接連接的局部存儲器,所述局部存儲器允許快速的訪問。此外,能夠通過交叉開關(Crossbar)來實現真正的平行的訪問。另一種可行方案在于雙端口存儲器(Dual Ported Memory)的使用。通過高速緩沖存儲器(Cache)或者預取緩沖存儲器(Prefetch Buffer)的使用,同樣可以經常接近平行性,尤其如果在時間上如此控制預取緩沖存儲器,使得互聯(lián)利用(Interconnect-Nutzung)無沖突地進行,那就可以改進實際的平行化。
[0014]在另一種實施方式中,時間管理系統(tǒng)禁止所述第一計算核及所述第二計算核同時訪問所述受到保護的第三存儲區(qū)域。由此可靠地防止所述第一計算核及所述第二計算核同時對所述受到保護的第三區(qū)域進行訪問。通過防止兩個訪問的重疊,由此消除了在所述第一計算核或者所述第二計算核上運行的軟件的相互的影響。由此在這種情況中也保證了無干擾性條件。這也在不能完全平行化的連接系統(tǒng)中、比如在總線或者另外的互聯(lián)系統(tǒng)中適用。
[0015]在這樣的時間控制的最簡單的形式中,所述時間管理系統(tǒng)包括時間表,該時間表規(guī)定在何種時間點所述第一計算核或者所述第二計算核訪問所述受到保護的第三存儲區(qū)域。由此在給定的時間點,至多一個計算單元應擁有對所述受到保護的第三存儲區(qū)域進行訪問的許可(Er I aubn is)。這樣的時間上的資源劃分方案比如能夠較好地用于在機動車的控制儀中所使用的總線系