彭 聰,沈云付
(上海大學計算機工程與科學學院,上海200444)
近年來,由于超級計算機功耗的急劇上升,關于新型高性能計算機的研究越來越多[1].三值光學計算機是一種新型的計算機,其處理器具備可重構以及三值計算的特性.長期以來,金翊等[2]提出了以無光態(tài)和偏振方向相互正交的2個偏振光態(tài)(垂直偏振光和水平偏振光)表示信息,以液晶和偏振片構造光學處理器的三值光學計算機概念和結構,基于降值設計理論實現(xiàn)了可重構的三值光學處理器(ternary optical processor,TOP)[3],并利用小規(guī)模現(xiàn)場可編程門陣列(field programmable gate array,FPGA)芯片驗證了新設計的重構電路等[4].三值光學計算機中均方位移(mean square displacement,MSD)加法器理論與技術的提出推進了其實現(xiàn)大規(guī)模數(shù)值計算的進程,使得各數(shù)據(jù)位在MSD加法器中能夠并行計算[5].
對于任何處理器的設計而言,其可靠性至關重要.目前,三值光學處理器在可靠性設計方面還不夠完善.由于受現(xiàn)有技術的影響和限制,現(xiàn)在的三值光學處理器還是一種以電路控制、光路結構計算的系統(tǒng),其中還存在很多不確定因素影響著三值光學處理器運行的可靠性.引發(fā)三值光學處理器運行失效的原因有:①處理器硬件系統(tǒng)隨著工作時間的增加而可靠性降低;②不失一般性地,考慮三值光學處理器的重構存儲單元(如FPGA)在遭到諸如電磁干擾等情況時,容易造成處理器系統(tǒng)的重構指令和運算數(shù)據(jù)錯誤.到目前為止,三值漢明碼糾錯與檢錯技術的提出在三值光學計算機數(shù)據(jù)通信的可靠性方面起到了一定的作用[6],但仍然沒有一種容錯方法能夠直接保障處理器運算輸出的正確性.
以三模冗余(triple module redundancy,TMR)的方式對系統(tǒng)邏輯單元的輸出進行表決是提高系統(tǒng)部件可靠性的經(jīng)典的容錯技術,其原理是:3個模塊同時執(zhí)行相同的操作,采用3取2的原則令大部分相同的輸出作為表決的正確值.在電子計算機中關于三模冗余表決的應用是非常普遍的,如當靜態(tài)隨機存取儲器(static random-access memory,SRAM)單元在太空環(huán)境中出現(xiàn)單事件干擾(single event phenomena,SEU)的事故首次被發(fā)現(xiàn)時,Ruano等[7]為可靠性低于100%的存儲芯片電路提出了一種輪替的TMR表決機制;考慮到電磁環(huán)境的特殊性和復雜性,Ruano等[8]還提出了一種可靠的TMR投票方案,其目的是為了確保電路嚴格正確地工作.此外,有很多關于改進仲裁器電路結構的工作,Kshirsagar等[9]設計了一種全新的容錯架構的TMR表決器,并提出了相關的算法,這種TMR結構可以掩蓋表決器自身所產(chǎn)生的錯誤.而Michele等[10]在評估TMR投票的可靠性時發(fā)現(xiàn),由于互連擴展和增加電路中與選擇器集成存在串擾問題,因此他們提出了在原來的TMR表決框架上進行再度表決方案.這些成功的三模冗余表決應用表明,基于TMR表決的容錯方法在提高系統(tǒng)部件的可靠性中起著重要作用,本工作將對三值光學處理器展開三模冗余表決系統(tǒng)設計與實驗.
三值光學處理器的運算單元叫做基礎運算單元(basic operation units,BOUs).降值設計理論表明,三值光學處理器可以由18種最基本的基元構成,而在三值光學處理器上任意重構的運算器將使用不超過6種基元[11].基元的運算采用光的2個相互垂直的偏振態(tài)(垂直偏振態(tài)和水平偏振態(tài))以及無光態(tài)表達信息(見圖1),在本工作中,這3種信息狀態(tài)的數(shù)值符號分別記為-1,1和0.
基元在空間上具有統(tǒng)一的結構,由主光路和控制光路組成.圖1中,4個網(wǎng)格陣列區(qū)域表示液晶像素,在這4個液晶像素區(qū)的正面和背面貼有垂直偏振片或水平偏振片:在VV區(qū)像素的前面和后面都貼有垂直偏振片;VH區(qū)像素的前面貼垂直偏振片而背面貼水平偏振片;HH區(qū)像素的前面和后面都貼有水平偏振片;HV區(qū)像素的前面貼水平偏振片而后面貼垂直偏振片.因此4個液晶像素區(qū)都具有相同的“偏振片-液晶-偏振片”的三明治結構.將4個區(qū)域左上角的像素相應地標記為坐標(0,0),相同坐標的三明治結構的像素位VV(i,j),HV(i,j),VH(i,j)和HH(i,j)構成單個基元主光路的4條子光路,4條子光路擁有對應的控制光路,基元的外部特征如圖2所示.對于200×100的液晶像素陣列,三值光學處理器可輕松構造出(200×100)/4=5 000個運算單元.

