李貞妮,李晶皎,王 驕,金碩巍
(東北大學 信息科學與工程學院,沈陽 110819)E-mail:lizhenni@ise.neu.edu.cn
在實際的工程中,尤其是基于異步片上網絡的智能信息處理嵌入式系統中,例如視頻采集和處理系統,系統內部的各個功能模塊往往需要工作在不同頻率的時鐘域中.因此,不同時鐘頻率的IP核之間如何通信,即異步片上網絡的通信機制及其設計方法近年來成為了片上網絡的研究熱點.將多時鐘的全局異步局部同步(Globally Asynchronous and Locally Synchronous,GALS)片上網絡應用于視頻處理領域,對異步片上網絡的信息交互能力提出了更高的要求.目前已有通信機制的數據傳輸性能有限,無法充分滿足基于異步片上網絡的視頻處理系統對大數據量實時傳輸的要求.因此,如何在減小通信延遲的基礎上實現異步片上網絡大數據量的信息傳輸是目前的技術難點.
基于GALS設計思想的片上網絡,不同的路由節點可以掛載具有不同工作頻率的處理器或IP核,即在片上網絡中數據包的通信是跨時鐘域的.數據包從源節點傳輸到目標節點,可能要經歷多個時鐘域,而不同時鐘域的時鐘源之間在頻率和相位上均存在著一定的差異.如果兩個時鐘信號的敏感沿非常接近且超過允許額度,電路中的觸發器就會進入某個不確定的狀態,即亞穩態[1,2].當觸發器進入亞穩態后,無法預測輸出電平,也無法預測何時輸出能夠穩定在正確的電平上.在亞穩態期間,觸發器輸出中間電平或者振蕩狀態,輸出電平沿信號通道上的各個觸發器級聯式地傳播下去[3-5],導致連鎖反應,引起整個片上網絡系統的功能混亂.因此,異步片上網絡通信機制研究的主要問題就是如何避免亞穩態傳輸,其中最普遍的方法是同步化處理,即采用同步器.同步器的主要作用是同步所有的非同源時鐘.
異步片上網絡通信機制根據同步方式的不同,主要分為以下幾種類型:
1)基于觸發器級聯的同步通信機制
在片上網絡的跨時鐘域IP核之間,為了避免亞穩態的出現,通常采用一系列的觸發器級聯構成觸發器鏈來實現同步.比較常用的是雙跳技術[6,7],采用兩個觸發器級聯同步,數據信號在進入下一個時鐘域之前,會進行兩次寄存.基于觸發器級聯的同步通信機制是目前比較常用的通信策略,但是只適合于對性能要求不太高的場合,通常用于對控制信號的同步.當傳輸多位總線信號時,因為各個數據信號到達下一級觸發器的時間無法同步,因此通過兩級觸發器后可能會出現個別信號的時鐘偏離,導致數據傳輸錯誤.此外,該通信機制只適合于從慢時鐘域向快時鐘域傳遞數據,從快時鐘域向慢時鐘域傳輸數據會造成數據丟失.因此,當應用于片上網絡跨時鐘域信號傳輸時有較大的限制.
2)基于異步握手協議的通信機制
異步握手是一種通用且簡單的通信機制,能夠有效實現片上網絡跨時鐘域間的信號傳輸,在很多通信系統中也有廣泛的應用[8,9].這種通信機制利用異步握手協議完成不同時鐘域之間的數據傳遞.異步握手協議能夠彌補基于觸發器級聯的同步通信機制的不足,可以實現多位總線數據的傳輸,也可從快時鐘域向慢時鐘域傳遞數據,數據可靠性較高,系統結構簡單,但是最容易產生亞穩態現象.需要對請求、應答信號預先進行同步來避免亞穩態,所以會引入一定的傳輸延遲.因此這種通信機制很難滿足大量數據高速、實時傳輸的要求,比較適合于少量數據且對傳輸可靠性要求較高的情況.
3)基于異步FIFO的通信機制
基于異步FIFO的通信機制,是實現不同時鐘域間數據通信的主要方式[10-12].異步FIFO是一種先進先出電路,用于電路之間速度匹配和數據寬度匹配,較適合于對數據傳輸速度要求比較高的電路系統,在圖像處理,網絡接口等方面都得到了廣泛的應用.常用的設計方法有采用仲裁機制,可停時鐘和環形FIFO等.
文獻[13]提出的FIFO基于數據仲裁機制,并利用格雷碼轉換器實現.異步FIFO存儲器由雙端口SRAM構成,并將其所在系統分為讀時鐘域和寫時鐘域,兩個時鐘域互相獨立.但是這種通信機制通常采用多個功能塊集成的方法實現,因此設計復雜度較高.此外由于FIFO深度較小,因此不適合于包含多個IP核且需要進行密集數據處理任務的片上網絡系統.文獻[14]在文獻[13]異步FIFO的基礎上,增加了可停時鐘設計,但是停止時鐘容易使依賴時鐘進行數據刷新的RAM丟失數據,且如果采用多核系統,在時鐘恢復時需要重新對數據進行采樣,因此容易造成數據傳輸錯誤.文獻[15]提出了一種可用于多核片上系統的環形FIFO,采用串并結合的數據傳輸模式和雙軌編碼方法,可以支持不同寬度數據的發送和接收,并能保證數據的完整性和傳輸的速度.文獻[6]提出了用于多電壓頻率島片上網絡的可配置FIFO設計,在已提出的異步FIFO基礎上,通過讀寫指針及可配置設計,使其既可以用于同步電路,也可以用于異步電路,具有較大的靈活性.文獻[11]提出了新的異步FIFO結構,采用異步插入同步取出的設計方法對FIFO的空滿狀態進行判斷,實現跨時鐘域的通信.但上述方法均使用單一的數據傳輸通道,因此在片上網絡中傳遞數據時,容易造成數據阻塞,導致無法實時的傳遞數據.文獻[16]提出了可用于跨時鐘域處理的自適應多級FIFO結構,存儲器采用雙端口SRAM結構,采用虛擬通道機制,可以通過數據量的多少自適應的調整虛擬通道的數目,從而改善片上網絡的吞吐率和延遲性能.但是該結構只適合于跨時鐘域處理,當片上網絡掛載的IP核與片上網絡的時鐘域一致時,采用該結構會造成比較大的面積和功耗的浪費.
從目前的研究成果來看,基于異步FIFO的通信機制是目前片上網絡中最常用的數據跨時鐘域通信處理方法,可以較好的滿足數據跨時鐘域傳輸處理的需求,避免亞穩態的發生.然而,隨著片上網絡的發展,除了在片上網絡掛載不同頻率或相同頻率IP核的需求,片上網絡系統需要處理的數據量越來越大,對數據處理速度的要求也越來越高,現有的異步FIFO結構很難在降低功耗的同時,滿足片上網絡對大容量、多比特和高速度視頻數據碼流進行實時傳輸的需求.
4)基于編碼傳輸的通信機制
基于編碼傳輸的通信機制,對傳輸的數據采用編碼的方式,在任意兩個相鄰數之間轉換時,只有一個數位發生變化,屬于可靠性編碼.通常情況下,基于編碼傳輸的通信機制可以和基于異步FIFO的通信機制融合使用.
隨著片上網絡集成的IP核數量的增加以及其應用背景的復雜化,傳統的通信機制已經表現出明顯的不足.基于觸發器級聯的通信機制,結構簡單容易實現,但是不能傳輸多位總線數據信號,也不能從快時鐘域向慢時鐘域傳遞數據,性能較低.基于異步握手協議的設計方案,簡單通用,可靠性高,適合于少量數據的傳輸.對于大批量數據的傳輸,該方案會引入較大的傳輸延遲,很難滿足數據高速、實時傳輸的要求.基于異步FIFO的設計方案,能夠解決電路之間速度、數據寬度匹配的問題,較適合于對數據傳輸速度要求比較高的電路系統.然而,現有的基于異步FIFO的設計方案,存在著FIFO深度小、數據傳輸通道單一等問題,因此在片上網絡掛載的處理器或者IP核之間傳遞大批量數據時,頻繁的信息交互勢必會影響任務的執行效率,有可能會導致整個片上網絡系統性能的降低.基于編碼傳輸的設計方案,可以有效降低亞穩態發生的概率,通常采用格雷碼編碼,并和基于異步FIFO的設計方案聯合使用,但會造成片上網絡系統電路面積的浪費和性能的降低.這些存在的問題也限制了多時鐘GALS片上網絡[17]技術的進一步發展和應用.因此,為了解決以上問題,保證片上網絡中信息傳遞的有效性、穩定性,提高片上網絡的信息交互能力,文中提出了一種雙模式融合的通信機制.該機制根據片上網絡交互數據的特點,將片上網絡中傳遞的數據分為兩大類,即控制類信息和數據類信息.
控制類信息:主要針對當片上網絡掛載多個處理器或者IP核,且多處理器及IP核中的任務并行執行時,處理器及IP核之間需要進行的一些基本通信操作.例如,處理器與IP核之間的任務調度,復雜任務的分解以及并行任務的控制等.這些操作由指令信息和實現數據通信的地址,數據長度等信息構成.通常,這類數據從片上網絡掛載的處理器直接發出,數據量較小,因此在文中定義為控制類信息.控制類信息,在本文研究的GALS片上網絡系統中,均在單一的電壓頻率島內傳遞.
數據類信息:主要針對片上網絡系統執行的數據密集型處理任務.當片上網絡掛載的處理器之間或處理器與IP核之間需要大數據量的數據交互時,例如視頻數據采集IP核與視頻數據處理IP核之間的數據交互,數據通常會從一個IP核所在的存儲空間傳輸到另一個IP核所在的存儲空間,每個IP核分別執行各自的運算及操作.這類數據,在文中定義為數據類信息,主要具有數據量大,存儲位置連續等特點.且這類數據可以在同一個電壓頻率島內傳遞,也可以在不同的電壓頻率島之間傳遞.
針對這兩類數據的特點,采用不同的通信機制來提高片上網絡系統的通信性能.以處理器和IP核之間的信息傳遞為例,圖1為具體的傳輸模型.

