高國梁
(北京全路通信信號研究設(shè)計院有限公司,北京 100073)

高國梁,男,碩士畢業(yè)于北京交通大學(xué),高級工程師,安全保障中心副主任。主要研究方向包括安全管理和安全技術(shù)、城軌列車自動控制技術(shù),曾負責(zé)并參與企業(yè)安全保障體系建設(shè),參與城市軌道交通CBTC系統(tǒng)開發(fā),負責(zé)ATP、聯(lián)鎖等產(chǎn)品開發(fā)的安全確認(rèn)、武廣客運專線列控系統(tǒng)的安全管理等。
根據(jù)歐洲鐵路安全標(biāo)準(zhǔn)EN50129:2003的規(guī)定,安全產(chǎn)品的評估和認(rèn)證分為3個層次:通用產(chǎn)品、通用應(yīng)用和特定應(yīng)用。一般地,承載信號安全運算業(yè)務(wù)的安全計算機平臺,作為通用產(chǎn)品被開發(fā)和評估,其將作為通用應(yīng)用開發(fā)和評估的基礎(chǔ)。安全平臺的變更,往往會引起對通用應(yīng)用的較大影響,所以,安全平臺的發(fā)展策略往往會更謹(jǐn)慎。另外,安全平臺是實現(xiàn)安全設(shè)計的基石,其設(shè)計是安全設(shè)計最核心和最復(fù)雜的所在,所以安全平臺的開發(fā)往往會以既有的安全平臺為基礎(chǔ),以確保其穩(wěn)步前進。
另一方面,隨著軌道交通信號控制自動化的快速發(fā)展,信號系統(tǒng)的安全運算越來越復(fù)雜,對安全平臺的運算能力提出了越來越高的要求,一些既有成熟的安全平臺逐漸不能滿足安全運算業(yè)務(wù)的資源需求,而短時間內(nèi)也難以開發(fā)出可以成熟應(yīng)用的新安全平臺。此情況下,如何在既有的安全平臺基礎(chǔ)上,利用先進的技術(shù)手段,快速發(fā)展出高性能、可擴展的安全平臺,是一個比較可行的解決之道。本文正是基于這種思想,并結(jié)合工作中的實踐,提出了一種基于“并行計算”的組合安全設(shè)計方法,實現(xiàn)在既有的安全平臺基礎(chǔ)上,實現(xiàn)高性能的可擴展安全平臺,在使既有的安全平臺煥發(fā)青春的同時,也實現(xiàn)了安全平臺的可持續(xù)發(fā)展。
在發(fā)生單個隨機故障時,應(yīng)確保系統(tǒng)/子系統(tǒng)/設(shè)備滿足規(guī)定的容許危險率。當(dāng)可識別的任何一種單一隨機硬件故障發(fā)生時,應(yīng)保證SIL3和SIL4的系統(tǒng)保持安全。被證明其影響可被忽略的故障可以不予考慮。這種故障-安全的機制有幾種實現(xiàn)方式。
采用這種技術(shù),每個安全相關(guān)功能應(yīng)至少由兩個對象來執(zhí)行。各對象之間應(yīng)相互獨立,以避免共因失效。只有當(dāng)必要數(shù)量的對象取得一致時,才允許進行非限制行為。應(yīng)能檢測出一個對象中的危險故障并在足夠的時間內(nèi)加以拒絕,以避免第二個對象發(fā)生相同故障。
這種技術(shù)允許一個安全相關(guān)功能由單個對象執(zhí)行,前提是通過快速的危險故障檢測和拒絕來確保它的安全操作(例如通過編碼,多路計算和比較,或通過連續(xù)的測試)。盡管只由一個對象實施實際的安全相關(guān)功能,但檢查/測試/檢測功能應(yīng)被看作為第二對象。檢查/測試/檢測功能應(yīng)是獨立的,以避免共因失效。
這種技術(shù)允許一個安全相關(guān)功能由單個對象執(zhí)行,前提是假定對象的所有可信失效模式均為非危險的。固有式故障-安全也可用在組合式和反應(yīng)式故障-安全系統(tǒng)的某些功能中,例如,用來確保各對象之間的獨立性或在檢測到一個危險故障時強制關(guān)閉的功能。
無論使用哪種技術(shù)或其組合,都應(yīng)使用適當(dāng)?shù)慕Y(jié)構(gòu)分析方法來證明以確保單個硬件元件的隨機失效模式是非危險的。
常見的2002安全平臺,往往使用兩個完全相同的計算單元,如相同CPU和計算架構(gòu)等,如圖1所示。其中,有部分特性是可選性,取二的兩個CPU可能是共同的,也可能是不同的來源。