圖1 三值光學處理器液晶像素陣列區(qū):組成基元主光路Fig.1 Liquid crystal pixels of TOP:used to make up of the BOUs'main optical path

圖2 基元的外部特征Fig.2 The external feature of single BOU
基元被用于重構組合成運算器,而對于每一位基元的重構操作,具有如圖2所示的d0d1d2d3d4d5d6d7,a1a2,b1b23個輸入數(shù)據(jù)部分,其中d0d1d2d3d4d5d6d7是8位的重構指令,各為2位的a1a2和b1b2分別是用于調制主光路和控制光路信號的編碼數(shù)據(jù).基元的重構運算操作如下:重構指令用于重構出特定的基元,2位的地址碼d0d1會對主光路尋址并且選定子光路,而功能碼位d2d3d4d5d6d7對選定的子光路所對應的控制光路進行作用,對投射在液晶上的光信號進行旋光和轉換.與此同時,編碼寄存器中的a1a2和b1b2分別對基元主光路和控制光路的光信號進行調制(垂直光、水平光或無光),被重構的基元隨后進行相應的計算.
事實上,基元的每一次重構運算,其主光路只有一條子光路在工作,而其他3條子光路被關閉[3].主光路的4條子光路在被重構選擇后,成為具備實際運算功能的子處理單元.為了方便說明,基元主光路中具備運算功能的HV,VV,HH和VH子光路模塊分別記為SOP0,SOP1,SOP2和SOP3.
對于SOP0和SOP1來說,主光路中的信號最終透過的垂直偏振片能夠吸收水平偏振光,其輸出集為Ω1={0,-1}.相應地,SOP2和SOP3主光路上最終透過的水平偏振片能夠吸收垂直偏振光,并輸出信號集Ω2={0,1}.這2個輸出集反映了基元重構運算輸出的三值特點,也說明基元的三值輸出空間可降解為二值輸出空間.針對基元的SOP0,SOP1以及SOP2,SOP3子處理器模塊的二值輸出特征,可以分別對其統(tǒng)一設計表決器Voter1和表決器Voter2.
三模冗余表決的布爾邏輯表達式為Cout=M1M2+M1M3+M2M3+M1M2M3,其中M1,M2和M3是3個相同單元的輸出,一起作為表決器的輸入.這個邏輯說明表決器可以通過光邏輯部件實現(xiàn).
首先提出2個偏振光比較部件,用于判斷2束光強是否同時具有相同的偏振類型,稱為偏振光“與”門.為方便說明,將垂直偏振光和無光記為V型光集合,而水平偏振光和無光記為H型光集合.
判斷2束光在同一時間為垂直偏振光的“與”門結構如圖3所示,圖中a和b的輸入均為V型光集合中的光強,LC1和LC2是2個加電旋光液晶,中間夾著能夠吸收垂直偏振光而透過水平光的水平偏振膜h,g為將光轉換為電的感光管.其原理如下:當a和b的輸入都是垂直偏振光時,b中的光強信號被感光管g轉換為電流,用于控制LC1和LC2的旋光;光束a經(jīng)LC1的旋光作用后被轉換成水平偏振光a′,a′能穿過水平偏振膜到達LC2;受到LC2的旋轉后,a′再次被轉換為垂直偏振光a′′,得到信息值-1.對于a和b的輸入不同時為垂直偏振光的其他情況,很容易驗證垂直偏振光“與”門的輸出為無光,且信息值為0.

