雲端伺服不關機 - Intel® CPLD實現不斷電更新韌體技術
Cloud Computing
使用網路頻繁的交換資料來達到資訊的便利性與即時性已經成為現代人的一個『民生』必需品,相對雲端伺服器的性能與效率就十分重要了,且簡單介紹所謂雲端伺服器可提供便利且快速的雲端計算平台,大致上分有三大類 :
- 共用雲端 : 特定雲端供應商提供使用者整合性的平台與應用程式給所有的雲端使用者。
- 私人雲端 : 雲端內只有一個使用者,且可在雲端平台上進行設計客製化的應用軟體。
- 混合雲端 : 包含有共用雲端與私人雲端兩大優點。
以上雲端計算方式可依據使用者的使用情境去選擇適合的建構模式,故雲端伺服器的重要性是與日俱增
Intel® CPLD
在伺服器中,Intel® CPLD扮演著電源管理的重要關鍵元件,Intel® CPLD的優勢在於能彈性規劃架構即時更新韌體即可達到預期中的功能,但在雲端伺服器中如需要更新韌體在一般的使用狀態下必須將伺服器斷電後重啟才能跟新,但假使能在不斷電的情況下將韌體跟新且不影響伺服器的運作,即可達到不關機及更新的便利功能,在這個資訊的時代更為重要
Hitless Update
Intel® CPLD MAX 10 可支持系統管理、電源管理和讓使用者編輯邏輯閘的全方位理想解決方案。且在系統管理與電源管理的使用中,當需要更新韌體時是可以利用在後台更新系統韌體的方式而不影響相關的控制應用電路即是所謂Hitless Update的功能。以下將示範一個在Intel® CPLD的設計,在不影響 IO 狀態和內部邏輯情況下更新韌體的功能,FPGA 邏輯內主要由使用者設計的架構和Intel IP 「GPIO Lite Intel FPGA IP」所組成如圖一
主要原理為利用GPIO Lite Intel FPGA IP將使用者設計的內部邏輯架構與外部IO 狀態做分離,並在後台更新系統韌體時Freeze住外部IO 的狀態,來達到不影響與Intel® CPLD相關的控制應用電路即是所謂Hitless Update的功能。以下將說明其Hitless Update的過程。
The process of Hitless Update
在實現Hitless Update,主要包括三個步驟:
(1). 準備CFM background update using the real time ISP feature的Jam file。
使用Quartus 軟體內的Programmer軟體->增加pof 燒入文件至軟體內->並勾選「Enable real-time ISP to allow background programming when available」。請參考圖二的設定。
並通過以下路徑建立Jam file : File -> Create JAM, JBC, SVF or ISC file... 圖 3 所示。
然後出現圖4的窗口。您可以定義名稱和路徑,單擊確定。然後 Jam 文件將保存在您定義的路徑下。
(2) 使用Jam file 後台更新系統韌體。
Quartus_jli: quartus_jli.exe –aprogram –edo_bypass_ufm –edo_real_time_isp <filename>.jam
(3) Trigger Hitless Update based on Jam file(使用者編輯)。
CFM後台更新完成後,用戶可以根據自己的需求Trigger Hitless Update。
其流程包括三個步驟。
1. Freeze : Quartus_jli: quartus_jli.exe –afreeze <filename>.jam
在使用者模式下利用GPIO Lite Intel FPGA IP將使用者外部IO 狀態
「Freeze」當下的狀態。
2. Clamp : Quartus_jli: quartus_jli.exe –aclamp <filename>.jam
此模式下會進入Boundary-scan operation,並跟新新的image且進入user
mode,但當下使用者邏輯是處於「Freeze」狀態,故外部IO狀態會持續在
舊有image的狀態。
3. Unfreeze : Quartus_jli: quartus_jli.exe –aunfreeze <filename>.jam
將「Freeze」狀態解除並能看到新的image邏輯輸出。
由上述的演示步驟便可實現在不斷電的情況下將韌體更新且不影響運作,即可達到不關機及更新的便利功能!,您可以註冊Intel 官網帳號來得到更多詳細資料!
參考文獻
[1] What Is Cloud Computing?, intel, https://reurl.cc/eXmZEW
[2] Intel® MAX® Series FPGA and CPLD, intel, https://reurl.cc/RvbQbg
[3] Intel® MAX® 10 General Purpose I/O User Guide, intel, https://reurl.cc/V85qDy