趙 洋,汪 亨,吳延群,余 波
(中國核動力研究設(shè)計院 核反應(yīng)堆系統(tǒng)設(shè)計技術(shù)重點實驗室,成都 610213)
人機界面是人與設(shè)備之間進行交互的重要媒介。人通過人機界面對計算機所控制的實際設(shè)備進行控制,同時人機界面會將計算機采集的設(shè)備信息反饋給用戶,以便用戶分析并作為決策的重要依據(jù)之一。根據(jù)不同的調(diào)查統(tǒng)計,在核電站中發(fā)生的重要事故和故障中,約60%的事故是由操作員的失誤造成的[1]。因此,人機界面的功能重要性在核電系統(tǒng)中不斷加強。
SVDU 作為安全級DCS 配套的數(shù)字化人機界面,其核心功能主要由基于CPU 的軟件技術(shù)實現(xiàn)。為保證SVDU設(shè)備的高可靠性,其相關(guān)軟件開發(fā)往往遵循“單任務(wù)運行”“限制中斷使用”“固定周期運行”“靜態(tài)內(nèi)存分配”等保守性設(shè)計原則。這些設(shè)計原則使得SVDU 的應(yīng)用功能開發(fā)與技術(shù)指標要求呈現(xiàn)矛盾狀態(tài),難以兼得。在工程實踐中,犧牲功能豐富性和完善性來保證人機響應(yīng)時間、頁面刷新速率等技術(shù)指標要求會使SVDU 的功能偏向簡單化,有時并不能夠完全滿足安全級DCS 配套人機界面的某些功能需求。
圖1 安全級DCS簡化連接圖Fig.1 Simplified connection diagram of safety DCS
如果能夠以新的設(shè)計方法來提升SVDU 設(shè)備的運行效率,使得功能和性能同時兼顧,又能有效保證可靠性,對于保障核電安全可靠運行具有重要意義。
國內(nèi)外應(yīng)用于核電廠的SVDU 產(chǎn)品主要包括TXS QDS、MELTEC SVDU、Tricon SVDU 以及NASPIC SVDU。雖然各產(chǎn)品采用的技術(shù)不同,但在安全級DCS 中發(fā)揮的作用類似。SVDU 作為安全級DCS 配套的人機界面,為操作員提供狀態(tài)監(jiān)視、手動干預(yù)系統(tǒng)運行的能力。圖1 是安全級DCS 中的簡化連接圖,各模塊的功能如下:
GW:網(wǎng)關(guān)站(Gate Way),實現(xiàn)安全級DCS 與NC 網(wǎng)絡(luò)的通信隔離。
TU:傳輸單元(Transfer Unit),實現(xiàn)SVDU、FCS、TU、GW 之間的數(shù)據(jù)中轉(zhuǎn)傳輸,通過TU 能夠?qū)⒏鱾€單一的站點通信互聯(lián),構(gòu)成較大的控制通信網(wǎng)絡(luò)。
FCS:自動控制單元(Fieldbus Control System),執(zhí)行數(shù)據(jù)采集、邏輯運算及輸入輸出控制。
ECP/BUP:獨立于安全級DCS 的應(yīng)急盤(Emergency Control Panel)和后備盤(Backup Panel)。
SVDU:安全級圖形顯示單元,通過TU 獲取需要監(jiān)視的網(wǎng)絡(luò)變量,通過TU 將控制指令發(fā)送到FCS 中。
在安全級DCS 中,SVDU 需要完成的功能包括但不限于:
1)反應(yīng)堆保護系統(tǒng)功能的閉鎖及復(fù)位。
2)通道旁通狀態(tài)顯示。
3)長時間PAMS 變量記錄和趨勢顯示。
4)T3 定期試驗。
5)停堆斷路器復(fù)位。
表1 SVDU設(shè)備功能與系統(tǒng)功能的關(guān)系Table 1 The relationships between SVDU device functions and system functions
在系統(tǒng)運行中,SVDU 的故障可能會導(dǎo)致操作模式由KIC 模式切換到BUP 模式[2]。因此,SVDU 的功能大多可由BUP 代替??傮w上,SVDU 發(fā)揮著與BUP 相似的功能。在設(shè)備級手動控制方面,可以認為SVDU 與BUP 構(gòu)成了多樣化的人機輸入手段;在狀態(tài)監(jiān)視方面,SVDU 借助自身的大屏幕和多種顯示形態(tài)的圖形控件,能夠代替大量BUP 盤面布置的信號狀態(tài)指示燈、參數(shù)監(jiān)視儀,使得BUP 僅保留必要的信號監(jiān)視,能夠簡化BUP 的設(shè)計復(fù)雜度。
從安全級DCS 整體的角度來看,SVDU 主要執(zhí)行的系統(tǒng)功能有兩個:
1)設(shè)備級手動控制。
2)實時狀態(tài)監(jiān)視。
為滿足以上系統(tǒng)功能,SVDU 需要具備以下設(shè)備功能:
① 安全通信:能夠與TU 進行雙向安全通信。
② 人機輸入:具備接收來自用戶人機輸入指令的能力。
③ 畫面顯示:以圖形、數(shù)值、文本、趨勢及日志等多種顯示形態(tài)反映狀態(tài)監(jiān)視的實時值和歷史值。
④ 用戶配置信息解析:SVDU 是一款組態(tài)型設(shè)備,所有顯示畫面均在離線組態(tài)后下裝至設(shè)備中。因此,需要具備解析用戶組態(tài)配置信息的功能。
SVDU 系統(tǒng)功能與設(shè)備功能的關(guān)系如表1 所示。
圖2、圖3 描述了狀態(tài)監(jiān)視和設(shè)備級手動控制的數(shù)據(jù)流向及其經(jīng)過的處理環(huán)節(jié)。
SVDU 軟件在滿足“單任務(wù)運行”“固定周期運行”等設(shè)計原則的前提下,在一個固定的運行周期內(nèi),將按照圖4 所示機制固定地分配時間片段,確定、順序地執(zhí)行各項設(shè)備功能。
如果SVDU 中某個控件涉及的設(shè)備功能過于復(fù)雜,圖4 中的各個時間片段將增加,進而增加運行周期,降低SVDU 人機響應(yīng)和數(shù)據(jù)更新速度。在“限制中斷使用”“無人機輸入輸出緩存”的設(shè)計中,系統(tǒng)還有可能丟失人機輸入信息,嚴重影響SVDU 安全功能的可靠性。
圖2 狀態(tài)監(jiān)視的數(shù)據(jù)流向Fig.2 The data flow of status monitor
圖3 設(shè)備級手動控制的數(shù)據(jù)流向Fig.3 The data flow of device-level manual control
圖4 SVDU固定時間片段運行機制Fig.4 SVDU running mechanisms based on fixed time slice
航空和工業(yè)控制等諸多領(lǐng)域?qū)τ嬎阆到y(tǒng)要求越來越高,嵌入式計算機系統(tǒng)日益復(fù)雜[3]。因此,不得不引入操作系統(tǒng)來實現(xiàn)任務(wù)調(diào)度和硬件管理。與此類似,某些SVDU 產(chǎn)品中也使用基于實時性操作系統(tǒng)的多任務(wù)處理機制來提升并發(fā)數(shù)據(jù)處理能力。任務(wù)管理和調(diào)度是操作系統(tǒng)的核心功能之一,而任務(wù)調(diào)度必然會引入程序指針重賦值的軟件或硬件中斷,帶來嚴重的不確定性,背離了安全級軟件的設(shè)計原則;同時會導(dǎo)致軟件的確定性評估以及驗證確認工作變得復(fù)雜且困難。此外,操作系統(tǒng)的引入,使得硬件資源需求提升,硬件復(fù)雜度的增大反而會導(dǎo)致SVDU 的可靠性預(yù)計指標下降。
“單任務(wù)運行”“固定周期運行”等設(shè)計約束本質(zhì)上是為了保證SVDU 軟件的行為簡化,有利于可靠性分析。如果能將圖4 所示各個時間片的功能聚合為多個獨立的協(xié)處理器,在統(tǒng)一的時序節(jié)拍驅(qū)動下,各個協(xié)處理器盡可能地同步并發(fā)執(zhí)行,將極大提升對應(yīng)用功能的處理能力,各個模塊的功能復(fù)雜度也可以保持在較低水平。
圖4 中各個時間片代表的SVDU 各子功能,可以被聚合為以下具備一定獨立性的協(xié)處理功能:
圖5 基于多協(xié)處理器并行化方法的SVDU技術(shù)方案Fig.5 The method of SVDU based on multi-processor
1)用戶配置信息解析協(xié)處理功能。
2)顯示協(xié)處理功能。
3)通信協(xié)處理功能。
4)人機輸入?yún)f(xié)處理功能。
為了保證各協(xié)處理功能有序地運行,需要配備專門的時序節(jié)拍控制模塊。在執(zhí)行SVDU 系統(tǒng)功能時,各協(xié)處理功能間需要執(zhí)行數(shù)據(jù)傳輸。因此,需要配備專門的DMA 控制模塊。
按照以下兩個原則可構(gòu)建起如圖5 所示基于多協(xié)處理器并行化方法的SVDU 技術(shù)方案:
原則1 同步性
各協(xié)處理器有統(tǒng)一的時序基準以保證SVDU 行為的確定性。
原則2 并行性
本方法是一個去中心化的設(shè)計,除時序節(jié)拍控制外,其他協(xié)處理器地位等同。任意兩個或多個協(xié)處理器能夠配合實現(xiàn)SVDU 的應(yīng)用功能。
圖5 中各協(xié)處理器的功能描述如下:
a)時序節(jié)拍控制模塊
本模塊為SVDU 運行提供時序基準,輸出的同步時序節(jié)拍定義了SVDU 的運行周期以及各個時間點應(yīng)該執(zhí)行的功能。通過本模塊來保證SVDU 功能的確定性。
b)配置信息解析協(xié)處理器
配置信息定義了SVDU 在不同的輸入條件下應(yīng)當具備的狀態(tài)和輸出行為。本模塊在時序節(jié)拍的控制下,解析配置信息并將配置信息轉(zhuǎn)換為需要的操作后以并行的方式分發(fā)到指定的協(xié)處理器中。每個配置信息解析處理器需要配套一個配置緩存,用于暫存配置解析前后的相關(guān)信息。
c)顯示協(xié)處理器
顯示協(xié)處理器在時序節(jié)拍的驅(qū)動下,既要實現(xiàn)對顯示設(shè)備的驅(qū)動,又要按照特定的人機輸入、配置信息以及通信網(wǎng)絡(luò)變量實時地生成顯示畫面數(shù)據(jù)。每個顯示協(xié)處理器需要配套一個顯示緩存,用于實現(xiàn)顯示畫面信息的暫存。
d)通信協(xié)處理器
通信協(xié)處理器在時序節(jié)拍的驅(qū)動下,要完成多層安全通信協(xié)議的封裝、解析、接收以及發(fā)送控制,又要與應(yīng)用數(shù)據(jù)、人機輸入數(shù)據(jù)配置信息關(guān)聯(lián)。每個通信協(xié)處理器需要配套一個通信緩存,用于實現(xiàn)通信接收或發(fā)送數(shù)據(jù)的暫存。
e)人機輸入?yún)f(xié)處理器
人機輸入?yún)f(xié)處理器在時序節(jié)拍的驅(qū)動下,既要完成對實體按鍵、觸摸屏等人機輸入設(shè)備的驅(qū)動控制和坐標數(shù)據(jù)捕獲,又要與配置信息關(guān)聯(lián)以識別其關(guān)聯(lián)的控件、通信網(wǎng)絡(luò)變量等。每個人機輸入?yún)f(xié)處理器需要配套一個人機輸入數(shù)據(jù)和應(yīng)用數(shù)據(jù)緩存,用于人機輸入、應(yīng)用數(shù)據(jù)關(guān)聯(lián)等信息的暫存,避免人機輸入信息的丟失。
f)DMA 控制器
以上各個協(xié)處理器中不存在中心節(jié)點,協(xié)處理器間存在數(shù)據(jù)傳輸?shù)男枨蟆MA 控制器在時序節(jié)拍的控制下,按照配置信息的定義,實現(xiàn)協(xié)處理器間的數(shù)據(jù)傳輸控制。
基于單任務(wù)的SVDU 設(shè)備在執(zhí)行“按鈕”類設(shè)備級手動控制功能時,需要順序地執(zhí)行以下5 個動作:
1)捕獲人機輸入
定期掃描人機輸入設(shè)備,如果有人機輸入則開始準備人機響應(yīng),否則在下一個周期繼續(xù)掃描人機輸入設(shè)備。
2)人機響應(yīng)關(guān)聯(lián)
在已捕獲到人機輸入的前提下,結(jié)合配置信息,確定應(yīng)該執(zhí)行的具體人機響應(yīng)內(nèi)容,如果配置信息未定義人機響應(yīng),則放棄人機響應(yīng)操作,在下一個周期到來時繼續(xù)掃描人機輸入設(shè)備。
3)人機響應(yīng)輸出控制
在人機響應(yīng)關(guān)聯(lián)完畢的前提下,在顯示緩存的某一區(qū)域內(nèi)產(chǎn)生人機回饋顯示數(shù)據(jù),并將該信息輸出到顯示設(shè)備上,提示操作員SVDU 已經(jīng)捕獲到人機輸入。
4)網(wǎng)絡(luò)變量關(guān)聯(lián)
通過配置信息的定義,識別該人機輸入是否關(guān)聯(lián)相應(yīng)的網(wǎng)絡(luò)變量。如果關(guān)聯(lián)了網(wǎng)絡(luò)變量,則將對應(yīng)的網(wǎng)絡(luò)變量設(shè)置為指定數(shù)值,否則放棄本次操作。
5)通信輸出
將網(wǎng)絡(luò)變量包通過安全通信發(fā)送至TU。
以上順序動作在多協(xié)處理器并行化方法下,將精簡為圖6 所示的時序。
圖6 設(shè)備級手動控制時序Fig.6 Device-level manual control timing
圖6 中,周期執(zhí)行階段的具體操作如下:
a)并行配置信息解析
配置信息解析協(xié)處理器解析主體的配置數(shù)據(jù),產(chǎn)生DMA 路由控制信息。顯示、通信、人機輸入?yún)f(xié)處理器解析自身所需要的配置信息。
b)并行數(shù)據(jù)處理與傳輸
顯示、通信、人機輸入?yún)f(xié)處理器通過DMA 獲取到自身所需數(shù)據(jù),按照預(yù)定義的時序節(jié)拍結(jié)合各自解析的配置數(shù)據(jù),并行地實現(xiàn)通信、人機、顯示數(shù)據(jù)計算。
c)并行數(shù)據(jù)輸出控制
在上一步的基礎(chǔ)上,各協(xié)處理器并行執(zhí)行各自的功能。
在涉及復(fù)雜數(shù)據(jù)傳輸、數(shù)據(jù)運算的功能執(zhí)行時,多協(xié)處理器并行化方法將體現(xiàn)出巨大的優(yōu)勢。下面以事故后監(jiān)測系統(tǒng)(Post Accident Monitor System,簡稱PAMS)變量趨勢顯示為例進行說明。其他復(fù)雜的狀態(tài)監(jiān)視功能與此類似。
基于單任務(wù)的SVDU 設(shè)備進行PAMS 變量趨勢顯示時,通常需要順序地執(zhí)行以下動作:
① 獲取通信數(shù)據(jù)。
② 通信數(shù)據(jù)與配置信息關(guān)聯(lián),轉(zhuǎn)換為應(yīng)用數(shù)據(jù)。
③ 應(yīng)用數(shù)據(jù)通過插值算法連續(xù)化為顯示數(shù)據(jù)。
④ 顯示數(shù)據(jù)輸出至顯示設(shè)備。
以上各個步驟順序執(zhí)行過程中牽涉到大量的數(shù)據(jù)重復(fù)搬運工作,如圖7 所示。
采用多協(xié)處理器并行化方法,則PAMS 變量的趨勢顯示可按照圖8 所示的時序執(zhí)行。
具體地,基于多協(xié)處理器并行化方法能夠使得PAMS變量的趨勢顯示實現(xiàn)四級流水線處理,如圖9 所示。數(shù)據(jù)吞吐率提升3 倍,在每個時序節(jié)拍可以完成一個PAMS 采樣點的數(shù)據(jù)搬運、數(shù)據(jù)歸一化處理、數(shù)據(jù)插值計算和輸出顯示。通過這種方法,一方面可以在單幅SVDU 畫面上顯示更多的PAMS 變量趨勢,另一方面更有利于某些復(fù)雜的數(shù)據(jù)插值和連續(xù)化算法的實施。
多協(xié)處理器并行化方法將SVDU 中的主要功能聚合為獨立的協(xié)處理器,主要有以下2 種實現(xiàn)方式:
圖7 順序化PAMS變量趨勢顯示流程Fig.7 Sequential trend display proc
1)基于多個通用微控制器元件的協(xié)處理器陣列
各個協(xié)處理器使用獨立的微控制器,通過板上總線連接,互相配合實現(xiàn)SVDU 的各項功能。這種實現(xiàn)方法存在以下問題:
◇ 元器件增多,可靠性預(yù)計指標下降。
◇ 板載通信接口、協(xié)議繁雜,限制整體性能提升。
◇ 某些特殊功能無法定制化,例如流水線處理、數(shù)據(jù)突發(fā)訪問等。
2)基于FPGA 的SOC
FPGA 的片上邏輯資源、布線資源以及RAM 資源越來越豐富。同時,隨著制程工藝的提升,F(xiàn)PGA 在執(zhí)行相同邏輯功能的功耗與傳統(tǒng)的ASIC 器件已經(jīng)相差不大。這些有利條件使得基于FPGA 的SOC 技術(shù)在面向小批量、柔性定制功能的應(yīng)用中具有明顯優(yōu)勢。通過SOC 的方式,不僅能克服通信接口的復(fù)雜,還能實現(xiàn)片上系統(tǒng)的集成[4]。
基于FPGA 的協(xié)處理器并行化方法具體實施方式如下:
◇ 利用FPGA 片上的邏輯資源、RAM 資源、布線資源來構(gòu)建各協(xié)處理器。
◇ 利用FPGA 上的邏輯資源、布線資源來構(gòu)建各協(xié)處理器間的片上并行通信總線。
目前,多核處理器按照集成方式不同,可以分為同構(gòu)多核處理器和異構(gòu)多核處理器[5]。多協(xié)處理器并行化方法的實現(xiàn)需要結(jié)合同構(gòu)和異構(gòu)的特點。因此,在圖5 的基礎(chǔ)上,構(gòu)造了雙冗余—混合型架構(gòu)片上系統(tǒng),如圖10 所示。
圖10 中,A 組協(xié)處理器陣列和B 組協(xié)處理器陣列采用完全相同的設(shè)計并執(zhí)行相同的功能,可視為兩個同構(gòu)的處理器核,用于滿足目前核電廠業(yè)主對SVDU 越來越高的可靠性要求。通過同構(gòu)的冗余處理器核,使得即便在硅片上也實現(xiàn)了冗余功能,對于防范由于硅片部分區(qū)域損壞帶來的安全功能喪失具有重要意義。
圖8 PAMS趨勢顯示時序Fig.8 PAMS trend display timing
圖9 四級流水線PAMS變量趨勢顯示Fig.9 Four-level pipeline methods for trends display of PAMS variables
在A 組或B 組協(xié)處理陣列內(nèi),各協(xié)處理器可視為多個異構(gòu)處理器核,執(zhí)行不同的功能。通過異構(gòu)的處理器核設(shè)計,能夠有效發(fā)揮各協(xié)處理器的專業(yè)功能,有效提升處理能力。此外,在A 組協(xié)處理器陣列和B 組協(xié)處理器陣列間還可以增加鎖步、互相監(jiān)督等手段來提升可靠性。
多協(xié)處理器并行化方法具有以下明顯優(yōu)勢:
1)不明顯增加系統(tǒng)運行的功能復(fù)雜度
每個協(xié)處理器只執(zhí)行特定的功能,其運行的復(fù)雜度小于單任務(wù)模式。在統(tǒng)一的時序節(jié)拍驅(qū)動下,所有時序流程均是清晰明確的,確定性高,有利于可靠性分析預(yù)測。
2)簡化測試驗證流程
多協(xié)處理器并行化方法將顯著減小軟件測試和驗證確認(Verification & Validation,簡稱V&V)的工作難度。各個協(xié)處理器間接口和時序關(guān)系明確,測試和V&V 可以按模塊逐個開展。
3)改善系統(tǒng)自診斷方法并提高安全性
多協(xié)處理器并行化方法可以使得精確和完善的自診斷監(jiān)視方法的實施更為簡單和方便。這也使得SVDU 可以不再依賴特定的具有高安全完整性等級的CPU,有利于進一步提升SVDU 的自主可控能力。
當然,多協(xié)處理器并行化方法也有其不足之處:
圖10 雙冗余-混合型架構(gòu)Fig.10 Dual redundant hybrid architecture
a)芯片資源需求增加
隨著半導(dǎo)體技術(shù)進步以及實際設(shè)備的低功耗、小型化、智能化的實際需求,多協(xié)處理器并行化方法必然是基于片上系統(tǒng)技術(shù),即在單FPGA 或ASIC 上集成多個協(xié)處理器核和附屬的數(shù)據(jù)緩存,這又對目標芯片的布線資源、計算資源、存儲資源等提出了較高要求。
b)引入了額外的安全風險
節(jié)拍控制器定義了SVDU 所有行為的先后關(guān)系。準確可靠的節(jié)拍控制直接決定了SVDU 運行的正確性。節(jié)拍協(xié)調(diào)控制的引入可能帶來潛在的共因故障風險。
c)前期調(diào)試工作較為復(fù)雜
多協(xié)處理器并行化方法是針對特定的需求開發(fā)的非標準架構(gòu),在前期工作開展中,還需要增加調(diào)試工具設(shè)計,加重研發(fā)工作負荷。
本文通過梳理SVDU 的系統(tǒng)功能和當前設(shè)備底層支撐技術(shù)的局限性,提出了多協(xié)處理器并行化方法,并闡述了該方法的系統(tǒng)架構(gòu)、運行機制以及技術(shù)實現(xiàn)的細節(jié),同時分析了該方法的優(yōu)劣性。多協(xié)處理器并行化方法具有并發(fā)執(zhí)行高效率、功能驗證方便等突出優(yōu)勢,對于未來SVDU產(chǎn)品的持續(xù)改進升級具有一定的啟發(fā)意義。