圖3 垂直偏振光“與”門Fig.3 AND gate for vertical polarized light

圖4 水平偏振光“與”門Fig.4 AND gate for horizontal polarized light
類似地,比較2束光強是否同時為水平偏振光的“與”門結構如圖4所示.圖中c和d的輸入是H型光集合中的光強,液晶片LC3和LC4中間夾著垂直偏振片“v”(能夠吸收水平光而透過垂直光).當c和d同時輸入水平偏振光時,水平偏振光“與”門輸出信息值為1的水平偏振光;在c和d不同時輸入水平偏振光時,輸出無光態(tài)的信息值0.以上2種“與”門運算簡記為AND.

表1 基元SOP0和SOP1單元的表決真值Table 1 Voting truth table of SOP0and SOP1

表2 基元SOP2和SOP3單元的表決真值Table 2 Voting truth table of SOP2and SOP3
基元子處理單元SOP0和SOP1的TMR表決真值如表1所示,表中Mv1,Mv2和Mv3為SOP0或SOP1的3個相同模塊的輸出,具有相同的信息輸出空間Ω1.對SOP0和SOP1單元設計的TMR光電表決器Voter1的結構如圖5所示,圖中左側2條短粗斜線代表分光鏡,用于將Mv1,Mv2,Mv3的光束分成3組進入3個垂直偏振光“與”門.右側2條短粗的黑色斜線是半反半透鏡,用于疊加來自3個“與”運算的輸出信號,以產(chǎn)生表決結果Cout.其原理為用2個分光鏡分別對Mv1和Mv3的光強輸出進行分光,其中Mv1和Mv3各自一半的光強一起進入到垂直偏振光的“與”門形成AND1運算;同時,Mv1和Mv3各自剩余的一半光強分別與Mv2協(xié)作,通過2個垂直偏振光“與”門形成AND2和AND3運算;最后,將3個“與”門的光信號輸出進行疊加,產(chǎn)生Voter1的表決結果.例如,當Mv1,Mv2和Mv3的輸出分別為垂直偏振光、垂直偏振光以及無光時,Mv1,Mv2和Mv3的輸出信號進入Voter1后,AND2運算輸出垂直偏振光,而AND1和AND3都輸出無光,經(jīng)過對3個“與”門光信號疊加后,表決得到垂直偏振光(信息值為-1).
對SOP2或SOP3設計的表決器Voter2的光電結構如圖6所示,表2是相應的表決真值.其中,Mh1,Mh2和Mh3是SOP2或SOP3的3個相同單元的輸出,具備相同的信息輸出空間Ω2.與Voter1類似,Voter2的表決原理是對Mh1,Mh2和Mh3的光強輸出分光成3組,進入3個水平偏振光“與”門進行AND4,AND5和AND6運算,再將3個“與”門運算的光束輸出進行疊加,以產(chǎn)生表決信號.

圖5 表決器Voter1光電結構Fig.5 Photoelectric structure of Voter1