與安全設(shè)計有關(guān)的一些設(shè)計問題需要考慮。
1)異構(gòu)應(yīng)盡可能實現(xiàn),以確保減緩系統(tǒng)性失效和共因失效。
2)兩個CPU的軟件代碼應(yīng)使用不同的算法或由不同的軟件開發(fā)人員來實現(xiàn)。
3)建議通過輸入和輸出的邏輯狀態(tài)中采用部分的硬件異構(gòu),比如兩個通道采用不同的設(shè)備引腳輸出。
4)另外一種異構(gòu)的方法是兩個通道采用不同的信息結(jié)構(gòu),例如,一個通道采用串行編碼信息,另一個通道采用并行編碼信息。
如果實現(xiàn)了兩路CPU之間的通信(C12和/或C21),則應(yīng)防止引入共因失效。
當(dāng)采取了2002結(jié)構(gòu)后仍存在有些失效模式的判斷不充分時,需要采取定期的診斷測試技術(shù),一般是增加故障檢測電路。該檢測電路應(yīng)在最靠近輸出部分或在位于接收端。例如圖1中所示,檢測電路直接從輸出口回檢數(shù)據(jù),安全切斷動作可能發(fā)生在上流設(shè)備、下游設(shè)備或本設(shè)備處。在一些情況下,外部接收端可把自己切斷到受控的安全狀態(tài)。
故障-安全的輸出機制或設(shè)備,或者通過“固有失效-安全”設(shè)計實現(xiàn),或者通過對數(shù)據(jù)疊加安全編碼實現(xiàn)(相應(yīng)的安全編碼策略應(yīng)提供必要的安全保護措施)。
隨著客專與高鐵以及城市軌道交通的快速發(fā)展,信號系統(tǒng)越來越復(fù)雜,同時為了確保信號系統(tǒng)的安全,各大信號廠商紛紛以歐洲鐵路安全標(biāo)準(zhǔn)對信號設(shè)備進行升級,并引入了大量的安全算法和安全通信算法,信號設(shè)備的安全運算越來越復(fù)雜,對安全平臺的運算能力提出了越來越高的要求,一些既有成熟的安全平臺逐漸不能滿足安全運算業(yè)務(wù)的資源需求,除了對安全算法進行精簡以降低其對資源的要求方法外,對既有的安全平臺進行升級,提升其性能,以承載越來越復(fù)雜的安全運算,逐漸成為一種新的需求。
4.2.1 協(xié)處理器
當(dāng)計算機的主處理器容量不足或不具備某一方面計算能力時,通過協(xié)處理器的使用,以減輕系統(tǒng)微處理器的特定處理任務(wù)。例如,數(shù)學(xué)協(xié)處理器可以控制數(shù)字處理;圖形協(xié)處理器可以處理視頻繪制。例如,intelpentium微處理器就包括內(nèi)置的數(shù)學(xué)協(xié)處理器。包括內(nèi)置的數(shù)學(xué)協(xié)處理器。
基于該思想,可以對2002結(jié)構(gòu)中的每個CPU增加外置的協(xié)處理器計算單元,用于減輕CPU的任務(wù)負載。但是,在既有的2002結(jié)構(gòu)已經(jīng)設(shè)計完畢的條件下,對2002結(jié)構(gòu)進行擴充勢必對既有的設(shè)計造成較大改變,引發(fā)安全平臺的較大改變,從而對既有的平臺和應(yīng)用形成沖擊。
4.2.2 遠程過程調(diào)用
在IT領(lǐng)域,早在20世紀(jì)80年代分布式計算開始發(fā)展時,遠程過程調(diào)用(Remote Procedure Call,RPC)就已經(jīng)出現(xiàn)。它作為一個計算機通信協(xié)議,允許運行于一臺計算機的程序調(diào)用另一臺計算機的子程序,而程序員無需額外為這個交互作用編程。如果涉及的軟件采用面向?qū)ο缶幊蹋敲催h程過程調(diào)用亦可稱作遠程調(diào)用或遠程方法調(diào)用,例 :Java RMI。
RPC采用客戶機/服務(wù)器模式。請求程序就是一個客戶機,而服務(wù)提供程序就是一個服務(wù)器。首先,客戶機調(diào)用進程發(fā)送一個有進程參數(shù)的調(diào)用信息到服務(wù)進程,然后等待應(yīng)答信息。在服務(wù)器端,進程保持睡眠狀態(tài)直到調(diào)用信息到達為止。當(dāng)一個調(diào)用信息到達,服務(wù)器獲得進程參數(shù),計算結(jié)果,發(fā)送答復(fù)信息,然后等待下一個調(diào)用信息,最后,客戶端調(diào)用進程接收答復(fù)信息,獲得進程結(jié)果,然后調(diào)用執(zhí)行繼續(xù)進行。如圖2所示。