圖1 片上網絡跨時鐘域通信接口電路設計Fig.1 Design of NoC cross clock domain processing circuit
其中,數據緩沖存儲模塊,包括4個基于令牌環的環形異步FIFO.每個環形異步FIFO包括令牌環結構,每個令牌環結構包括八個鎖存器,八個鎖存器的連接方式為上一級鎖存器的輸出端連接到下一級鎖存器的輸入端,最后一級鎖存器的輸出端連接到第一級鎖存器的輸入端.
片上網絡處理器與IP核之間交互的控制類信息通常是處理器對IP核的任務控制操作,由少量數據組成.一次完整的通信需要經過兩個過程,即消息的寫入和讀出.已有的異步片上網絡通信機制,不對片上網絡中傳遞的數據類型進行區分,采用統一的異步傳輸接口,在數據跨時鐘域傳輸時有可能會由于亞穩態問題而造成信息傳輸錯誤,導致整個片上網絡系統的功能故障.在本文研究的基于電壓頻率島的GALS片上網絡中,通過電壓頻率島的預分配,將處理器以及與其通信密切的IP核劃分到同一電壓頻率島,因此控制類信息均在同一個電壓頻率島中傳輸,不涉及頻率變換問題,即可以采用同步通信機制傳輸,有效的避免了跨時鐘域傳輸時可能遇到的亞穩態問題,保證了控制類信息傳輸的準確性和高速性.
GALS片上網絡中的數據類信息主要是在片上網絡掛載的IP核與IP核,或IP核與處理器之間的大數據量的數據交互.通過前面分析可知,數據類信息在傳輸過程中,根據IP核所處的電壓頻率島及其對應路由節點的具體位置,需要首先判斷源路由節點和目標路由節點是否處于同一電壓頻率島.如果是,則可以通過同步通信方式將數據從源路由節點掛載的IP核傳輸到目標路由節點掛載的IP核.而如果源路由節點和目標路由節點處于不同的電壓頻率島,這時數據類信息就需要通過跨島傳輸過程,即選擇異步通信機制傳輸到目標節點掛載的IP核.根據片上網絡的拓撲結構和路由算法,路由信息表會提示跨島傳輸過程中要經過的路由節點.當數據類信息通過該路由節點時,需要進行數據的跨時鐘域傳輸,即異步通信過程,而當數據在其他路由節點之間傳遞時,采用的是同步的通信機制.
雙模式融合數據通信接口電路由模式控制器和可配置數據通信接口電路組成,具體結構如圖2所示.通過模式控制器,來選擇數據通信機制.模式控制器判斷發送數據的類型是控制類信息還是數據類信息,如果是數據類信息需要進一步判斷是否需要跨電壓頻率島通信,從而配置數據通信接口電路的工作方式采用同步通信機制還是異步通信機制.
可配置數據通信接口電路由一個輸入多路選擇器模塊、數據緩沖存儲模塊和一個輸出多路選擇器模塊組成.其中,數據緩沖存儲模塊,包括4個基于令牌環的環形異步FIFO.每個環形異步FIFO包括令牌環結構,每個令牌環結構包括八個鎖存器,八個鎖存器的連接方式為上一級鎖存器的輸出端連接到下一級鎖存器的輸入端,最后一級鎖存器的輸出端連接到第一級鎖存器的輸入端.該結構通過多路選擇器的設計,可以選擇不同的傳輸通道,有效的解決了傳統異步FIFO通信機制數據傳輸通道單一的問題,并滿足片上網絡對大規模數據的處理需求.

