尹亞明,劉秋麗,陳書明
(1.國防科學技術大學計算機學院,湖南長沙410073;2.河南信息工程學校計算機科學系,河南鄭州450003)
當前,單處理器系統(tǒng)芯片SoC(System-on-Chip)已遠不能滿足日益復雜的嵌入式應用需求,而硅工藝技術的快速發(fā)展也為日趨復雜的IC設計提供了充分的土壤。多處理器系統(tǒng)芯片MPSoC(Multi-processor System-on-Chip)[1]的提出與研究獲得了廣泛關注,憑借其高性能、并行處理和靈活編程性等優(yōu)點,MPSoC已經(jīng)成為超大規(guī)模集成電路VLSI研究領域的前沿和熱點。
PCI Express作為第三代高性能I/O互連技術[2],繼承了第二代總線體系結構最有用的特點,并且采用了計算機體系結構中新的研究成果,能夠?qū)崿F(xiàn)兩臺設備之間通信的串行、點對點的互連,同時采用基于報文交換技術來互連大量的設備。當前,PCI Express的發(fā)送和接收數(shù)據(jù)的速率是2.5 Gb/s,具有很高的串行傳輸速率,適用于大量成塊的數(shù)據(jù)傳輸任務,廣泛應用于芯片設計當中。但是,PCI Express更多地是在通用計算機領域的應用與實現(xiàn),鮮有嵌入式系統(tǒng)設計采用PCI Express技術。
本文綜合考慮嵌入式MPSoC系統(tǒng)設計中的數(shù)據(jù)傳輸需求與PCI Express技術特點,采用基于IP的快速設計方法,將PCI Express互連技術應用于一款自行研制的嵌入式片上多處理器YHFT-QDSP(Quadruplex DSP)[3]系統(tǒng)中,縮短了設計周期并簡化了設計過程,同時獲得了良好的設計結果。
傳統(tǒng)的PCI總線協(xié)議存在可擴展性差、安全性與容錯性差和系統(tǒng)I/O整體吞吐率低等缺陷,導致I/O互連技術及體系結構發(fā)生了重大變革,相繼涌現(xiàn)出PCI Express、RapidIO、Hyper Transport以及InfiniBand等新型I/O互連技術[4],它們采用基于報文交換的點到點的互連替代共享總線結構,提供了高帶寬、可擴展的I/O互連,克服了傳統(tǒng)的共享I/O總線結構的種種弊端。
2001年正式發(fā)布的PCI Express的前身是Intel公司率先開發(fā)的第三代I/O總線技術3GIO,其目標之一是提供芯片間的局部互連總線,二是以較低開銷提高現(xiàn)有PCI結構的性能。PCI Express采用基于報文交換的點對點串行傳輸技術為每個設備分配獨立通道,所有設備均通過各自獨立的通道發(fā)送和接收數(shù)據(jù),設備之間無需共享資源。其串行鏈路采用LVDS接口電路和時鐘數(shù)據(jù)恢復CDR(Clock Data Recovery)同步技術,利用8 b/10 b編碼機制將時鐘信號嵌入數(shù)據(jù)信號中,單線單向數(shù)據(jù)傳輸率可達2.5 Gb/s。除了高帶寬以外,PCI Express還支持數(shù)據(jù)交換、信息封包優(yōu)化、虛信道和頻率帶寬可變等技術,可通過2、4、8、12、16或32線多路技術線性地擴展I/O帶寬。PCI Express基于Load Store結構、PCI尋址模式,沿用PCI-X分割事務、生產(chǎn)消費者排序規(guī)則等關鍵技術與思想;但是,與PCI和PCI-X總線不同的是,PCI Express可延伸到系統(tǒng)之外,可將外部設備直接與系統(tǒng)內(nèi)部的PCI Express總線連接??缙脚_兼容是PCI Express非常重要的特點之一,為廣大用戶提供了平滑的升級平臺。PCI Express作為第三代I/O互連技術,無論是在速度、性能、功能,還是可擴展性和兼容性等各方面,與PCI和PCI-X總線相比都有了顯著改進和提高,可為臺式機、筆記本、服務器、通信平臺、工作站和嵌入式系統(tǒng)提供統(tǒng)一標準的高性能I/O互連。
由于PCI Express是標準的計算機系統(tǒng)結構I/O互連技術規(guī)范,因此在國際上關于PCI Express技術的學術性研究并不多見。更多的是使用PCI Express技術的工程實現(xiàn)型研究或針對PCI Express協(xié)議中某個子問題的研究。
文獻[5]中給出了基于Xilinx的Virtex-II Pro、Virtex-4和Virtex-5系列FPGA設備的PCI Express 1.0規(guī)范的設計實現(xiàn)。為了實現(xiàn)PCI Express 2.0規(guī)范,將原有設計從Virtex-5系列移植到Virtex-6系列上,解決了相關頻率需求和板級設計問題。文獻[6]詳細分析了PCI Express物理層技術特點,針對串行接收端的數(shù)據(jù)時鐘恢復技術進行研究,采用基于鎖相環(huán)結構的數(shù)據(jù)時鐘恢復技術設計了一款速率為2.5 Gb/s的高速物理層電路。國際上也有在片上多核系統(tǒng)中集成PCI Express技術的研究,如第四代UltraSPARC T3片上多核處理器[7]中集成了兩路PCI Express 2.0規(guī)范的接口,實現(xiàn)了5.0 Gb/s的高速外部擴展功能。文獻[8]中給出一款四核嵌入式原型系統(tǒng)芯片RP-1,其設計目標是滿足高能效、高性能的嵌入式系統(tǒng)應用。RP-1的片上系統(tǒng)總線也集成了PCI Express擴展接口,作為系統(tǒng)外設擴展使用。此類多核系統(tǒng)雖集成了PCI Express技術,但其應用目的是為整個系統(tǒng)擴展外設所用,而本文的目標是將PCI Express的高速數(shù)據(jù)傳輸能力用于多核芯片的擴展連接,屬于對該技術的一種創(chuàng)新型嘗試。
YHFT-QDSP是一款異構多核DSP超結點芯片,其主體由一個RISC內(nèi)核和四個高效精簡的DSP內(nèi)核構成[9]。以QDSP超結點為中心,采用PCI Express技術實現(xiàn)的片間互連組件可以擴展為更大規(guī)模的眾核系統(tǒng)。
QDSP超結點結構如圖1所示,包括Leon3通用處理器及其AMBA總線上針對設計需求而保留的外部設備。Leon3在QDSP中負責整片SoC的啟動、簡單的任務派發(fā)和結果回收等工作,通過AH/MB(Master Bus)橋接模塊和32位的MB總線實現(xiàn)與四個DSP內(nèi)核的連接,其中MB總線掛接在每個DSP內(nèi)核的EDMA外設總線上。DSP內(nèi)核是QDSP系統(tǒng)的主體運算模塊,四個DSP運算核同構,每個DSP內(nèi)核包含獨立的一級指令和數(shù)據(jù)Cache、一個二級Cache和獨立地址空間的EMIF外部存儲器模塊。共享數(shù)據(jù)緩沖池模塊SDP(Shared Data Pool)[10],為四個DSP內(nèi)核共享,采用請求隊列和信號燈共同實現(xiàn)各DSP內(nèi)核對共享數(shù)據(jù)的一致性操作,完成片內(nèi)DSP間的小數(shù)據(jù)量交換。全局通信模塊QLink[11]掛接在每個DSP內(nèi)核的EDMA外設總線上,負責實現(xiàn)全局片內(nèi)及片間數(shù)據(jù)傳輸任務,其內(nèi)部實現(xiàn)自行設計的QLink協(xié)議,具有發(fā)送和接收全雙工數(shù)據(jù)通路。定制實現(xiàn)的8端口、16位數(shù)據(jù)寬度的crossbar交叉開關,其中四個端口與片內(nèi)各DSP內(nèi)核的QLink相連,另外四個端口則與QDSP的四個片間互連模塊相連,實現(xiàn)全交叉靈活的數(shù)據(jù)交換。片間互連模塊采用PCI Express協(xié)議實現(xiàn)片間高速數(shù)據(jù)傳輸,四個片間互連模塊可實現(xiàn)多SoC的靈活結構擴展,同時通過交叉開關實現(xiàn)片間模塊與片內(nèi)模塊的全交叉互連,能夠自由靈活地實現(xiàn)多種通路的數(shù)據(jù)傳輸。
QDSP系統(tǒng)實現(xiàn)了層次化的互連結構,按照其應用目的與設計指標可分為三個層次:片內(nèi)快速緊耦合共享緩沖池(FCC-SDP)、片內(nèi)實時大粒度數(shù)據(jù)傳輸引擎(QLink)和片間高速互連模塊(PCI Express)。
FCC-SDP是QDSP超結點內(nèi)四個DSP內(nèi)核的一種共享存儲結構。FCC-SDP在存儲層次上與一級Cache平行,如圖1所示,可以被訪存指令直接訪問;采用多體并行結構,支持雙體交叉訪問模式和基于硬件信號燈的自動同步機制,支持多個DSP內(nèi)核的并行訪問與快速核間數(shù)據(jù)交換,兩核之間交換單個數(shù)據(jù)只需四拍;采用八體并行SRAM存儲器實現(xiàn),容量為8 KB,具有四個DSP內(nèi)核共享的全局地址,具有訪問延遲小、存取速度快、同步開銷低和編程使用靈活等特點。FCCSDP在QDSP的層次化互連結構中處于第一級,實現(xiàn)了DSP內(nèi)核之間最緊密的一級互連,傳輸粒度最小但速度很快,適用于少量數(shù)據(jù)或某些標量的核間傳遞。
QLink片內(nèi)通信機制的設計目標是實現(xiàn)QDSP超結點芯片中DSP核間的大粒度批量數(shù)據(jù)通信,并能夠在多個DSP之間實現(xiàn)組播通信。QLink傳輸模塊向內(nèi)與DSP的DMA總線掛接,數(shù)據(jù)傳輸通路寬為32位;向外與交叉開關端口掛接,數(shù)據(jù)通路寬為16位。相對于片內(nèi)快速緩沖池來說,QLink能更有效地完成大批量數(shù)據(jù)的核間通信,對于某些運算量比較大的應用,使用QLink進行DSP間數(shù)據(jù)傳輸能獲得更好的效果。QLink通信過程采用基于報文交換的QLink協(xié)議完成,QLink協(xié)議是自主設計的一種可同時用于片內(nèi)與片間數(shù)據(jù)傳輸?shù)耐ㄐ艆f(xié)議。QLink通信機制在QDSP的層次化互連結構中處于第二級,實現(xiàn)了QDSP片內(nèi)DSP核間的數(shù)據(jù)通信。相對于第一級的片內(nèi)快速緩沖池,其傳輸能力更強,適用于大粒度批量的數(shù)據(jù)傳輸,是一種典型的基于報文交換的數(shù)據(jù)傳輸網(wǎng)絡。
Figure 1 Architecture of YHFT-QDSP圖1 YHFT-QDSP系統(tǒng)結構
片間PCI Express高速互連模塊處于QDSP層次化互連結構第三級,其設計目標是實現(xiàn)QDSP超結點芯片間的擴展連接,通過這種擴展可以構成更大規(guī)模的處理系統(tǒng),從而完成某些大型特定應用。
圖2給出一種典型的QDSP超結點擴展連接應用結構,其拓撲結構為二維Mesh。片間互連模塊分為東、西、南、北四個擴展接口,分別掛接于片內(nèi)交叉開關中的四個端口,實現(xiàn)片內(nèi)DSP核到片外的數(shù)據(jù)交換網(wǎng)絡。QDSP超結點之間通過PCI Express高速互連接口進行連接。系統(tǒng)中屬于不同超結點的DSP核之間可以通過PCI Express高速互連網(wǎng)絡實現(xiàn)數(shù)據(jù)通信。
一個QDSP超結點含有四個片間互連模塊,本文以其中任意一個為例來說明PCI Express互連技術是如何應用于QDSP嵌入式超結點中的。圖3所示為QDSP超結點中片間互連模塊的結構圖,其中左側為QDSP超結點結構簡圖,僅體現(xiàn)了四個內(nèi)DSP核與四個片間PCI Express互連模塊,這8個模塊通過一個8×16位的交叉開關實現(xiàn)交叉互連,可以實現(xiàn)任意兩個模塊之間的數(shù)據(jù)傳輸。這里結合圖2來說明片間數(shù)據(jù)傳輸?shù)墓ぷ鬟^程,一次批量數(shù)據(jù)傳輸是在兩個DSP內(nèi)核之間進行的,即數(shù)據(jù)發(fā)出者與數(shù)據(jù)接收者是系統(tǒng)中某兩個QDSP超結點中的某兩個DSP內(nèi)核。含有數(shù)據(jù)發(fā)出者和接收者的QDSP分別為源結點和目的結點,其他在數(shù)據(jù)傳輸路徑上經(jīng)過的QDSP均為過路結點。對于一次數(shù)據(jù)傳輸過程,路徑上經(jīng)過的QDSP超結點內(nèi)部僅完成了兩個PCI Express片間模塊之間的數(shù)據(jù)傳輸,只有源結點與目的結點內(nèi)部才實現(xiàn)了DSP內(nèi)核與PCI Express片間模塊之間的數(shù)據(jù)交換。圖3右側所示虛線框內(nèi)為PCI Express片間互連模塊各子模塊與接口,主體包括三部分:QLink-PCIE橋接模塊QPB(QLink PCIE Bridge)[12]、PCIE IP核和PCIE全定制物理層模塊(PCIE PHY)。
QLink-PCIE橋接模塊負責完成QDSP超結點內(nèi)部的QLink協(xié)議到片間數(shù)據(jù)傳輸?shù)腜CI Express協(xié)議之間的轉(zhuǎn)換,橋接模塊上、下接口分別與交叉開關和PCIE IP核接口相連接。圖4為QLink-PCIE橋接模塊結構圖,其主體模塊的實現(xiàn)按照發(fā)送(QDSP超結點片外方向)和接收(QDSP超結點片內(nèi)流動方向)兩個方向來完成,內(nèi)部包括了數(shù)據(jù)的拆分與拼裝、數(shù)據(jù)的接收緩沖與發(fā)送。另外,在QLink-PCIE橋內(nèi)部實現(xiàn)了源路由與XY路由兩種全局路由策略。因此,QLink-PCIE橋接模塊既是一個協(xié)議轉(zhuǎn)換器,同時也是一個全局互連路由器。
Figure 2 Super-node interconnection of QDSP圖2 QDSP超結點擴展互連示意圖
Figure 3 Inter-chip interconnection module of PCI express圖3 PCI Express片間互連模塊
Figure 4 Structure diagram of QLink-PCIE圖4 QLink-PCIE橋接模塊結構圖
PCIE IP核為PCI Express標準協(xié)議的主體實現(xiàn)模塊,采用Verilog描述語言完成,是一款第三方IP核,包括PCI Express協(xié)議的事務傳輸層、數(shù)據(jù)鏈路層和物理層的PCS子層三個部分。其用戶層接口給出了明確定義的傳輸模式和接口信號,主要包括128位的PCIE協(xié)議報文頭和64位數(shù)據(jù)信號線,還有一些其他的控制信號。物理層接口為與PCIE全定制物理模塊的PCS子層接口協(xié)議,為250 MHz的10位數(shù)據(jù)信號。采用基于IP核的設計方法有效簡化了設計復雜度和設計周期。
全定制PCIE物理層模塊,即PCIE PHY,是PCI Express協(xié)議電器物理層模塊,包括高速串行-解串Ser Des(Serializer-Deserializer)電路的定制實現(xiàn),接收端還包括從接收到的數(shù)據(jù)信號流中恢復出時鐘信號的CDR模塊。PCIE PHY還完成高速差分I/O,即LVDS接口的定制實現(xiàn)。
設計采用SMIC的0.13μm工藝單元庫,QLink-PCIE橋模塊單獨綜合面積為0.12 mm2,QLink-PCIE與PCIE IP共同綜合總面積為0.65 mm2。
本文構建了如圖2所示的RTL級SoC測試平臺,但考慮測試復雜度和運行速度問題,將系統(tǒng)規(guī)模選定為四個QDSP超結點構成一個2×2的二維Mesh網(wǎng)絡結構。其中互連模塊均采用真實的RTL級代碼實現(xiàn),DSP的數(shù)據(jù)發(fā)送與接收采用模擬方法實現(xiàn),通過文件讀入寫出方式對片間互連操作進行驗證和性能統(tǒng)計分析。
片間互連通路性能統(tǒng)計數(shù)據(jù)如表1所示。從表1中可知,片間通路適合于連續(xù)大量數(shù)據(jù)的傳輸,從而能更好地掩蓋通路的建立時間;同時,獲得了約1.6 Gb/s的有效數(shù)據(jù)帶寬,滿足了系統(tǒng)片間數(shù)據(jù)傳輸?shù)男阅苄枨?。對QPB模塊的延遲信息進行統(tǒng)計發(fā)現(xiàn),QPB內(nèi)異步FIFO傳輸延遲為2~3拍PCI Express時鐘(PCLK);發(fā)送方向異步FIFO輸出到PCI Express接口報文請求產(chǎn)生延遲最短為16 PCLK,這是由于發(fā)送方向內(nèi)部具有緩沖區(qū)存儲轉(zhuǎn)發(fā)導致的;接收方向由于使用蟲孔路由其延遲為固定的4 PCLK。
Table 1 Performance of inter-chip route path表1 片間互連通路性能統(tǒng)計
我們在現(xiàn)有測試平臺的基礎上進行了改進,每個QDSP內(nèi)加入一個真實DSP模塊,生在其上運行32×32的FFT程序。目的是測試整個環(huán)境運行真實程序的能力,每個SoC內(nèi)的一個DSP內(nèi)核參與到運算當中,四個DSP內(nèi)核共同完成FFT程序的運算并得到正確結果。
工藝技術不斷發(fā)展,應用需求日益復雜,帶來了單處理器片上系統(tǒng)時代向多處理器片上系統(tǒng)時代的轉(zhuǎn)變。面對層出不窮的多核處理器芯片,如何能將現(xiàn)有技術更好地應用于片上系統(tǒng)是設計者和研究者都要進行思考的問題。PCI Express是一種成熟、高效的大規(guī)模高性能計算機互連技術,針對其技術特點和片上多處理器系統(tǒng)的設計需求,本文將其應用于一款自行研制的片上多DSP系統(tǒng)QDSP芯片中,取得了良好的設計結果,同時為片外設計技術向片上設計的移植給出了很好的思路。在未來的工作中將考慮嘗試更多的技術融合,并將其應用于多處理器片上系統(tǒng)的設計中。
[1] Ahmed A J,Wayne W.Multiprocessor systems-on-chips[M].San Francisco:Morgan Kaufmann,2005.
[2] Budruk R,Anderson D,Shanlev T.PCI express system architecture[M].Boston:Addison Wesley,2003.
[3] Chen Shu-ming,Wan Jiang-h(huán)ua,Lu Jian-zhuang,et al.YHFT-QDSP:High-performance heterogeneous multi-core DSP[J].Journal of Computer Sicence and Technology,2010,25(2):214-224.
[4] Li Qiong,Guo Yu-feng,Liu Guang-ming,et al.Research and development of I/O interconnection and architecture[J].Computer Engineering,2006,32(12):93-95.(in Chinese)
[5] Nambiar S O S,Abhyankar Y,Chandrababu S.Migrating FPGA based PCI express Gen1 design to Gen2[C]∥Proc of 2010 International Conference on Computer and Communication Technology,2010:617-620.
[6] Wang Kun,Xu Wen-qiang,Ma Zhuo.Design and implementation of the 2.5 Gbps high-speed ser Des for PCI-express[J].Computer Engineering &Science,2009,32(11):62-65.(in Chinese)
[7] Shin J L,Huang D,Petrick B,et al.A 40 nm 16-core 128-thread SPARC SoC processor[J].IEEE Journal of Solid-State Circuits,2011,46(1):131-144.
[8] Arakawa F.Multicore SoC for embedded systems[C]∥Proc of 2008 International SoC Design Conference,2008:I180-I183.
[9] Chen Shu-ming,Li Zhen-Tao,Wan Jiang-h(huán)ua,et al.Research and development of high performance YHFT digital signal processor[J].Journal of Computer Research and Development,2006,43(6):993-1000.(in Chinese)
[10] Chen Shu-ming,Wang Dong,Chen Xiao-wen,et al.A small close-coupled fast shared data pool for multi-core DSPs[J].Chinese Journal of Computers,2008,31(10):1737-1744.(in Chinese)
[11] Guo Bao-dong,Liu Xiang-yuan,Xu Yi,et al.Research and implementation of Qlink——a communicaiton mechanism to heterogeneous multi-core DSP[C]∥Proc of NCCET,2007:1.(in Chinese)
[12] Yin Ya-ming,Chen Shu-ming.Design and implementation of a inter-chip bridge in a multi-core SoC[C]∥Proc of the 4th International Conference on Design &Technology of Integrated Systems in Nanoscal Era,2009:102-106.
附中文參考文獻:
[4] 李瓊,郭御風,劉光明,等.I/O互聯(lián)技術及體系結構的研究與發(fā)展[J].計算機工程,2006,32(12):93-95.
[6] 王堃,許文強,馬卓.PCI Express中2.5 Gbps高速Ser Des的設計與實現(xiàn)[J].計算機工程與科學,2009,31(11):62-65.
[9] 陳書明,李振濤,萬江華,等.“銀河飛騰”高性能數(shù)字信號處理器研究進展[J].計算機研究與發(fā)展,2006,43(6):993-1000.
[10] 陳書明,汪東,陳小文,等.一種面向多核DSP的小容量緊耦合快速共享數(shù)據(jù)池[J].計算機學報,2008,31(10):1737-1744.
[11] 郭保東,劉祥遠,徐毅,等.一種異構多核DSP互連通信機制Qlink的研究與實現(xiàn)[C]//第十一屆計算機工程與工藝全國年會,2007:1.