半導體元件易於發生故障,即便是在供應商對半導體元件進行測試、封裝和交貨之後也不例外。半導體元件在系統中發生故障的主要因素包括電氣、環境和機械引發的故障,由於在電氣或電子設計階段減緩機械故障幾乎不可能,因此本文主要討論電氣和環境壓迫問題。
減緩故障主要有兩種方式--避免故障和容忍故障。避免故障即是確保系統在參數範圍內運作,永遠不出現故障狀況,不過,故障必然會發生,因而這是一個無法達到的保證,並只會在如小型消費性產品這一類故障無關重要的系統中有效。對需要較高運作保障水準的設計,如十分重視安全的網路系統,容忍故障就是解決方法。
容忍故障就是指儘管發生故障,系統仍然能夠正常運作。藉由容忍故障提高可靠性的一個常用的有效方法是在系統中採用多個冗餘元件,如果一個元件失效,則切換到另一個元件工作。這需要某種形式的智慧功能,以便確定系統是否或何時發生故障,並且以受控制的方式在冗餘元件之間進行功能切換。
何謂高可用性系統?現有的系統須不惜任何代價實現100%時間運作,可能就是一個高可用性系統。產品可能必須「始終運行」(Always On),且具有「五個九的可用性」(在99.999%的時間都能工作),或者設計規範中可能有「關鍵任務」的描述。若設計是否成功是用在時間內的故障(Failure In Time, FIT)指標衡量,則工程師首先須考慮高可用性設計。
可靠度為系統可用性唯一指標
任何系統部件都不大可能達到100%可靠,但是只要使用最好的設計技術,就有可能實現宣稱達到某些(如果不是全部)設計標準的完整系統。因而在高可用性系統中,可靠性最重要的考慮因素,可分為四大項,包括電源管理、配置和重置管理、環境管理與系統支援功能的可靠性,系統開發業者可針對上述因素,進行調整,以研發具備高可靠性的產品。
即使是世界上最好的系統設計,由於內部或外部因素,系統總會不可避免地可能在其使用壽命的某個時間內發生某種形式的故障。系統管理的任務就是在故障發生後不久,甚至在故障發生前,盡可能減小或減緩故障的影響,最理想的情況則是在故障發生前,系統便已防止其發生。
故障有兩個主要來源,一個來源是可能可控制的內部因素;另一個是不可控制的外部來源。內部因素包括元件、電路板故障、不良的環境條件和電源故障。外部錯誤來源可能是單事件翻轉或對系統設計和資料安全的攻擊(逆向工程、竄改或資料的收集和存取)引起的軟錯誤和硬錯誤,而且在本質上不可控制。
上電順序避免湧電流效應
系統管理解決方案的最重要功能是控制電路板或整個系統的電源系統。為建構可靠的系統,工程師自然須使用複雜的元件,通常在一塊電路板上混合使用現場可編程閘陣列(FPGA)、微處理器(MPU)、特定應用積體電路(ASIC)和特定應用標準產品(ASSP)。這些元件大部分需要不同的電源實現其全部功能,通常這些電源須以預先確定的協調順序施加,稱上電順序。合適的上電順序還可限制任何可能對系統電源帶來壓迫的湧入電流效應,使用一個可程式元件來打開或關閉線性穩壓器或負載點(POL)電源,就可以實現上電順序。
現在有兩種POL,類比POL(APOL)和數位POL(DPOL),這兩種POL非常相似,均針對指定的電路板區段提供本地供電,可通電(打開電源)並且監視各個電源。圖1所示為兩種POL的例子,本質上DPOL增加I2C匯流排,同時實施PMBus協定子集的APOL,而POL還可以用於滿足任何受控制的關電順序要求。
|
圖1 APOL與DPOL電源架構範例 |
電源順序是藉由使用某種形式的可程式元件控制這些POL所實現,通常使用一個微控制器(MCU)或一個可編程邏輯元件(PLD),或同時使用兩種元件。除以特定的順序上電外,還存在電源關電順序將造成不同情況的挑戰,尤其是在可靠性和資料完整性比受控制關斷重要的情況下。
|
圖2 上電順序--示波器觀察 |
在設計電源管理系統時,最重要的是要保障控制電路板上電順序的元件是第一個被啟動的元件,因而須進行配置的傳統靜態隨機存取記憶體(SRAM)FPGA並不是理想的選擇。另外,在開始執行設計的功能前須運行啟動程式碼的微處理器或微控制器也不是好選擇,最適合這項任務的元件是PLD,因為即使在掉電時,PLD也可保持其內容(非揮發性),只需要單一主電源,一旦施加電源就會立即啟動。
複雜元件的最後一個特性是消耗相當多的電力,如果工程師未對這些元件的電源供電進行排序,湧入電流可能會是運作電流的十倍。藉由對供電進行順序,暫態電流可以按時間間隔進行處理,從而能夠使用較便宜的較穩健的電源解決方案,圖2和圖3所示為目測觀察上電順序的可選方法。
|
圖3 上電順序觀察 |
系統針對POL進行監測
一旦系統上電並正常運行,電源管理電路的任務就轉變為監測和應付電壓、電流或溫度的任何變化,這些變化可能是故障或即將發生的故障的早期跡象。POL通常具有一個感測接腳,可顯示在POL調節一側的電源的狀態,只要具有充足的輸入/輸出(I/O),就可方便對POL進行監測。
然而,因為藉由數位匯流排報告的電壓精度,可能沒有達到系統的要求,因此工程師可能希望使用一個數位訊號處理器(DSP)提供APOL甚至DPOL的附加冗餘輸出電壓監測。
若檢測到電源故障,系統將會觸發某種形式的動作,這取決於警報的嚴重程度。這些錯誤可由系統的本身直接處理,或者可能須從主機(通常是相連的)進行遠端處理。這些錯誤可能觸發電源的本地調節、開始重置或遠端診斷,或者在本地處理器的控制下,將處理轉移至系統中的冗餘電路板。高可用性系統通常在多插卡系統中配置冗餘插卡,以提高可靠性。
當正在開發的產品規範和實施方案不斷演進時,系統管理解決方案可能需要在設計階段支援改變上電順序的要求。此外,在實施系統管理解決方案控制新進入市場的元件時,元件全部上電順序和重置條件可能並未全部列出。在設計、開發、定義、測試和現場遠端操作期間,系統管理控制器必須適應實際的變化情況。
電源餘量模擬過/欠壓運作狀況
在系統中使用POL的便利之處是能夠在開發階段測試過程中,單獨改變電源的輸出電壓。這種電源餘量可讓設計人員模擬過壓和欠壓運作,以便檢查設計在所有運作條件下的穩健性。
電源邊際量也可在生產測試中進行,以便篩除邊緣元件和/或電源。可使用某種形式的POL或APOL實施邊際量,在I2C匯流排上使用PMBus指令來實現,或者使用數位類比轉換器(DAC)於DPOL。由於要找到具有多個DAC的單晶片元件比較困難,通常使用基於脈衝寬度調變(PWM)的DAC元件。
重置管理確保元件上電順序正確
許多元件在工作之前,需要某種形式的上電配置。FPGA並非需要這一步驟工作的唯一元件,DPOL、處理器、ASSP和ASIC通常均需要某種形式的配置,以實現正確系統運作。系統管理員可以控制這個過程,存取記憶體取得資料和控制訊號,將元件鏡像轉到進行配置的元件中。理想而言,一個系統管理解決方案將具有足夠多的晶片內非揮發性記憶體來滿足這些要求,不過實際上並非可盡如人願。
DPOL在正確運作前須進行燒錄,亦即在電源正確運作之前,須將輸出電壓、調整值和警報臨界值等參數燒錄到元件。工程師可在將DPOL安裝在電路板上前預先燒錄,若系統管理控制器嵌入在非揮發性記憶體中,可進行系統內編程。對於系統中元件的上電順序,特定元件的電源順序十分重要,元件開始運作的順序會造成不同的效果。通常在順序/配置階段,這些元件處於重置狀況,直到配置完成,還可以使用系統管理器控制重置順序。
隨著越來越多的系統(包括高可用性系統)部署在偏遠地點,系統遠端編程成為一項要求,而不是「有也不錯」的特色。在理想情況下,一個應用內編程(IAP)介面可讓系統管理器和系統本身進行重新燒錄,藉由提供一個埠進行獨立的軟體、韌體和資料的編程,系統可安全地進行遠端系統故障校正,並使用多種冗餘的硬體或功能實現或超越可靠性目標。
有效環境管理預先預防系統故障
系統發生故障(或潛在故障)的另一個徵兆是溫度,意外的溫度變化可能是潛在故障,或者是故障已發生的主要跡象。溫度監控應當能夠以本地方式發起警報,或者以遠端方式向系統主機報告。溫度改變的方式也可提供寶貴的資訊,能協助分析故障機制,藉由將環境監控結果保存在非揮發性記憶體中,可積累歷史事件的資料用於系統故障實例的驗證分析。
許多高可用性系統安裝在使用風扇進行強制冷卻的機架中,而溫度及風扇消耗電流的改變可能代表風扇發生故障。藉由採用遠端感測和回應功能,其他風扇可加速運轉,或者讓冗餘風扇開始運轉,從而對故障進行彌補。此外,採用閉迴路實施方案的風扇轉速(RPM)可進行優化,減少大型系統的用電量,同時降低雜訊。
若故障發生,監控所有這類資料非常有用,然而,除非採用某種形式的資料記錄,否則系統發生故障前和期間的實際狀況無法知曉。定期將環境監測結果寫入非揮發性記憶體中,將對於確定故障的起因大有幫助,資料記錄也常用於檢測發展趨勢,可以確定可能引起故障的問題並且採取措施,以便在系統發生故障之前進行減緩。
在所有可能發生的故障狀況中,那些由於外部單事件翻轉(SEU)而引起的故障最難發現。影響電子元件的SEU故障有軟錯誤和硬錯誤兩種。軟錯誤是由於高能中子影響資料記憶體上的電荷而引發的,而不會引起對資料完整性造成持久損壞,軟錯誤會給出反常的結果,但是藉由設計,採用故障容忍,可減緩軟錯誤造成的影響。
硬錯誤也是由於高能中子引起的電荷變化,但是,在這種情況下,硬錯誤影響作為設備配置記憶體部件的SRAM單元,並引起元件的錯誤運作。硬錯誤不是暫態,亦非資料記憶體的錯誤,所以無法藉由資料完整性檢測清除,須直到檢測和清除之後,錯誤方能消除。檢測和清除錯誤通常是建基於Checksum的形式,並且需要一定的時間。此外,能夠校正而不須將整個元件(可能是系統)進行重置和重配置的錯誤數目有限。
為確保硬錯誤不會發生,須使用具有非揮發性配置記憶體的元件。中子事件是由於宇宙輻射或封裝中的污染物而發生,但其不足以改變電荷而影響非揮發性存儲單元,這使得快閃FPGA對於韌體錯誤具有免疫能力。
內建快閃記憶體 FPGA元件不受SEU影響
許多微控制器的通用I/O數量有限制,尤其是在開始考慮正確地控制電源順序和監控、連接數位化感測器資料、重置和配置,以及系統的遠端編程的需求時。即使一個具有多種元件的簡單的系統管理解決方案可能控制十二個元件,以及用於多個記憶體、資料轉換器和資料面元件的介面(FPGA通常須要在上電時進行配置)。通常使用一個獨立PLD或FPGA實現I/O擴展,從而增加電路板空間和成本。
最終,在實施系統管理解決方案時,系統管理控制器是第一個進行「運作」的元件,可確保電路正確地啟動,這個元件應不須長配置週期或複雜的上電順序,因此只有具備即時運作特性的非揮發性FPGA解決方案可達到這個目標。以快閃為基礎的解決方案的附加優勢是單事件翻轉免疫能力。
cSoC具備客製化優勢
系統管理解決方案的需求廣泛,可能需要很大的電路板空間才可滿足,系統控制器解決方案同時適合用作微控制器、類比電路模組和FPGA元件。對於系統管理解決方案,減少電路板空間的最好方法是減少元件數目,同時不損失功能性,因此,整合一個微處理器子系統、可配置類比模組和FPGA架構的元件是自然而然的選擇。
業者推出的可客製化系統級晶片(cSoC)整合FPGA、安謀國際(ARM)Cortex-M3處理器和可程式類比元件的產品(圖4),提供完全的客製化、IP保護和易用性。cSoC建基於專有的快閃製程,是需要真正的系統級晶片解決方案的硬體和嵌入式設計人員理想選擇。其提供超越傳統固定功能微控制器的更高靈活性,並大幅降低傳統FPGA元件上軟處理器核心的成本。
|
圖4 整合式解決方案架構圖 |
整合多種元件,以及混合訊號電源管理參考設計的cSoC,提供簡易實現上電順序系統的功能。參考設計支持多達六十四個混合APOL和DPOL通道、用於類比電源的開迴路和閉迴路邊際量及調節,以及晶片外狀態和警報標誌的定義。可藉由圖形化使用者介面(GUI)完全設定參考設計的參數,可讓設計人員根據自己的需求精確定義電源系統。
GUI可讓用戶完成的工作還包括,設定每個電源軌的電壓臨界值和遲滯、選擇類比軌的調節、選擇用於數位應用的PMBus位址、指定用於上電和掉電的時間順位和延遲,以便實現所需的上電順序,以及定義警報標誌出現時的操作。
採用Scope View模式,工程師可檢查GUI設定的電源定時和順序,並可使用JTAG或I2C埠仔細檢查硬體中的狀況,以及設定用於開發和電源邊際量的電壓。
滿足高可用性系統種種需求 cSoC邁向高整合
高可靠性和高可用性系統的部署數量日漸增多,這些系統需要100%的正常運作時間,這就是說,用戶永遠不會經歷無法存取資料的情況。雖然沒有系統部件能確保100%的時間正常運作,系統管理解決方案的目標是在系統層面緩減和控制故障。理想的解決方案是記錄足夠的資料,讓系統控制器確定是否將發生故障,在故障發生之前進行檢測,也可讓控制器採取措施並防止故障引起任何停機時間。
為達到這些設計目標,典型的系統管理解決方案具有三個互相作用的部分,包括用於遠端系統通訊的微控制器或類似元件、提供靈活性和上電即用特性的可程式邏輯元件,以及某些用於監控溫度、電壓和電流的零散類比元件。cSoC在單一元件中整合微處理器子系統、非揮發性FPGA模組和一個可程式類比構件,能滿足系統管理解決方案的全部要求,如從上電順序、溫度監測直到系統內重新編程,也可使用的系統管理參考設計和GUI,能夠協助工程師綜合系統管理設計。
(本文作者為美高森美SoC部門通訊產品行銷總監)