圖2 雙模式融合數據通信接口電路結構圖Fig.2 Structure diagram of data communication interface circuit using dual mode fusion
可配置的數據通信接口電路,通過模式控制器的輸出,改變環形異步FIFO的空/滿狀態判斷電路.當寫指針和讀指針相等,即兩者均指向內存中的同一位置時,異步FIFO可能處于空或滿兩種狀態;通過判斷寫指針從后方趕上了讀指針,還是讀指針從后方趕上了寫指針,來確定異步FIFO是處于滿狀態還是空狀態.如果模式控制器將可配置數據通信接口電路配置為同步工作方式,則可以直接通過比較讀寫指針來產生空/滿標志信號,若模式控制器將可配置數據通信接口電路配置為異步工作模式,則需要將滿標志信號與寫時鐘進行同步,將寫指針與讀時鐘進行同步.由于空狀態判斷電路的輸出直接影響了異步FIFO的吞吐量,即影響了整個異步片上網絡的吞吐量,所以在設計過程中要避免使用預測判斷的方法.因此,為了在不增加判斷電路復雜度的基礎上,更好的區別異步FIFO的空、滿狀態,當深度為N的異步FIFO中包含N-1個內容單元時,即認為異步FIFO處于滿狀態,生成滿標志信號.
為了驗證基于雙模式融合通信機制的GALS片上網絡的性能,將視頻處理算法應用于基于雙模式融合通信機制的片上網絡,在Intel Altera公司的EP4CE115F29C7的DE2-115 FPGA開發平臺下構建了基于GALS片上網絡的視頻處理系統并對其性能進行測試分析.該系統包括一個最簡處理器和三個視頻處理IP核.DE2-115 FPGA開發平臺自帶D8M圖像傳感器,兩片最高訪問頻率為166MHz的64M SDRAM用作視頻圖像緩存,和一個VGA顯示屏.其中處理器的工作頻率為20MHz,視頻采集IP核的工作頻率為20MHz;視頻顯示IP核與H.264視頻編碼IP核的工作頻率為33.33MHz.即電壓頻率島VFI 1的工作頻率為20MHz,電壓頻率島VFI 2的工作頻率為33.33MHz.為了測試基于雙模式融合通信機制GALS片上網絡的視頻處理系統(后面簡稱視頻處理系統1)的性能,本章利用文獻[13]提出的異步FIFO作為異步片上網絡的通信機制構建了片上網絡,并將處理器與IP核掛載在相同位置的路由節點上,構成視頻處理系統2,并與視頻處理系統1的處理結果進行對比.在視頻處理系統2中,處理器與IP核的工作頻率與視頻處理系統1的相同,視頻處理系統2的片上網絡其工作頻率為50MHz.
面向視頻處理的基于雙模式融合通信機制的GALS片上網絡系統,其主體結構由三個部分組成:第一部分是GALS片上網絡,片上網絡拓撲結構為H-annular Mesh[18],路由算法為HAA-XY算法;第二部分是可配置的雙模式融合數據通信接口電路,將該接口電路用于片上網絡路由節點內部;第三部分是視頻處理IP核,在該系統中,分別設計了視頻采集IP核,視頻顯示IP核和H.264視頻編碼IP核.并且為了控制任務的執行,設計了最小的處理器系統,掛載于片上網絡的處理器節點處,具體結構如圖3所示.