RPC的理念是使遠程過程調(diào)用看起來盡可能與本地調(diào)用相同,換句話說,RPC的使用是透明的,調(diào)用過程并不知道被調(diào)用過程運行在另外一個計算機上,反之,被調(diào)用過程也不知道調(diào)用過程運行在另外一個計算機上。
遠程過程調(diào)用已經(jīng)發(fā)展成熟,但是如果基于RPC來實現(xiàn)安全平臺性能的提高,存在以下幾個問題。
1)操作系統(tǒng)內(nèi)核
RPC平臺需要基于比較成熟的操作系統(tǒng)內(nèi)核的支持,常見的RPC實現(xiàn),要么構(gòu)筑于分布式操作系統(tǒng)之上,要么構(gòu)筑于類似于Java這樣的虛擬機平臺之上。而信號安全平臺往往是基于嵌入式的操作系統(tǒng)甚至是沒有操作系統(tǒng),RPC缺乏實現(xiàn)的基礎(chǔ)。
2)RPC協(xié)議
為了允許不同的客戶端均能訪問服務(wù)器,許多標(biāo)準(zhǔn)化的RPC系統(tǒng)應(yīng)運而生。其中大部分采用接口描述語言(Interface Description Language,IDL),方便跨平臺的遠程過程調(diào)用。但是,由于存在各式各樣的變體和細節(jié)差異,對應(yīng)地派生了各式遠程過程調(diào)用協(xié)議,而且它們并不互相兼容。
3)RPC機制
RPC采用客戶機/服務(wù)器模式,最早的RPC為同步RPC機制,當(dāng)客戶機調(diào)用RPC時,處于阻塞狀態(tài),需要同步等待服務(wù)器計算返回。異步遠程過程調(diào)用是同步RPC機制的擴展,異步RPC允許發(fā)出調(diào)用的線程繼續(xù)執(zhí)行,并且稍后再獲取結(jié)果。異步RPC機制避免了調(diào)用方的阻塞等待,實現(xiàn)了客戶機和服務(wù)器系統(tǒng)的并行處理。但是,異步RPC往往需要多線程和回調(diào)機制的支持,而既有的安全平臺往往是單進程的運算機制,這對RPC協(xié)議在安全平臺的應(yīng)用形成很大限制。
因此,既有的遠程過程調(diào)用協(xié)議,雖然從理論上可以支持安全平臺性能擴充的需要,但由于其難以在既有的安全平臺上直接移植或?qū)崿F(xiàn)。在實際操作層面困難重重。
4.2.3 專用的并行處理機制
增加新的計算硬件,直接采用RPC機制難以實現(xiàn)既有安全平臺的性能擴充,但是,可以借鑒異步RPC的思想,在既有安全平臺和增加新的獨立計算硬件,構(gòu)筑專用的RPC,實現(xiàn)并行計算,因為,RPC的底層機理主要內(nèi)容如下。
1)從調(diào)用接口層面,實現(xiàn)對應(yīng)用的透明。
2)在底層實現(xiàn)上,仍然是采用網(wǎng)絡(luò)通信方式。
借鑒異步RPC思想,根據(jù)既有安全平臺性能擴充的需要,提出專用的并行處理結(jié)構(gòu)如圖3所示。

