作者:萊迪思半導體,Shyam Chandra 高可用性系統(tǒng),如服務器、通信網(wǎng)關和基站等需要持續(xù)工作。一旦現(xiàn)場安裝后,就需要通過軟件升級來增強系統(tǒng)功能和修復錯誤。因此,這些系統(tǒng)設計需可以在不中斷其正常運行的情況下進行系統(tǒng)功能更新?删幊踢壿嬈骷≒LD)常被用于支持在系統(tǒng)設計更新。使用PLD的改進后的設計成本更低、使用更方便、性能更強,使得可編程邏輯器件成為這些系統(tǒng)中理想的板上硬件管理器件,可管理板上DC-DC轉換器、監(jiān)測和控制關鍵信號、集合串口通信并執(zhí)行其他內(nèi)務管理功能。 不可或缺的PLD PLD包含一系列可編程功能單元。這些單元的配置和互連實現(xiàn)了板上特定的硬件管理功能。通常情況下,一個軟件設計工具將某個邏輯功能,如電路板硬件管理,轉換為特定PLD的配置位流,用于配置可編程功能單元和互連。配置位流被存儲在可編程邏輯器件的片上配置閃存。當電路板上電后,配置閃存中的內(nèi)容被自動傳輸?shù)狡淦吓渲肧RAM,從而配置可編程功能單元執(zhí)行所需的硬件管理任務。更新硬件管理功能,可使用不同的位流通過后臺隨時加載到配置閃存,無需中斷可編程邏輯器件正在執(zhí)行的硬件管理功能。將新存儲到閃存的配置傳到片上SRAM,電源重啟中斷系統(tǒng)的正常運行(圖1)。 ![]() 圖1:大多數(shù)PLD必須等待電源重啟進行重新配置 在配置過程中保持穩(wěn)定的輸出 高可用性系統(tǒng)不能容忍電源重啟導致的中斷。由于通過可編程邏輯器件的I/O使能板上主ASIC和CPU上的DC-DC轉換器和控制復位信號,在重配置過程中可編程邏輯器件的輸出需保持不變。需要在PLD重配置時保持輸出穩(wěn)定對于應用設計提出了多項挑戰(zhàn)。 萊迪思MachXO2或MachXO3 PLD系列包括的功能可實現(xiàn)零停機更新(圖2)。首先,PLD進行“后臺更新” 通過JTAG、SPI或I2C加載新的配置數(shù)據(jù)到其配置閃存。一旦加載完畢,“TransFR”指令將新的PLD配置從閃存?zhèn)鬏數(shù)絇LD的配置SRAM。執(zhí)行“TransFR”指令的同時觸發(fā)了“保持當前狀態(tài)”功能,確保所有的I/O值在傳輸過程中保持不變。最后,在“邏輯初始化”步驟,狀態(tài)機將開始重新啟動電源管理并復位電源分配。這將導致電源關斷,迫使電路板開始電源上電過程。 ![]() 圖2:采用MachXO2/3無中斷更新I/O 的PLD重配置步驟 使用無中斷更新I/O解決問題 為了支持零停機更新,PLD器件必須要能夠在新鏡像創(chuàng)建的狀態(tài)機處于初始化階段時,使用于控制電源以及其他邏輯信號的輸出保持不變。新算法經(jīng)過初始化之后,它們將取得對于電源和其他邏輯信號的控制。 為了使得關鍵I/O在初始化過程中保持原狀,用戶設計中需要添加“無中斷更新I/O”。如圖3所示,這需要為每個關鍵的輸出添加一個帶鎖存的多路開關。該帶鎖存的多路開關在狀態(tài)機初始化過程中將輸出保持為最后的已知狀態(tài),并在初始化過程完成之后將輸出控制交還給狀態(tài)機。該電路能夠使用“Hitless_IO_Enable”輸入?yún)^(qū)分正常(上電)啟動和重新配置,可避免在正常的上電過程中發(fā)生關鍵輸出I/O值被鎖死的情況。 深入探討 圖3說明了無中斷更新I/O在狀態(tài)機初始化過程中,在新配置被加載到MachXO2/XO3器件配置SRAM時發(fā)揮的作用。 ![]() 圖3:無中斷更新I/O在初始化期間使得關鍵I/O保持最后已知狀態(tài) 為每個輸出添加一個帶鎖存的多路開關,只要多路開關控制輸入為“0”,輸出就保持當前值不變。這就意味著無論狀態(tài)機的輸出狀態(tài)如何,DC-DC轉換器保持“on”(如果先前處于“on”的狀態(tài))。當控制信號為邏輯值“1”時,DC-DC轉換器的狀態(tài)由狀態(tài)機控制。狀態(tài)機通過“正常運行”節(jié)點控制多路開關輸出。芯片最新添加的“Hitless_IO_Enable”輸入可區(qū)分正常的“上電”配置(狀態(tài)機初始化過程中DC-DC轉換器輸出受到控制)和無中斷重新配置流程(狀態(tài)機初始化過程中DC-DC轉換器保持不變)。 假設控制無中斷更新流程的“Hitless_IO_Enable”信號設為“1”。 在初始化之前,狀態(tài)機將“正常運行”信號重設為“0”。帶鎖存的多路開關將忽略來自狀態(tài)機的輸出,并且DC-DC轉換器的“Enable”信號保持不變。 當PLD的邏輯準備好恢復正常運行時,它將“正常運行”信號設為邏輯值“1”(高電平),允許其取得對于DC-DC轉換器的控制。此時電路板的DC-DC轉換器和復位由更新的電源和復位控制狀態(tài)機控制。 實際案例 圖4中的框圖說明了PLD的使用情景,用于對CPU集群(cluster)以及平臺控制中心(Platform Controller Hub, PCH)、底板管理控制器(Baseboard Management Controller, BMC)和主機總線適配器(Host Bus Adapter, HBA)等板級子系統(tǒng)進行供電、監(jiān)控和管理。在此例中,PLD主要負責電路板負載點調壓器的上電和斷電時序,并在電源重啟時將復位和控制信號保持為合適的狀態(tài)。在正常運行期間,PLD監(jiān)控子系統(tǒng)的報警參數(shù)(溫度、電壓、存儲器和I/O故障等)或狀態(tài)變化,同時將控制信號穩(wěn)定保持在合適的狀態(tài)。 ![]() 圖4:集成在PLD內(nèi)適用于機架式服務器的控制/內(nèi)務處理功能 BMC在后臺升級服務器的控制PLD并觸發(fā)“TransFR”指令以使用更新的配置運行PLD。在沒有無中斷更新I/O的情況下,控制和復位信號或是VR(調壓器)信號不能在初始化步驟中保持不變。例如,如果CPU或其外設上的復位信號在重配置過程中發(fā)生變化,將導致無論CPU在執(zhí)行何種功能,都將重新初始化并開始重啟流程。同樣的,如果“Power Enable”信號變化了,調壓器或負載點的電源將被關斷,導致由該調壓器供電的器件進入未知狀態(tài)。這會導致電路板中止運行、丟失或擾亂數(shù)據(jù),甚至對電路板的電子元器件造成物理損害。 為關鍵信號添加無中斷更新I/O機制使得PLD能夠在重新配置的過程中凍結外部傳感和控制信號。如此,服務器的關鍵功能在PLD的常規(guī)維護和升級過程中不會中斷。該功能對于產(chǎn)品開發(fā)也很有用,能夠縮短調試時間或是在安裝機架時構建專用的產(chǎn)品變量。 總結 PLD可作為靈活、高性價比的解決方案實現(xiàn)對于DC轉換器的控制,橋接I/O通道以及執(zhí)行復雜電子系統(tǒng)中的其他板級硬件管理功能。器件支持現(xiàn)場升級,可為制造商提供運行中變更配置所需的靈活性,實現(xiàn)設計錯誤更正或是為產(chǎn)品添加新功能。隨著無中斷更新I/O架構的面世,PLD現(xiàn)在能夠以無差錯、有保證的方式進行重新配置。使用該架構時,設計中門數(shù)量的增加通常少于1%,并且無需外部元器件即可實現(xiàn)。通過實現(xiàn)無需電源重啟、穩(wěn)定可靠的配置變更,無中斷更新邏輯使得CPLD成為網(wǎng)絡、數(shù)據(jù)中心存儲設備以及其他任務導向應用中硬件管理解決方案的理想選擇。 |