圖6 表決器Voter2光電結構Fig.6 Photoelectric structure of Voter2
對三值光學處理器建構表決系統(tǒng),將直接針對系統(tǒng)所有的基元結構的4個子處理單元部署表決器.三值光學處理器三模冗余表決系統(tǒng)框架如圖7所示,構建步驟如下.
步驟1 設A0為主處理器,在原液晶板上擴建另外2個從處理器A1和A2,A1和A2具有和主處理器A0相同的構造.將3個處理器同一位置的3個等位基元分別標記為BOU0,BOU1和BOU2,這3個基元都有4個具有實際執(zhí)行功能的子處理模塊,記為SOP0i、SOP1i和SOP2i(i=0,1,2).對于當K=0,1,2時,SOPki在i=0,1,2,3情況下分別表示這3個處理器基元的主光路各自分別被重構為HV,VV,HH以及VH類型光路.
步驟2 在如圖7所示的3個協(xié)同進行表決的基元中,SOP0i,SOP1i和SOP2i子處理單元的輸出將構成4組表決,分別為HV型光路表決、VV型光路表決、HH型光路表決以及VH光路表決.HV光路的表決由SOP00,SOP10,和SOP20的輸出組成;VV光路的表決由SOP01,SOP11和SOP21的輸出組成;HV光路的表決由SOP02,SOP12和SOP22的輸出組成;而HV光路的表決由SOP03,SOP13和SOP23的輸出組成.這里,HV和VV的表決使用Voter1,而HH和VH的表決使用Voter2.
步驟3 3個基元從同一控制系統(tǒng)接收一條相同的重構指令,重構指令會按主光路尋址碼確定主光路類型.此時,SOP0i,SOP1i和SOP2i各自的一個具體的子處理單元將執(zhí)行運算.例如,一條正確的重構指令對3個處理器上等位的基元重構為HV型光路,這3個基元主光路中的HV光路同步、獨立進行運算.
步驟4 4組表決中,HV型主光路表決的結果代表系統(tǒng)基元SOP0單元運算的最后結果,VV型光路的表決結果代表基元SOP1單元的運算值,HH型光路的表決結果代表基元SOP2單元的運算值,而VH型光路的表決結果代表基元SOP3單元的運算值.
此外,對用于存儲基元運算所需數(shù)據(jù)(重構指令、主光路和控制光路編碼)的部件進行三模冗余,即對任意基元的重構鎖存器組以及主控光路上的2個輸入寄存器組進行冗余.由于三值光學處理器運算單元之間的運算已實現(xiàn)了同步,因此可以保證下位機控制器對三模冗余基元的3個輸入數(shù)據(jù)的同步,也就保證了三模冗余基元運算的同步.
對于三值光學處理器上的任意一個基元的4組TMR光路表決中,僅有一組會輸出期望值.考慮一條8位的系統(tǒng)重構指令,將主副處理器中同一位置的3個基元重構選擇為HV型主光路(SOP0),如果主處理器A0中的基元被重構錯誤或者在運行過程中出現(xiàn)異常,那么A0中該位基元的HV光路重構運算不正確(數(shù)據(jù)位運算失效).經(jīng)過HV型光路區(qū)的表決,即使屏蔽了其發(fā)生的錯誤,最后也能得到系統(tǒng)期望的計算值.而對于表決系統(tǒng)表決出錯誤結果的數(shù)據(jù)位,應該對各分區(qū)中相應錯誤的數(shù)據(jù)位進行重復計算和表決.

圖7 三值光學處理器三模冗余表決框架Fig.7 Framework of TMR-based voting system of TOP
由于三值光學處理器的運算單元具有獨立并行計算的特點,故本工作為一位的可重構處理器設計了硬件表決實驗,以驗證三模冗余表決在三值光學處理器上應用的有效性和可行性.在本實驗中,每個處理器只有一個基元,并且設計了3個重構電路程序副本用于對3個基元重構控制,借助了3臺Dice-SemⅡ數(shù)字仿真綜合實驗箱輔助完成.將QuartusⅡ軟件設計的重構程序下載到3臺實驗箱上的ACEX1K PLD(可編程邏輯器件)后,連接好三模冗余整體電路系統(tǒng),令3個實驗箱共同接地,其中1個實驗箱上的脈沖被用作三模冗余系統(tǒng)接連的同步時鐘.通過撥動實驗箱上的開關來實現(xiàn)三模冗余基元的重構操作,并借助電鍵開關手動注入基元的重構指令以及主控編碼數(shù)據(jù)的錯誤,以便模擬系統(tǒng)故障錯誤.
在本實驗中,基元與表決器的制作利用了EDS819 TN靜態(tài)筆段液晶LCD(見圖8).EDS819 TN-LCD的光源分布均勻,且光強度高,有標記為1,2,3的3個部分,其中第2和第3部分分別有標記為A~G的7個筆段,并且2G,3G筆段以及第1部分將不被用到.

