功能安全需要應(yīng)對隨機(jī)故障和系統(tǒng)故障。軟件只有系統(tǒng)故障,因?yàn)檐浖]有隨機(jī)故障,因?yàn)槿绻霈F(xiàn)相同的情況,軟件故障通常每次都以相同的方式導(dǎo)致系統(tǒng)故障。達(dá)到更高安全水平的一種方法是實(shí)施雙通道系統(tǒng),每個(gè)通道中都有不同的軟件。具有相同軟件的冗余通道會將軟件作為單點(diǎn)故障。如果兩個(gè)通道具有不同的軟件,那么爭論是它們不太可能同時(shí)以相同的方式失敗,從而允許更高的SIL索賠。聽起來不錯,但有問題嗎?讓我們在博客中更深入地或盡可能深入地了解。
首先,讓我們看一下IEC 61508中提供了哪些指導(dǎo),然后看看文獻(xiàn)中提供了哪些指導(dǎo)以及一些基于多樣性的設(shè)計(jì)模式。
在IEC 61508-3:2010中,以下子條款涵蓋了這一點(diǎn)
圖 1 - IEC 61508-3 的相關(guān)摘錄
看看IEC 61508-2:2010子條款7.4.3說SC(系統(tǒng)能力)最多只能提高一個(gè)級別。因此,例如,如果兩個(gè)軟件的SIL聲明為SIL 1,那么組合最多為SIL 2。我想最多只允許增加一個(gè)的限制是存在的,因?yàn)閷⑦@兩個(gè)項(xiàng)目結(jié)合起來的人不知道各個(gè)開發(fā)的細(xì)節(jié),也許可能存在一些隱藏的常見原因故障,例如使用的工具。如果從頭開始開發(fā)這兩個(gè)軟件,你可能會做得更好。
IEC 61508-3 附錄 A 中的表格提供了一些指導(dǎo),表 A.2 提供了不同架構(gòu)的四種替代版本,表 A.10 要求對軟件進(jìn)行 CCF(常見原因故障)分析,此措施建議在 SIL 2 中,強(qiáng)烈建議用于更高的 SIL。
圖 2 - IEC 61508-3:2010 摘錄
但是開發(fā)各種軟件有多難。Philip Koopman在他的優(yōu)秀著作“更好的嵌入式系統(tǒng)軟件”第26.3.3節(jié)中對這個(gè)話題有一個(gè)很好的評論。在本節(jié)中,他指出,實(shí)現(xiàn)真正多樣化的軟件確實(shí)很困難,但很容易獲得一定程度的多樣性。他指出,量化所實(shí)現(xiàn)的多樣性也很難,這并不奇怪,因?yàn)橛布﨏CF分析在標(biāo)準(zhǔn)中有更多的指導(dǎo),仍然更多的是工程判斷而不是科學(xué)。Philip Koopman進(jìn)一步警告說,“許多人(包括我們)認(rèn)為,如果你的時(shí)間和資源有限,你最好制作一個(gè)真正好的軟件版本,而不是試圖制作兩個(gè)獨(dú)立的版本,而這兩個(gè)版本本身就沒有那么好。兩個(gè)版本中可能會有太多相同的錯誤。
我看了看是否有任何研究來支持這一觀點(diǎn)。我看到的關(guān)于這個(gè)主題最有趣的筆記是下面顯示的,他們給 27 名學(xué)生提供了一個(gè)規(guī)范,并要求他們編寫軟件來實(shí)現(xiàn)它,然后檢查有多少不同的軟件以同樣的方式失敗。它確實(shí)支持了編寫各種軟件確實(shí)很難的觀點(diǎn)。
圖3 - 關(guān)于不同軟件價(jià)值的有趣實(shí)驗(yàn)論文
然后是HSE數(shù)據(jù),它們顯示了編碼階段(設(shè)計(jì)和實(shí)現(xiàn))中很少的錯誤,這表明除非規(guī)范具有多樣性,否則您不會獲得很多好處。
圖4 - 系統(tǒng)因HSE而失敗的原因
為波音777開發(fā)電傳飛行軟件的團(tuán)隊(duì)似乎已經(jīng)采用了三種不同的軟件,開發(fā)了三種不同的規(guī)格,使用三個(gè)不同的開發(fā)團(tuán)隊(duì),他們不應(yīng)該相互交談,運(yùn)行在三臺不同的(不同的)計(jì)算機(jī)上控制飛機(jī)。然后,當(dāng)其中一個(gè)產(chǎn)出與其他產(chǎn)出不一致時(shí),使用選民來選擇行動方案。
航天飛機(jī)使用了一種類似的架構(gòu),使用五臺計(jì)算機(jī),四臺相同,一臺不同。各種微型計(jì)算機(jī)上的軟件也多種多樣。
基于多樣性的功能安全軟件的一種設(shè)計(jì)模式是N版本編程,它使用根據(jù)同一組需求開發(fā)的不同代碼的多個(gè)版本,并對其輸出進(jìn)行投票。
圖 5 - N 版本編程模式的繪制(安全關(guān)鍵型嵌入式系統(tǒng)的設(shè)計(jì)模式))
如果我們將上述內(nèi)容視為可靠性框圖,那么投票者是CCF來源的明顯弱點(diǎn),除非投票者是超可靠的,否則從高值N中獲得的好處將是有限的。
讓我們將多樣化的軟件方法與一些替代方案進(jìn)行比較。雙核鎖步微控制器不實(shí)現(xiàn)軟件分集,而是一種硬件安全機(jī)制,因?yàn)閮蓚€(gè)內(nèi)核將運(yùn)行相同的軟件。相比之下,軟件鎖步/軟件 RMT 與逐周期鎖步不同,可以實(shí)現(xiàn)軟件多樣性,但比時(shí)鐘逐周期鎖步方法檢測差異的時(shí)間更長。軟件鎖步可以在不同的處理器上運(yùn)行,甚至可以在單個(gè)處理器的冗余線程上運(yùn)行,并在選定的觀察點(diǎn)比較它們的輸出。
即使您實(shí)施了各種軟件,用于生產(chǎn)軟件的工具呢?這些也可能是常見原因故障的根源,但如果在CCF中考慮到這一點(diǎn)并選擇了不同的工具,或者選擇的工具以滿足整體安全功能的SIL要求,或者您使用適合組合元件SIL的工具,您可能很高興。
審核編輯:郭婷
-
微控制器
+關(guān)注
關(guān)注
48文章
7570瀏覽量
151623 -
處理器
+關(guān)注
關(guān)注
68文章
19348瀏覽量
230246 -
嵌入式
+關(guān)注
關(guān)注
5087文章
19145瀏覽量
306119
發(fā)布評論請先 登錄
相關(guān)推薦
評論