圖3 基于GALS片上網絡的視頻處理系統Fig.3 Video processing system based on GALS NoC
經測試,對于處理器與視頻采集IP核之間發送的控制類信息,視頻處理系統1采用同步通信機制進行傳輸,可有效的保證數據傳輸的準確性和實時性;而對于視頻處理系統2來說,需要采用異步通信機制,其延遲時間大于視頻處理系統1對控制類信息的傳輸延遲時間,具體結果如表1所示.根據分析可知,視頻處理系統2的發送時間和接收時間基本為視頻處理系統1的1.5倍左右,主要原因就是視頻處理系統1采用雙模式融合的通信機制,對于控制類消息,使其在同一個電壓頻率島內傳輸,而視頻處理系統2的控制類信息需要進行跨時鐘域通信,會經過更多的同步器進行同步,因此延遲時間高于視頻處理系統1的延遲時間.

表1 控制類信息傳輸延遲Table 1 Control message transmission delay
對于視頻處理IP核之間發送的數據類信息,在視頻處理系統1中,視頻采集IP核將采集到的視頻數據發送至視頻顯示IP核以及視頻編碼IP核,由于視頻顯示IP核與視頻編碼IP核工作于電壓頻率島VFI 2中,因此數據類信息在傳輸過程中需要經過跨島傳輸,即經過一個同步過程.在視頻處理系統2中,由于視頻采集IP核的工作頻率,與異步片上網絡、視頻顯示IP核以及視頻編碼IP核的工作頻率均不同,因此在視頻數據傳輸過程中需要經過多個同步過程.
分析可知,在異步片上網絡中傳遞數據類信息時,基于雙模式融合通信機制的GALS片上網絡(這里指視頻處理系統1)需要的同步過程少于基于異步FIFO通信機制的片上網絡(這里指視頻處理系統2),尤其當片上網絡掛載的IP核數目較多時,基于雙模式融合通信機制的GALS片上網絡的優勢更加明顯.
以視頻采集IP核與H.264視頻編碼IP核之間的視頻數據傳輸為例,分析數據類信息的傳輸延遲,分別對總幀數為100、200、300、400、500、600的視頻數據進行編碼,并分別在兩個視頻處理系統中對其傳輸延遲進行測試,具體結果如表2所示.
進一步在視頻處理系統1和視頻處理系統2中,對視頻編碼IP核的編碼性能進行測試.使用基于異步片上網絡的編碼系統對不同場景進行多次編碼,并通過測試編碼時間來計算編碼速度.這里的編碼時間考慮了視頻采集IP核向H.264視頻編碼IP核發送數據的時間.具體結果如表3所示.分析可知,視頻處理系統1的編碼速度略優于視頻處理系統2的編碼速度,并且隨著測試視頻總幀數的增加,優勢更加明顯.進一步測試H.264視頻編碼IP核的峰值信噪比PSNR(Peak Signal to Noise Ratio),分析測試結果可知,應用于雙模式融合通信機制異步片上網絡的視頻編碼系統,Y分量的平均PSNR可以達到36.92dB,Cr和Cb分量的平均PSNR分別達到39.60dB和38.06dB,編碼后的視頻質量良好.

表2 數據類信息傳輸延遲Table 2 Data message transmission delay

表3 編碼速度測試Table 3 Encoding speed test
針對已有異步片上網絡通信機制的問題和不足,本文結合電壓頻率島設計思想,并結合異步FIFO通信機制的優勢,提出了一種雙模式融合的通信機制.該機制根據片上網絡中傳遞信息的特點,將片上網絡中傳遞的數據分為兩大類,即控制類信息和數據類信息,分別采用不同的通信技術完成數據傳輸過程.將處理器對IP核的任務控制操作封裝為控制類信息,采用同步通信機制傳輸,有效的避免了跨時鐘域傳輸時可能遇到的亞穩態問題,保證了控制類信息傳輸的準確性和高速性.基于雙模式融合通信機制的GALS片上網絡具有更小的傳輸延遲,更大的吞吐量,H.264視頻編碼IP核的編碼速率更高,編碼后視頻質量良好,即基于雙模式融合通信機制的GALS片上網絡具有更好的視頻處理性能.因此,本文提出的雙模式融合的通信機制具有廣泛的應用前景.