圖8 EDS819 TN型筆段液晶LCD規(guī)格Fig.8 Specification for TN stroke segment LCD
3個基元(BOU0,BOU1,BOU2)的主光路在EDS819 TN-LCD中的筆段分配如表3所示,(2A,3A,2D,3D)筆段用于構成BOU0的主光路像素,其中2A表示VV型光路,3A表示HV型光路,2D表示VH型光路,以及3D表示HH型光路.與此類似,(2B,3B,2C,3C)筆段用于構成和表示BOU1的主光路像素,而(2F,3F,2E,3E)筆段則用于表示BOU2的主光路像素.使用3片EDS819 TN-LCD,并在其對應的主光路筆段位之間放置相應的偏振片,貼緊與對齊后構建3個基元的物理結構(關于基元物理結構的更多細節(jié),可以參考文獻[4]).
圖9為基元4個表決光路區(qū),圖中3層結構的(2A,2B,2F)筆段的輸出構成了基元VV型主光路區(qū)中表決器的輸入,(3A,3B,3F)筆段的輸出作為HV型主光路區(qū)中表決器的輸入,(2D,2C,2E)筆段的輸出作為VH型主光路區(qū)中表決器的輸入,而(3D,3C,3E)筆段的輸出則作為HH型主光路區(qū)中表決器的輸入.

表3 一位處理器三模冗余表決實驗基元主光路筆段分配表Table 3 Stroke segments assignment for BOUs'main optical path

圖9 基元4個表決光路區(qū)的說明Fig.9 Speci fi cation for the four voting regions
使用2片EDS819 TN-LCD及偏光片制作用于4個表決區(qū)的2種表決器,并將4個表決器與4個表決區(qū)域平行放置,2層液晶結構表決器的各筆段與3個基元的各筆段對齊,其間留有間隙以便放置感光管與透鏡.為方便操作與觀察,4個表決區(qū)的表決結構設計如下:對于VV型主光路表決區(qū),將BOU1的2B筆段的光強輸出轉換為電流,直接控制該區(qū)表決器的2A和2F筆段,形成(2A,2B)和(2F,2B)“與”運算,運算后的光強由表決器的2A和2F筆段顯示.用透鏡對BOU1的2A筆段的光強輸出分出一半,以控制該區(qū)表決器的2F筆段,進而形成(2A,2F)“與”運算,光強從表決器的2F筆段出來.VV區(qū)的表決結果最終由該區(qū)表決器的2A和2F筆段顯示.與此類似,對于HV表決區(qū),該區(qū)表決器的(3F,3A),(3F,3B)以及(3A,3B)筆段組分別形成“與”操作,表決結果由HV表決區(qū)中表決器的3A和3B筆段顯示.在VH表決區(qū)中,表決器的筆段(2C,2D),(2C,2E)以及(2D,2E)形成“與”操作,結果由VH表決區(qū)中表決器的2D和2E筆段高亮顯示.而在HH表決區(qū)內(nèi),筆段(3E,3C),(3E,3D)以及(3C,3D)構成3個“與”操作,并由HH表決區(qū)中表決器的3C和3D筆段顯示表決結果.
本實驗以基元重構運算操作所需的重構指令(d0d1d2d3d4d5d6d7)、主光路編碼(a1a2)、控制光路編碼(b1b2)數(shù)據(jù)發(fā)生錯誤的情況來進行設計.由于這3個數(shù)據(jù)中的每個出錯的數(shù)據(jù)都可能導致基元計算錯誤,因此實驗中針對每個類型的基元,對其重構運算操作的3個數(shù)據(jù)分別設計了2個用例,這樣18種基元共設計了108個表決用例.
重構指令標識了唯一特定的基元[4].對于重構指令為11001001的基元,其主光路被重構選擇為VV類型,對其設計的6個實驗用例如表4所示.在這6個測試用例中,每個錯誤數(shù)據(jù)位段注入到一個基元(BOU0,BOU1或BOU2)中.以表4中的用例1為例,對BOU1注入錯誤的重構指令11010001,且保持其主控光路編碼數(shù)據(jù)均為正確的10和01,與此同時BOU0和BOU2的重構指令以及主控編碼數(shù)據(jù)值都注入正確.在這種情況下,BOU0和BOU2的VV主光路都輸出垂直偏振光,而BOU1的VV主光路輸出無光.經(jīng)過VV區(qū)的表決,表決器的2A筆段高亮顯示(如圖10(a)所示).而在BOU0,BOU1和BOU2重構運算的3個數(shù)據(jù)都正確注入的情況下,VV區(qū)主光路數(shù)據(jù)的TMR表決效果如圖10(b)所示,其中表決器的2A和2F筆段高亮顯示.
在所有18個基元的表決用例測試中,基元的主光路均被重構為VV,HV,VH或HH 4種類型中的一種.為了更一般地討論實驗效果,在以下實驗結果分析中,還以注入重構指令位段為例,介紹了HV,VH和HH 3個表決區(qū)在重構指令正確與失效情況下的表決效果.
重構指令為01001100的系統(tǒng)基元重構選擇HV型主光路.當3個基元的重構指令都輸入正確,并且對3個基元的主控光路編碼分別賦10和01值時,主光路將輸出垂直偏振光,TMR表決效果如圖11(a)所示(HV表決區(qū)中表決器的3A和3B筆段高亮顯示).當對BOU1注入錯誤的重構指令01000100時,BOU1的主光路輸出無光,此時HV表決區(qū)中表決器的3A筆段高亮顯示,表決效果如圖11(b)所示.

