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