胡 國(guó)
(中航工業(yè)西安航空計(jì)算技術(shù)研究所,陜西 西安 710068)
?
基于FPGA的動(dòng)態(tài)重構(gòu)系統(tǒng)重構(gòu)過程研究
胡 國(guó)
(中航工業(yè)西安航空計(jì)算技術(shù)研究所,陜西 西安 710068)
有效融合了專用集成系統(tǒng)(Application Specific Integrated Circuit, ASIC)與通用目的處理器(General Purpose Processor, GPP)優(yōu)勢(shì)的動(dòng)態(tài)可重構(gòu)系統(tǒng),以其良好的靈活性、可重構(gòu)性以及優(yōu)異的計(jì)算性能,逐步應(yīng)用于從嵌入式系統(tǒng)到高性能計(jì)算的許多領(lǐng)域。針對(duì)動(dòng)態(tài)可重構(gòu)系統(tǒng)的重構(gòu)過程控制進(jìn)行了研究,詳細(xì)分析了動(dòng)態(tài)重構(gòu)過程中的一些潛在問題。針對(duì)重構(gòu)過程中重構(gòu)模塊與固定模塊之間的耦合問題和數(shù)據(jù)交互問題,提出了一種新的動(dòng)態(tài)重構(gòu)過程通信控制機(jī)制。該機(jī)制將重構(gòu)過程劃分為重構(gòu)前、重構(gòu)中和重構(gòu)后3個(gè)階段,并在各個(gè)階段對(duì)數(shù)據(jù)交互和通道隔離進(jìn)行了有效控制。實(shí)驗(yàn)驗(yàn)證表明,該機(jī)制能夠有效保證動(dòng)態(tài)重構(gòu)過程的正確性。
動(dòng)態(tài)可重構(gòu)系統(tǒng);重構(gòu)過程;耦合;數(shù)據(jù)交互;通信控制機(jī)制
近年來,基于FPGA的可重構(gòu)計(jì)算以其開發(fā)靈活、運(yùn)算實(shí)時(shí)快速等特點(diǎn),逐步成為電子計(jì)算的研究熱點(diǎn)[1]。作為一種全新的計(jì)算方式,可重構(gòu)計(jì)算符合半導(dǎo)體技術(shù)的發(fā)展趨勢(shì)。它結(jié)合通用化和專用化的優(yōu)點(diǎn),利用可編程器件可多次重配置邏輯單元功能和互聯(lián)的特性,可以根據(jù)計(jì)算任務(wù)配置計(jì)算資源,兼具了硬件實(shí)現(xiàn)的高性能和軟件實(shí)現(xiàn)的靈活性。
基于可重構(gòu)計(jì)算技術(shù)實(shí)現(xiàn)的動(dòng)態(tài)可重構(gòu)系統(tǒng),可簡(jiǎn)單定義為至少包含一個(gè)可重構(gòu)硬件模塊的計(jì)算系統(tǒng)。該硬件模塊的功能能夠被最終用戶修改,修改過程主要通過對(duì)系統(tǒng)中的可編程邏輯器件進(jìn)行部分動(dòng)態(tài)重構(gòu)來實(shí)現(xiàn)。動(dòng)態(tài)可重構(gòu)系統(tǒng)可以在只增加少量硬件資源的情況下,將軟件實(shí)現(xiàn)和硬件實(shí)現(xiàn)的優(yōu)點(diǎn)合二為一。它的出現(xiàn)使傳統(tǒng)意義上硬件和軟件的界限變得模糊,硬件系統(tǒng)得以軟件化。動(dòng)態(tài)可重構(gòu)系統(tǒng)自被提出以后,就在一些數(shù)據(jù)密集應(yīng)用領(lǐng)域顯示出了強(qiáng)大的計(jì)算性能和數(shù)據(jù)處理能力,例如軍事目標(biāo)匹配、定制大數(shù)運(yùn)算、圖形圖像處理、聲納波束合成、基因組匹配等。
隨著動(dòng)態(tài)重構(gòu)技術(shù)的成熟,動(dòng)態(tài)可重構(gòu)系統(tǒng)可以在運(yùn)行過程中在不影響其他功能模塊正常運(yùn)行的情況下實(shí)現(xiàn)重構(gòu)區(qū)域功能切換。在動(dòng)態(tài)重構(gòu)系統(tǒng)中,應(yīng)用任務(wù)被劃分為兩類:軟件任務(wù)和硬件任務(wù),其中硬件任務(wù)又可以分為靜態(tài)區(qū)域任務(wù)和重構(gòu)區(qū)域任務(wù)兩種。軟件任務(wù)執(zhí)行在FPGA的內(nèi)嵌處理器核或外部處理器上,靜態(tài)區(qū)域任務(wù)執(zhí)行在FPGA靜態(tài)區(qū)域上,重構(gòu)區(qū)域任務(wù)執(zhí)行在FPGA的可重構(gòu)區(qū)域上。動(dòng)態(tài)可重構(gòu)系統(tǒng)可以為用戶提供統(tǒng)一的軟/硬接口、統(tǒng)一的軟/硬件函數(shù)庫,用戶可以像調(diào)用軟件任務(wù)一樣,通過處理器實(shí)時(shí)靈活地調(diào)用重構(gòu)區(qū)域任務(wù)。這種設(shè)計(jì)將傳統(tǒng)的硬件任務(wù)軟件化,使得用戶同時(shí)獲取了硬件的高性能和軟件的高靈活,為用戶提供了更多的設(shè)計(jì)探索空間[2]。
動(dòng)態(tài)重構(gòu)過程是指FPGA的內(nèi)嵌處理器核或外部處理器發(fā)出重構(gòu)命令到重構(gòu)完成可重構(gòu)區(qū)域開始正常工作的這段時(shí)間。動(dòng)態(tài)重構(gòu)過程主要實(shí)現(xiàn)可重構(gòu)區(qū)域功能的刷新,需要關(guān)注其正確性以及實(shí)時(shí)性。正確性主要包括重構(gòu)過程中重構(gòu)區(qū)域自身的正確配置和重構(gòu)區(qū)域與靜態(tài)區(qū)域之間的有效隔離;實(shí)時(shí)性主要是指在重構(gòu)時(shí)間開銷上實(shí)現(xiàn)優(yōu)化。動(dòng)態(tài)重構(gòu)過程的安全有效控制是保證動(dòng)態(tài)可重構(gòu)系統(tǒng)功能切換以及正確運(yùn)行的基本條件。
為了保證可重構(gòu)區(qū)域內(nèi)部電路的刷新不影響基本系統(tǒng)的正常運(yùn)行,Xilinx部分重構(gòu)設(shè)計(jì)工具PlanAhead在布局階段按照用戶定義的區(qū)域約束文件,標(biāo)記可重構(gòu)區(qū)域的范圍,進(jìn)行重構(gòu)模塊的放置。但是,僅僅依靠設(shè)計(jì)工具的物理層布局約束是遠(yuǎn)遠(yuǎn)不夠的,動(dòng)態(tài)重構(gòu)系統(tǒng)在重構(gòu)過程中依然存在著一些潛在問題。
2.1 重構(gòu)模塊和固定模塊之間的耦合問題
盡管Xilinx部分重構(gòu)設(shè)計(jì)工具PlanAhead在靜態(tài)區(qū)域和重構(gòu)區(qū)域之間自動(dòng)插入了固定的特殊布線通道,但在動(dòng)態(tài)重構(gòu)過程中,仍需關(guān)注兩個(gè)區(qū)域之間的故障傳播風(fēng)險(xiǎn)。靜態(tài)區(qū)域和重構(gòu)區(qū)域之間的耦合主要包括解耦合邏輯以及重構(gòu)控制邏輯兩部分。除了按照部分重構(gòu)用戶手冊(cè)[3]的建議,利用寄存器在兩個(gè)區(qū)域之間進(jìn)行解耦合外,還需要采取相應(yīng)的設(shè)計(jì)手段,避免動(dòng)態(tài)重構(gòu)過程中區(qū)域之間的故障傳播風(fēng)險(xiǎn),保證重構(gòu)過程的正確性。設(shè)計(jì)手段主要包括以下兩點(diǎn):
(1)重構(gòu)過程中隔離重構(gòu)區(qū)域
在動(dòng)態(tài)重構(gòu)過程中,為避免與重構(gòu)模塊相連接的其他模塊受到該任務(wù)輸出有誤或者未知信號(hào)的影響,導(dǎo)致不可預(yù)知的故障,應(yīng)該在靜態(tài)區(qū)域和重構(gòu)區(qū)域之間的接口處添加相應(yīng)的傳輸使能控制通道以控制重構(gòu)區(qū)域的信號(hào)輸入和輸出。動(dòng)態(tài)重構(gòu)過程中,傳輸使能控制通道無效,重構(gòu)區(qū)域和靜態(tài)區(qū)域之間無法進(jìn)行交互,實(shí)現(xiàn)有效隔離,避免了重構(gòu)區(qū)域和靜態(tài)區(qū)域之間故障傳播的可能。
(2)重構(gòu)結(jié)束后復(fù)位重構(gòu)區(qū)域
由于動(dòng)態(tài)部分重構(gòu)不同于靜態(tài)重構(gòu),在配置過程中不包含特定的功能,例如全局置位-復(fù)位(Global Set-Reset,GSR)或者全局三態(tài)(Global Tri-State,GTS)來強(qiáng)制可重構(gòu)邏輯恢復(fù)到初始狀態(tài)。位于可重構(gòu)區(qū)域的硬件電路刷新之后,因?yàn)樾逻壿嫷臓顟B(tài)和行為不可預(yù)知,可能會(huì)向靜態(tài)區(qū)域輸出一些無用信號(hào)造成系統(tǒng)故障。所以每一次在重構(gòu)結(jié)束后不論是I/O還是內(nèi)部邏輯,均需要進(jìn)行一次有效復(fù)位以確保其恢復(fù)到初始狀態(tài)。
2.2 重構(gòu)模塊與固定模塊之間的數(shù)據(jù)交互問題
在動(dòng)態(tài)可重構(gòu)系統(tǒng)中,重構(gòu)模塊通常要從固定模塊接收計(jì)算數(shù)據(jù),完成計(jì)算任務(wù)后又將計(jì)算結(jié)果傳輸回固定模塊。這樣就產(chǎn)生了重構(gòu)模塊與固定模塊之間的數(shù)據(jù)交互問題。
重構(gòu)區(qū)域與靜態(tài)區(qū)域之間接口中的數(shù)據(jù)通道是重構(gòu)模塊與固定模塊進(jìn)行數(shù)據(jù)交互的唯一途徑。重構(gòu)模塊與固定模塊的數(shù)據(jù)交互過程如圖1所示。首先固定模塊將需要計(jì)算處理的數(shù)據(jù)發(fā)送到源數(shù)據(jù)通道。重構(gòu)模塊從源數(shù)據(jù)通道讀取數(shù)據(jù),然后進(jìn)行計(jì)算,計(jì)算完成以后將結(jié)果數(shù)據(jù)發(fā)送到結(jié)果數(shù)據(jù)通道。最后固定模塊從結(jié)果數(shù)據(jù)通道接收計(jì)算處理結(jié)果。
圖1 數(shù)據(jù)交互過程圖
在重構(gòu)過程中,重構(gòu)模塊與固定模塊之間需要進(jìn)行有效隔離,不能進(jìn)行數(shù)據(jù)交互。但在重構(gòu)過程前后,重構(gòu)模塊與固定模塊之間的數(shù)據(jù)交互存在以下一些潛在問題:
(1)重構(gòu)前,固定模塊發(fā)起重構(gòu)命令過后,固定模塊繼續(xù)向源數(shù)據(jù)通道發(fā)送數(shù)據(jù);
(2)重構(gòu)前,源數(shù)據(jù)通道仍有一些數(shù)據(jù)還未進(jìn)行計(jì)算,就開始重構(gòu);
(3)重構(gòu)前,重構(gòu)模塊當(dāng)前的計(jì)算還未完成,就開始重構(gòu);
(4)重構(gòu)后,重構(gòu)模塊接收更新前源數(shù)據(jù)通道中殘留的數(shù)據(jù),進(jìn)行無用的計(jì)算;
(5)重構(gòu)后,重構(gòu)模塊在缺省狀態(tài)下輸出一些無用的計(jì)算結(jié)果,傳輸?shù)焦潭K;
(6)重構(gòu)后,結(jié)果數(shù)據(jù)通道中更新前的結(jié)果數(shù)據(jù)還未完全讀回,就被更新后重構(gòu)模塊的計(jì)算結(jié)果覆蓋了。
以上這些問題,會(huì)造成固定模塊與重構(gòu)模塊數(shù)據(jù)交互發(fā)生錯(cuò)誤,增大動(dòng)態(tài)可重構(gòu)系統(tǒng)的計(jì)算錯(cuò)誤率,進(jìn)而嚴(yán)重影響到動(dòng)態(tài)可重構(gòu)系統(tǒng)的正確運(yùn)行。因此,在動(dòng)態(tài)重構(gòu)過程中要對(duì)數(shù)據(jù)交互進(jìn)行嚴(yán)格的控制,避免這些問題的發(fā)生。
針對(duì)重構(gòu)模塊與固定模塊之間的耦合問題以及數(shù)據(jù)交互問題,本文提出一種動(dòng)態(tài)重構(gòu)過程通信控制機(jī)制,可以有效解決重構(gòu)過程中固定模塊與重構(gòu)模塊之間的耦合問題和數(shù)據(jù)交互問題。該通信控制機(jī)制將動(dòng)態(tài)重構(gòu)通信過程劃分為重構(gòu)前、重構(gòu)中和重構(gòu)后3個(gè)階段,并在各個(gè)階段對(duì)數(shù)據(jù)交互和通道隔離進(jìn)行了有效控制。
3.1 動(dòng)態(tài)重構(gòu)過程通信模型
在動(dòng)態(tài)可重構(gòu)系統(tǒng)中,重構(gòu)模塊與固定模塊之間的通信是通過其間的接口來完成的。動(dòng)態(tài)重構(gòu)過程通信模型主要包括源數(shù)據(jù)通道、結(jié)果數(shù)據(jù)通道、傳輸使能控制通道、中斷控制和復(fù)位控制5個(gè)部分,如圖2所示。其中源數(shù)據(jù)通道用于固定模塊向重構(gòu)模塊發(fā)送需要進(jìn)行計(jì)算處理的源數(shù)據(jù),結(jié)果數(shù)據(jù)通道用于固定模塊從重構(gòu)模塊讀回計(jì)算完成以后輸出的結(jié)果數(shù)據(jù),傳輸使能控制通道用于固定模塊和重構(gòu)模塊的數(shù)據(jù)通道隔離,中斷控制用于響應(yīng)重構(gòu)模塊的中斷請(qǐng)求,復(fù)位控制用于每一次重構(gòu)模塊重配置以后的有效復(fù)位控制。
圖2 動(dòng)態(tài)重構(gòu)過程通信模型
3.2 動(dòng)態(tài)重構(gòu)過程通信控制模式
動(dòng)態(tài)重構(gòu)過程通信控制模式分為搶占式和非搶占式兩種。搶占式通信是指處理器發(fā)起重構(gòu)命令以后,在最短時(shí)間內(nèi)立即進(jìn)行重構(gòu)區(qū)域的功能刷新。非搶占式通信是指處理器發(fā)起重構(gòu)命令以后,需要等待當(dāng)前計(jì)算任務(wù)徹底完成以后,才進(jìn)行重構(gòu)區(qū)域的功能刷新。下面對(duì)這兩種通信控制模式的通信控制過程進(jìn)行具體介紹。
(1)搶占式
動(dòng)態(tài)重構(gòu)過程的搶占式通信控制過程流程圖如圖3所示。
圖3 搶占式流程圖
處理器發(fā)起重構(gòu)命令以后,停止向源數(shù)據(jù)通道發(fā)送數(shù)據(jù)。傳輸使能控制通道關(guān)閉,固定模塊與重構(gòu)模塊進(jìn)入到隔離狀態(tài)。然后,重構(gòu)模塊進(jìn)行重配置。重配置完成以后,清空源數(shù)據(jù)通道和結(jié)果數(shù)據(jù)通道中的所有數(shù)據(jù),傳輸使能控制通道打開,重構(gòu)模塊進(jìn)行有效復(fù)位。有效復(fù)位以后,固定模塊和重構(gòu)模塊恢復(fù)正常通信。
(2)非搶占式
動(dòng)態(tài)重構(gòu)過程的非搶占式通信控制過程如圖4所示。
圖4 非搶占式流程
處理器發(fā)起重構(gòu)命令以后,停止向源數(shù)據(jù)通道發(fā)送數(shù)據(jù)。重構(gòu)模塊繼續(xù)進(jìn)行計(jì)算任務(wù),直到源數(shù)據(jù)通道沒有計(jì)算數(shù)據(jù),并且所有計(jì)算結(jié)果已經(jīng)傳輸?shù)浇Y(jié)果數(shù)據(jù)通道。然后結(jié)果傳輸使能控制通道關(guān)閉,固定模塊與重構(gòu)模塊進(jìn)入到隔離狀態(tài)。重構(gòu)模塊進(jìn)行重配置。重構(gòu)模塊進(jìn)行重配置的同時(shí),固定模塊從結(jié)果數(shù)據(jù)通道讀取計(jì)算結(jié)果。讀取完成以后,確認(rèn)重配置是否完成。完成以后,清空源數(shù)據(jù)通道和結(jié)果數(shù)據(jù)通道中的所有數(shù)據(jù),傳輸使能控制通道打開,重構(gòu)模塊進(jìn)行有效復(fù)位。有效復(fù)位以后,固定模塊和重構(gòu)模塊恢復(fù)正常通信。
動(dòng)態(tài)可重構(gòu)系統(tǒng)可以在只增加少量硬件資源的情況下,將軟件實(shí)現(xiàn)和硬件實(shí)現(xiàn)的優(yōu)點(diǎn)合二為一。它的出現(xiàn)使傳統(tǒng)意義上硬件和軟件的界限變得模糊,硬件系統(tǒng)得以軟件化。本文對(duì)動(dòng)態(tài)重構(gòu)過程中潛在的固定模塊與重構(gòu)模塊的耦合問題、數(shù)據(jù)交互問題進(jìn)行了詳細(xì)分析,提出了一種動(dòng)態(tài)重構(gòu)過程通信控制機(jī)制,在介紹了通信模型的基礎(chǔ)上詳細(xì)分析了搶占式和非搶占式兩種通信模式下的通信控制流程。在實(shí)驗(yàn)驗(yàn)證中,根據(jù)本文提出的動(dòng)態(tài)重構(gòu)過程通信控制機(jī)制設(shè)計(jì)了一種重構(gòu)模塊通信接口,并將該接口應(yīng)用到動(dòng)態(tài)重構(gòu)系統(tǒng)中。實(shí)驗(yàn)結(jié)果表明,重構(gòu)過程通信控制機(jī)制以及重構(gòu)模塊通信接口解決了重構(gòu)模塊與固定模塊之間的耦合問題和數(shù)據(jù)交互問題,有效保證了重構(gòu)過程的正確性。
[1] COMPTO N K, HAUCK S. Reconfigurable computing: a survey of systems and software[J]. ACM Computing Surveys, 1999, 34(2): 171-210.
[2] 魏少軍,劉雷波,尹首一.可重構(gòu)計(jì)算處理器技術(shù)[J]. 中國(guó)科學(xué):信息科學(xué),2012,42(12): 1559-1576.
[3] Xilinx Inc. Partial reconfiguration user guide [EB/OL]. (2011-10-19)[2017-01-01].http://www.xilinx.com.
Research on reconfiguration procedure of dynamically-reconfigurable system based on FPGA
Hu Guo
(Xi’an Aeronautics Computing Technique Research Institute of AVIC, Xi’an 710068, China)
Since dynamically-reconfigurable system effectively integrates the advantages of application specific integrated circuit system and general purpose processor system, it has been progressively used in many fields, such as embedded application and high-performance computation. Reconfiguration procedure control of dynamically-reconfigurable system is discussed in this paper. After some potential problems during the reconfiguration procedure being introduced, a communication control mechanism of reconfiguration procedure is proposed to solve the coupling problem and data interaction problem between reconfiguration module and static module, in which reconfiguration procedure is divided into three stages, then data interaction and channel isolation can be controlled effectively at each stage.The experimental results prove that the communication control mechanism can effectively ensure the correctness of reconfiguration procedure.
dynamically-reconfigurable system; reconfiguration procedure; coupling; data interaction; communication control mechanism
TP302.1
A
10.19358/j.issn.1674- 7720.2017.11.023
胡國(guó).基于FPGA的動(dòng)態(tài)重構(gòu)系統(tǒng)重構(gòu)過程研究[J].微型機(jī)與應(yīng)用,2017,36(11):78-80,84.
2017-01-13)
胡國(guó)(1989-),男,碩士研究生,助理工程師,主要研究方向:計(jì)算機(jī)應(yīng)用。