功能安全需要應(yīng)對(duì)隨機(jī)故障和系統(tǒng)故障。軟件只有系統(tǒng)故障,因?yàn)檐浖]有隨機(jī)故障,因?yàn)槿绻霈F(xiàn)相同的情況,軟件故障通常每次都以相同的方式導(dǎo)致系統(tǒng)故障。達(dá)到更高安全水平的一種方法是實(shí)施雙通道系統(tǒng),每個(gè)通道中都有不同的軟件。具有相同軟件的冗余通道會(huì)將軟件作為單點(diǎn)故障。如果兩個(gè)通道具有不同的軟件,那么爭(zhēng)論是它們不太可能同時(shí)以相同的方式失敗,從而允許更高的SIL索賠。聽起來不錯(cuò),但有問題嗎?讓我們?cè)诓┛椭懈钊氲鼗虮M可能深入地了解。
首先,讓我們看一下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è)級(jí)別。因此,例如,如果兩個(gè)軟件的SIL聲明為SIL 1,那么組合最多為SIL 2。我想最多只允許增加一個(gè)的限制是存在的,因?yàn)閷⑦@兩個(gè)項(xiàng)目結(jié)合起來的人不知道各個(gè)開發(fā)的細(xì)節(jié),也許可能存在一些隱藏的常見原因故障,例如使用的工具。如果從頭開始開發(fā)這兩個(gè)軟件,你可能會(huì)做得更好。
IEC 61508-3 附錄 A 中的表格提供了一些指導(dǎo),表 A.2 提供了不同架構(gòu)的四種替代版本,表 A.10 要求對(duì)軟件進(jìn)行 CCF(常見原因故障)分析,此措施建議在 SIL 2 中,強(qiáng)烈建議用于更高的 SIL。
圖 2 - IEC 61508-3:2010 摘錄
但是開發(fā)各種軟件有多難。Philip Koopman在他的優(yōu)秀著作“更好的嵌入式系統(tǒng)軟件”第26.3.3節(jié)中對(duì)這個(gè)話題有一個(gè)很好的評(píng)論。在本節(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è)版本中可能會(huì)有太多相同的錯(cuò)誤。
我看了看是否有任何研究來支持這一觀點(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))中很少的錯(cuò)誤,這表明除非規(guī)范具有多樣性,否則您不會(huì)獲得很多好處。
圖4 - 系統(tǒng)因HSE而失敗的原因
為波音777開發(fā)電傳飛行軟件的團(tuán)隊(duì)似乎已經(jīng)采用了三種不同的軟件,開發(fā)了三種不同的規(guī)格,使用三個(gè)不同的開發(fā)團(tuán)隊(duì),他們不應(yīng)該相互交談,運(yùn)行在三臺(tái)不同的(不同的)計(jì)算機(jī)上控制飛機(jī)。然后,當(dāng)其中一個(gè)產(chǎn)出與其他產(chǎn)出不一致時(shí),使用選民來選擇行動(dòng)方案。
航天飛機(jī)使用了一種類似的架構(gòu),使用五臺(tái)計(jì)算機(jī),四臺(tái)相同,一臺(tái)不同。各種微型計(jì)算機(jī)上的軟件也多種多樣。
基于多樣性的功能安全軟件的一種設(shè)計(jì)模式是N版本編程,它使用根據(jù)同一組需求開發(fā)的不同代碼的多個(gè)版本,并對(duì)其輸出進(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í)鐘逐周期鎖步方法檢測(cè)差異的時(shí)間更長(zhǎng)。軟件鎖步可以在不同的處理器上運(yùn)行,甚至可以在單個(gè)處理器的冗余線程上運(yùn)行,并在選定的觀察點(diǎn)比較它們的輸出。
即使您實(shí)施了各種軟件,用于生產(chǎn)軟件的工具呢?這些也可能是常見原因故障的根源,但如果在CCF中考慮到這一點(diǎn)并選擇了不同的工具,或者選擇的工具以滿足整體安全功能的SIL要求,或者您使用適合組合元件SIL的工具,您可能很高興。
審核編輯:郭婷
-
微控制器
+關(guān)注
關(guān)注
48文章
7903瀏覽量
153674 -
處理器
+關(guān)注
關(guān)注
68文章
19799瀏覽量
233476 -
嵌入式
+關(guān)注
關(guān)注
5138文章
19524瀏覽量
314709
發(fā)布評(píng)論請(qǐng)先 登錄
在我們得到的時(shí)候是否需要付出
項(xiàng)目管理軟件在軟件實(shí)施服務(wù)行業(yè)的運(yùn)用
羋月傳中值得我們溫度傳感器廠家學(xué)習(xí)的一句話“您付出多少,就會(huì)回報(bào)多少”
CRM軟件成功實(shí)施的6個(gè)步驟?!
企業(yè)為什么需要實(shí)施MES系統(tǒng)軟件?
如何實(shí)施軟件AES以及AES加密/解密
ARMv8-A TrustZone軟件對(duì)實(shí)施SVE的系統(tǒng)的影響
基于開源軟件的軟件工程實(shí)施系統(tǒng)研究
蘋果語音助手操作原理?細(xì)數(shù)“Hey Siri”,背后付出的努力與小心思
構(gòu)建智慧城市和可持續(xù)社區(qū)需有哪些技術(shù)付出
軟件定義存儲(chǔ)的實(shí)施是對(duì)的嗎
美國對(duì)EDA軟件實(shí)施新的出口管制
沒有實(shí)施APS軟件的工廠,常常面臨的問題

評(píng)論