計(jì)的快速啟動(dòng)方法與遠(yuǎn)程更新(一))
引言本系列筆記對(duì)Xilinx FPGA快速啟動(dòng)QuickBoot方法實(shí)現(xiàn)遠(yuǎn)程更新進(jìn)行詳細(xì)闡述這些內(nèi)容對(duì)于評(píng)估該方案以及調(diào)試實(shí)際部署過程中出現(xiàn)的問題至關(guān)重要。1. 概 述Xilinx FPGA 的一大核心優(yōu)勢(shì)在于其遠(yuǎn)程更新能力。該功能支持對(duì)已部署的系統(tǒng)進(jìn)行設(shè)計(jì)補(bǔ)丁更新或功能升級(jí)。本應(yīng)用筆記提供了一套解決方案實(shí)現(xiàn)穩(wěn)定的現(xiàn)場(chǎng)更新。該套解決方案被統(tǒng)稱為快速啟動(dòng)QuickBoot方法。2. 介 紹圖 1 展示了一種具備 FPGA 遠(yuǎn)程更新功能的系統(tǒng)架構(gòu)。如圖所示新FPGA比特流可以通過以太網(wǎng)、PCIe、USB接口或者USB存儲(chǔ)器、SD卡等多媒體存儲(chǔ)卡實(shí)現(xiàn)比特流傳輸。圖1FPGA 遠(yuǎn)程更新功能的系統(tǒng)架構(gòu)Xilinx 快速啟動(dòng)QuickBoot方法支持 7 系列所有 FPGA內(nèi)置遠(yuǎn)程更新故障恢復(fù)機(jī)制可回退至經(jīng)驗(yàn)證可用的 “可靠比特流”無論是更新比特流還是可靠比特流均可實(shí)現(xiàn)快速配置。另外QuickBoot兼容多種配置模式包括SPI 模式、BPI模式、加密比特流以及多 FPGA 配置菊花鏈。3. 傳統(tǒng)遠(yuǎn)程更新的方案面向可遠(yuǎn)程更新 FPGA 的傳統(tǒng)方案其設(shè)計(jì)思路是在Flash閃存中劃分出專用保留區(qū)域用于存儲(chǔ)以下兩類內(nèi)容■ 升級(jí)比特流■ 經(jīng)驗(yàn)證可用的 “可靠比特流”黃金比特流或出廠默認(rèn)比特流該方案會(huì)部署一套遠(yuǎn)程編程機(jī)制通過這一機(jī)制將新的或增強(qiáng)版比特流燒錄至升級(jí)比特流存儲(chǔ)區(qū)。FPGA 在啟動(dòng)時(shí)優(yōu)先采用該升級(jí)比特流完成配置配置過程如圖2所示。圖2傳統(tǒng)故障回退多重啟動(dòng)的閃存組成與配置方法傳統(tǒng)遠(yuǎn)程更新方案會(huì)采用 FPGA 內(nèi)置的多重啟動(dòng)MultiBoot 與故障回退Fallback 功能。其中多重啟動(dòng)功能支持 FPGA 從閃存的指定地址選擇性加載比特流當(dāng) FPGA 檢測(cè)到配置錯(cuò)誤遠(yuǎn)程更新流程失敗或被中斷時(shí)故障回退功能會(huì)將 FPGA 復(fù)位并從閃存的零地址重新嘗試配置并用黃金比特流完成配置。通常情況下黃金比特流會(huì)被設(shè)置為不可修改狀態(tài)以確保其在任何場(chǎng)景下都能保持可靠的可用狀態(tài)。注意在故障回退過程中FPGA 會(huì)忽略熱啟動(dòng)跳轉(zhuǎn)序列。故障回退多重啟動(dòng)方案采用了直接覆蓋升級(jí)比特流的更新方式與順序嘗試--恢復(fù)的配置機(jī)制。FPGA 的配置邏輯獨(dú)立負(fù)責(zé)解決所有編程錯(cuò)誤或流程中斷問題。FPGA 優(yōu)先嘗試從升級(jí)比特流加載配置若檢測(cè)到配置錯(cuò)誤則啟動(dòng)故障回退機(jī)制基于可靠比特流重新完成配置。由于多了一次初始的配置嘗試故障回退場(chǎng)景下的配置耗時(shí)可達(dá)標(biāo)準(zhǔn)配置耗時(shí)的兩倍。4. 快速啟動(dòng)QuickBoot方法遠(yuǎn)程更新方案4.1 快速啟動(dòng)系統(tǒng)的整體架構(gòu)快速啟動(dòng)QuickBoot方法通過微調(diào)比特流更新流程的編程算法將編程錯(cuò)誤與中斷的恢復(fù)職責(zé)轉(zhuǎn)移至編程操作環(huán)節(jié)來承擔(dān)。該方法將編程方式與一種基于專用配置頭的特殊配置方法相融合形成一套完整的遠(yuǎn)程更新方案。此方案兼具高可靠性可兼容多種配置方案變體且在所有場(chǎng)景下均能實(shí)現(xiàn)快速配置??焖賳?dòng)系統(tǒng)的整體架構(gòu)詳見圖 3。圖3QuickBoot 遠(yuǎn)程更新解決方案生態(tài)系統(tǒng)4.2 QuickBoot配置方法圖4展示了面向遠(yuǎn)程更新的快速啟動(dòng)QuickBoot配置方法。圖4面向遠(yuǎn)程更新的快速啟動(dòng)QuickBoot配置方法快速啟動(dòng)QuickBoot方案在閃存中包含以下組成部分■ 專用快速啟動(dòng)頭文件■ 黃金比特流鏡像存儲(chǔ)區(qū)■ 升級(jí)比特流鏡像存儲(chǔ)區(qū)快速啟動(dòng)頭文件的子組件進(jìn)一步細(xì)分為■ 關(guān)鍵切換字■ 熱啟動(dòng)跳轉(zhuǎn)序列關(guān)鍵切換字是快速啟動(dòng)QuickBoot配置方法的核心所在。該關(guān)鍵切換字僅有開啟ON和關(guān)閉OFF兩種狀態(tài)當(dāng)切換字處于開啟狀態(tài)時(shí)FPGA 加載升級(jí)比特流反之當(dāng)切換字處于關(guān)閉狀態(tài)時(shí)FPGA 則加載可靠比特流??焖賳?dòng)QuickBoot配置方法會(huì)在配置流程的第一步通過關(guān)鍵切換字快速判定需要加載的比特流類型。隨后FPGA 便從選定的比特流存儲(chǔ)區(qū)開始執(zhí)行標(biāo)準(zhǔn)的配置流程。歡迎關(guān)注FPGA技術(shù)實(shí)戰(zhàn)公眾號(hào)喜歡就多多轉(zhuǎn)發(fā)吧!