在圖3中,
1)左側(cè)為既有的2002安全平臺示意,右側(cè)為計算資源擴充部分。
2)右側(cè)計算資源擴充部分為兩個異構(gòu)的計算機,可以是通用的PC機或服務(wù)器,二者硬件平臺、實時操作系統(tǒng)等均為異構(gòu)方式。
3)運行在異構(gòu)的擴充計算資源上的安全運算服務(wù)軟件,應(yīng)符合EN50128的開發(fā)過程、開發(fā)技術(shù)等要求。
4)左右兩側(cè)之間通過通信方式交換數(shù)據(jù),通信方式應(yīng)為高速通信方式,如高速以太網(wǎng)等。
5)左側(cè)某一個時刻,僅有一個CPU對外輸出(常見的2002設(shè)計)。
6)左側(cè)的每個CPU可以同時收到右側(cè)兩個計算結(jié)果。
基于圖3結(jié)構(gòu)的安全設(shè)計原則如下。
1)右側(cè)的通用計算資源為異構(gòu)方式,防止隨機性和系統(tǒng)性失效。
2)運行在通用計算資源上的安全軟件為符合EN50128標(biāo)準(zhǔn)的軟件,防止系統(tǒng)性失效。
3)左側(cè)通過網(wǎng)絡(luò)將需要加工計算的數(shù)據(jù)發(fā)送給右側(cè),通信機制應(yīng)根據(jù)通道失效模式分析,符合EN50129標(biāo)準(zhǔn)的要求,防止通信的隨機性失效。
4)右側(cè)將計算結(jié)果通過網(wǎng)絡(luò)返回給左側(cè),通信機制應(yīng)同3)。
5)左側(cè)的每個CPU在收到右側(cè)的兩份計算結(jié)果后,進行取二比較,相同則使用,不同則拋棄。
6)左側(cè)兩個CPU在對外輸出時,進行取二比較,不同則導(dǎo)向安全側(cè)(2002的基本設(shè)計)。
對上述并行計算架構(gòu)和安全設(shè)計原則分析,對安全平臺進行性能擴充后,平臺實現(xiàn)了以下目標(biāo)和好處。
1)將復(fù)雜、獨立的安全運算邏輯運行在通用計算資源之上,實現(xiàn)了并行計算,使既有安全平臺不再是安全邏輯計算的瓶頸。
2)既有的安全平臺一般均具有網(wǎng)絡(luò)通信的功能,對安全平臺的擴充非常簡單,對既有的安全平臺影響很小,實現(xiàn)了安全平臺的快速平滑升級。
3)最重要的是,在平臺擴充后,既有的安全平臺充當(dāng)了“安全與”的角色,即“表決器”的角色,滿足“組合故障-安全”的設(shè)計,仍然符合故障-安全原則。
4)延伸該擴充思想,可以將絕大多數(shù)的安全運算邏輯部署在通用計算資源之上,實現(xiàn)小的安全比較單元,大的計算單元的架構(gòu),降低了安全平臺的復(fù)雜度。
DS6-K5B平臺是引進的日本京三公司的安全平臺,北京全路通信信號研究設(shè)計院有限公司的DS6-K5B聯(lián)鎖系統(tǒng)是在我國客專與高鐵廣泛采用的設(shè)備。該平臺在與RBC平臺通信時,由于平臺的主機CPU板(F486)的性能限制,一度采用通信前置機的方式來處理安全通信的運算,即增加了成本,也給系統(tǒng)帶來了復(fù)雜性。后來,DS6-K5B平臺開發(fā)了高性能的運算板(ZARM2),聯(lián)鎖系統(tǒng)使用運算板來代替通信前置機,專職處理與RBC的通信數(shù)據(jù)處理,即提高了性能,又降低了系統(tǒng)復(fù)雜性,同時未降低系統(tǒng)的安全性。F486與運算板交互數(shù)據(jù)的功能結(jié)構(gòu)如圖4 所示。

新擴充的演算板ZARM2中包含兩個異構(gòu)的CPU,一個用ARM11,一個用SH-7780,兩個CPU完全獨立。F486與ZARM2之間通過共享內(nèi)存接口。ZARM2上的兩個CPU同時收到來自F486的數(shù)據(jù),F(xiàn)486上的兩個CPU同時收到來自ZARM2上兩個獨立CPU的運算結(jié)果。F486與ZARM2之間的結(jié)構(gòu)完全符合4.2.3中專用并行安全處理架構(gòu)。