表4 重構指令為11001001的基元表決實驗用例設計Table 4 Test examples of 1-bit processor for BOU with the reconfiguration 11001001

圖10 VV型主光路表決效果Fig.10 Voting results of VV-region

圖11 HV型主光路表決效果Fig.11 Voting results of HV-region
重構指令為10001100的系統(tǒng)基元重構選擇VH型主光路.在3個基元的重構指令輸入都正確的情況下,對3個基元的主控光路編碼分別賦10和11值時,基元主光路將輸出水平偏振光,TMR表決效果如圖12(a)所示,VH表決區(qū)中表決器的2E和2D筆段高亮顯示.當對BOU2注入錯誤的重構指令10011100時,BOU2的主光路輸出無光,此時VH表決區(qū)中表決器的2E筆段高亮顯示,其表決效果如圖12(b)所示.

圖12 VH型主光路表決效果Fig.12 Voting results of VH-region
重構指令為00010100的系統(tǒng)基元重構選擇HH型主光路.當BOU0,BOU1和BOU2重構指令都輸入正確,并且對3個基元的主控光路編碼分別賦01和01值時,主光路將輸出水平偏振光,TMR表決效果如圖13(a)所示(HH表決區(qū)中表決器的3C和3D筆段高亮顯示).當對BOU1注入錯誤的重構指令00011100時,BOU1的主光路輸出無光,此時HH表決區(qū)中表決器的3C筆段高亮顯示,其表決效果如圖13(b)所示.

圖13 HH型主光路表決效果Fig.13 Voting results of HH-region
三值光學處理器運算輸出的正確性取決于處理器運算單元的重構指令、運算數(shù)據(jù)性以及硬件性能,即處理器基元只有在重構運算數(shù)據(jù)和硬件性能強大的基礎上才具備可靠運行的可能.設三值光學處理器系統(tǒng)基元重構運算的可靠性因子為R,由硬件不穩(wěn)定而出錯情況的概率為p(0≤p≤1),且因重構運算操作數(shù)據(jù)出錯的概率為q(0≤q≤1),此時R=(1-p)(1-q),在單系統(tǒng)下m位的重構運算器的可靠性為


本工作證明了基元的輸出空間適用于三模冗余表決,介紹了三值光學處理器三模冗余表決系統(tǒng)的設計與實現(xiàn),設計了光電結構的表決器,并介紹了建構三值光學處理器三模冗余表決系統(tǒng)的方案與步驟.對一位的三值光學處理器表決實驗進行了詳細的設計與實現(xiàn),并對108個表決用例進行了測試,表決實驗的結果均屏蔽了單故障出錯的情況.由于實驗中的光學部件之間緊湊,并且像素之間存在分離的黑線,因此在像素之間不存在光學串擾干擾,只需區(qū)分亮和黑狀態(tài),而不需要考慮太多的相對灰度級.在一位的處理器表決實驗基礎上,可以對位數(shù)眾多的重構運算器的輸出進行表決,這種以基元主光路三模冗余表決的方式能消除類似電路中冗余帶來的串行干擾問題.最后對m位的重構運算器進行了簡要的可靠性估計,可靠性計算與實驗結果表明,在基元主光路出現(xiàn)單故障點的情況下,基于TMR的表決系統(tǒng)能提高三值光學處理器運算輸出的可靠性與正確性,進而降低重復計算的可能,提升了系統(tǒng)運行效率.