對于4.2.3中描述的專用并行處理機制,由于其“專用”的特點,存在以下不足。
1)并行計算的調(diào)用沒有實現(xiàn)真正類似RPC的機制,應(yīng)用層仍需進行通信相關(guān)的處理。
2)通用計算資源上運行的安全計算,尚無法作為類似“服務(wù)”提供的機制工作。
3)通用計算資源的配置是預(yù)先固定的,無法靈活配置和擴充。
基于專用并行處理機制,對既有的安全平臺進行擴充,能夠滿足急需的安全平臺的資源緊迫要求,但從長遠的發(fā)展來看,應(yīng)該對這個專用并用處理機制進行應(yīng)用使用的簡單化、機制的標(biāo)準(zhǔn)化和資源擴充的靈活,從而使安全平臺滿足未來的計算需要。當(dāng)今的“云計算”正是通過虛擬化技術(shù),實現(xiàn)了軟硬件資源的靈活配置,向客戶提供網(wǎng)絡(luò)計算服務(wù),其思想可以用于解決“明天”的安全平臺要求。
云計算是當(dāng)今信息技術(shù)行業(yè)的最熱門的話題之一,但是云計算并非一個全新的概念,其很多理念涉及網(wǎng)格計算、集群技術(shù)、分布式系統(tǒng)技術(shù)等比較成熟的技術(shù)。如圖5所示,云平臺屏蔽了底層的軟硬件實現(xiàn)細節(jié),并且提供連接服務(wù)的標(biāo)準(zhǔn)接口,使所有連接Internet的用戶都可以方便地接入云平臺使用計算資源。
基于云計算的思想,既有安全平臺的擴充需要架構(gòu)于云之上。既有的安全平臺需要通過云調(diào)用,使用云計算提供的服務(wù)實現(xiàn)安全算法的并行計算,同時為了保持“組合故障-安全”的設(shè)計原則,安全平臺需要調(diào)用云計算環(huán)境中異構(gòu)的兩個并行計算,并對返回的兩個結(jié)果進行取二計算。這種對安全平臺的“云擴充”思想,需要解決以下幾個大的問題。
1)對既有的安全平臺進行改造,增加云調(diào)用的支持。
2)為了降低隨機性失效,云計算平臺部分的基礎(chǔ)軟硬件資源應(yīng)保持異構(gòu)的方式,并需要保證為相同云調(diào)用提供異構(gòu)的計算服務(wù)。
3)新的安全運算,需要構(gòu)建與云計算平臺之上,成為云計算平臺的網(wǎng)絡(luò)服務(wù)。
由此可見,“云擴充”方式,將對既有的安全平臺的軟件層帶來較大改變,同時擴充部分的云計算平臺的異構(gòu)服務(wù)是一個新的課題。因此,基于“云計算”的安全平臺,需要進行更深一步的研究。
基于理論的分析以及對實踐工作的總結(jié),說明對既有安全平臺的性能擴充,可以采用平滑、快速的,但仍是高性能的符合安全設(shè)計方法的措施,這就是本文提到的“并行處理機制”的擴充方法,該方法可以實現(xiàn)安全平臺的可持續(xù)發(fā)展,使其繼續(xù)煥發(fā)青春。另外,出于對安全平臺未來發(fā)展的要求展望,本文提出了基于“云計算”的安全平臺擴充的可能性,為“明天”的安全平臺提出了一個可能的新架構(gòu)。
[1] EN50129:2003Railway applications —Communication, signallingand processing systems —Safety relatedelectronic systems forsignalling [S].
[2] PD CLC/TR 50506-2:2009Railway applications —Communication, signalling andprocessing systems — Applicationguide for EN 50129 Part 2: Safety assurance[S].
[3] Andrew S. Tanenbaum.分布式計算機系統(tǒng)[M]. 北京:清華大學(xué)出版社,2000.
[4] ZARM2開發(fā)-RSSP-II協(xié)議軟件移植設(shè)計文件.
[5] 王佳雋,呂智慧,吳杰,等.云計算技術(shù)發(fā)展分析及其應(yīng)用探討[J],計算機工程與設(shè)計,2010,31(20):4404-4409.