亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于eFPGA 的可重構(gòu)片上系統(tǒng)研究

        2023-11-21 14:12:20康禮煜賈一平高麗江楊海鋼
        電子設(shè)計工程 2023年22期
        關(guān)鍵詞:系統(tǒng)

        康禮煜,賈一平,高麗江,楊海鋼,,4

        (1.中國科學(xué)院空天信息創(chuàng)新研究院,北京 100190;2.中國科學(xué)院大學(xué),北京 100049;3.北京中科勝芯科技有限公司,北京 100044;4.山東產(chǎn)研集成電路產(chǎn)業(yè)研究院,山東濟(jì)南 250001)

        隨著集成電路的設(shè)計復(fù)雜度以及設(shè)計要求大幅增長,為了提升片上系統(tǒng)(System-on-Chip,SOC)的靈活性以應(yīng)對各類計算任務(wù),可重構(gòu)片上系統(tǒng)這一概念被提出。其中基于嵌入式現(xiàn)場可編程門陣列(embedded Field Programmable Gate Array,eFPGA)的可重構(gòu)系統(tǒng)被廣泛應(yīng)用于人工智能、自動駕駛、物聯(lián)網(wǎng)終端以及航空航天等相關(guān)領(lǐng)域[1-4]。

        目前,基于eFPGA的可重構(gòu)系統(tǒng)主要是將eFPGA掛載在總線上作為協(xié)處理器,以提升系統(tǒng)性能;或者將eFPGA 模塊與處理器內(nèi)部結(jié)構(gòu)耦合,以支持自定義指令集的擴(kuò)展[5-7]。該文所討論的是如何在原有架構(gòu)基礎(chǔ)上,通過架構(gòu)調(diào)整以及使用碼流壓縮傳輸?shù)姆椒▋?yōu)化系統(tǒng)性能。

        1 可重構(gòu)系統(tǒng)硬件架構(gòu)

        1.1 系統(tǒng)架構(gòu)設(shè)計

        該文提出的可重構(gòu)系統(tǒng)由開源的RISCV 處理器E203[8]與eFPGA 子系統(tǒng)組成。eFPGA 子系統(tǒng)由利用開源平臺OpenFPGA[9]設(shè)計生成的eFPGA 模塊及相關(guān)的重構(gòu)邏輯電路和交互邏輯電路組成。電路架構(gòu)如圖1 所示。

        圖1 電路架構(gòu)圖

        整個系統(tǒng)的工作模式可以分為重構(gòu)模式和交互模式。在重構(gòu)模式中,由于APB 總線的傳輸速率比AXI 總線慢[10],且碼流數(shù)據(jù)量較大,為了加快碼流寫入速度,故選擇AXI 總線用于碼流傳輸;而由于APB總線傳輸數(shù)據(jù)的功耗比AXI 總線低[10],且一般應(yīng)用場景不需要太快的數(shù)據(jù)交互速度,所以在數(shù)據(jù)交互時選擇使用APB 總線。

        在配碼過程中還面臨著另一問題,即如果碼流數(shù)據(jù)是處理器通過AXI 總線直接配置到eFPGA 中,由于AXI 總線傳輸數(shù)據(jù)需要握手等相關(guān)步驟,這會使重構(gòu)時間加長,所以在該系統(tǒng)中添加了碼流存儲器,使配碼階段可進(jìn)行連續(xù)配碼;同時為了使整個系統(tǒng)更加靈活,將碼流存儲器的存儲空間設(shè)計為三個常用電路大小,使重構(gòu)更加便捷。

        若需要重構(gòu)存儲器中不包含的電路,則需要更新存儲器中的碼流,由于碼流數(shù)據(jù)龐大,所以在處理器通過總線頻繁寫入的過程中就會產(chǎn)生較大的能耗。為了解決這一問題,提出了碼流壓縮傳輸?shù)姆椒?,即在碼流傳輸前先將其壓縮,傳輸后在電路中先通過解壓縮(Decompression)模塊對其進(jìn)行解壓再寫入存儲器中,由于傳輸碼流數(shù)據(jù)需要經(jīng)歷較長的數(shù)據(jù)傳輸鏈路,所以完整的碼流傳輸過程中消耗的能耗相較于該文所提出的增加解壓縮模塊所增長的能耗要大得多,相關(guān)的實驗數(shù)據(jù)在后文中展示。

        在eFPGA、總線與碼流存儲器之間,還有一個至關(guān)重要的配置控制(CONFIG-CONTROL)模塊。該模塊主要分為控制和配置兩部分,配置部分主要用于在配碼階段將碼流從存儲器中讀出并寫入eFPGA的配置端口;而控制部分主要分為三個功能模塊:

        1)控制eFPGA 進(jìn)行反復(fù)重構(gòu)的控制模塊。

        2)解譯配置寄存器參數(shù)的譯碼模塊。

        3)由于每次解壓的碼流數(shù)量不一致,所以還需要設(shè)計碼流的寫控制模塊。

        碼流映射成功之后,處理器通過APB 總線與eFPGA 模塊進(jìn)行交互,同時在AXI 總線地址上預(yù)留好相關(guān)寄存器地址,以便在APB 總線傳輸速率不符合需求時,可以通過AXI 總線進(jìn)行數(shù)據(jù)傳輸。此外,eFPGA 還引出了四個中斷交互端口,以便應(yīng)用電路可以觸發(fā)中斷以避免輪詢造成的空轉(zhuǎn)消耗。

        1.2 eFPGA模塊設(shè)計

        eFPGA 指可以作為IP 嵌入到片上系統(tǒng)的現(xiàn)場可編程門陣列核[7],其既具有FPGA 的可編程特性,又規(guī)避了FPGA 的功耗高與面積大等缺點,所以將其嵌入SOC 中可以將ASIC(Application Specific Integrated Circuit)的高性能與FPGA 的可編程特性結(jié)合起來,使整個系統(tǒng)更加靈活可靠[1]。該文所設(shè)計的eFPGA模塊是基于OpenFPGA 的K6N10 結(jié)構(gòu)[11]設(shè)計產(chǎn)生的由重復(fù)邏輯塊構(gòu)成的島型陣列,架構(gòu)如圖2 所示。

        圖2 eFPGA模塊架構(gòu)圖

        重復(fù)邏輯塊是由可編程邏輯塊(Configurable-Logic-Blocks,CLB)、連接盒(Connection-Box,CB)、開關(guān)盒(Switch-Box,SB)以及互連線(Interconnect)構(gòu)成。其中,每個CLB 模塊由十個邏輯單元(Logic-Element,LE)及相關(guān)配置電路構(gòu)成,用以實現(xiàn)可編程功能;CB 和SB 模塊都是由多路開關(guān)(Multiplexer,MUX)和配置存儲器(CRAM)構(gòu)成,以連接模塊之間的布線通道,具體電路如圖3、圖4 所示。其中,CB模塊用于CLB 和通道之間的連接,SB 模塊用于不同通道之間的連接;最終構(gòu)成一個20×20 陣列規(guī)模的eFPGA 模塊,其可以映射4 000 LE 規(guī)模以下的電路。

        圖3 CLB模塊電路圖

        圖4 CB、SB模塊電路圖

        文中的eFPGA 模塊是利用開源的OpenFPGA 平臺通過設(shè)計相關(guān)的架構(gòu)描述文件以及Versatile-Place-and-Route(VPR)描述文件生成相應(yīng)的軟核[11],同時也可以利用該平臺生成相應(yīng)eFPGA 模塊的碼流。碼流的產(chǎn)生過程如圖5 所示,主要步驟是先設(shè)計好應(yīng)用電路的HDL 代碼,仿真驗證通過后利用Yosys 對其進(jìn)行綜合,再將其輸入到VPR 進(jìn)行裝箱、布局和布線,最后利用OpenFPGA 平臺產(chǎn)生相應(yīng)的碼流[9]。

        圖5 OpenFPGA流程圖

        1.3 碼流壓縮算法及解壓縮電路設(shè)計

        eFPGA 配碼過程中傳輸?shù)拇a流數(shù)據(jù)的每一比特位都有其獨特含義,所以使用的壓縮算法必須是無損算法。在1977 年由Abraham 和Jacob 所提出的LZ77 算法具有壓縮率較好和復(fù)雜度適中的優(yōu)點,同時是基于字典編碼的無損壓縮算法[12],所以該算法的解壓縮過程適合用電路實現(xiàn),故在該文中選擇了LZ77 算法作為碼流壓縮算法。

        該算法的主要原理是利用滑窗進(jìn)行相關(guān)的字符匹配,利用指針來表示壓縮的字符串。滑窗組成如圖6 所示,滑窗由字典窗口和編碼緩沖區(qū)組成,字典窗口用于保存等待匹配的序列,編碼緩沖區(qū)則保存等待編碼的序列[12];指針由偏移量和匹配長度組成,偏移量是當(dāng)前序列到字典窗口中匹配序列的距離,匹配長度則是重復(fù)序列的個數(shù)[12-14]。

        圖6 壓縮和解壓縮過程

        壓縮步驟是先讀取編碼緩沖區(qū)的序列并在字典窗口中查找能匹配到的最長序列,并輸出指針。如圖6所示,字典窗口中能找到編碼緩沖區(qū)最長的重復(fù)序列為1011,且偏移量為5,故輸出的指針為(5,4)。

        解壓縮是壓縮的逆過程。如圖6 所示,左側(cè)滑窗中的數(shù)字是10110,且此時指針中偏移量為4,匹配長度為3,由此可得解壓出的數(shù)據(jù)是011,填入數(shù)據(jù)并移動滑窗至末尾,解壓完成。

        在電路實現(xiàn)過程中,由于滑窗與電路中的移位寄存器有共通之處,故選擇移位寄存器來實現(xiàn)滑窗功能,并使用數(shù)據(jù)選擇器陣列來解壓指針內(nèi)容,以控制移位寄存器中的移位操作和輸出相應(yīng)的解壓數(shù)據(jù),解壓電路如圖7 所示。

        圖7 解壓電路

        2 軟硬件協(xié)同設(shè)計

        軟硬件協(xié)同設(shè)計是實現(xiàn)可重構(gòu)系統(tǒng)中必不可少的一步,因為eFPGA的多次重構(gòu)以及處理器與eFPGA的數(shù)據(jù)交互是通過軟件控制實現(xiàn)的。其主要的應(yīng)用場景如下:

        1)通過軟件控制進(jìn)行多次配碼,以實現(xiàn)在有限的eFPGA 資源上實現(xiàn)更大規(guī)模的電路或者實現(xiàn)多種不同的電路功能。

        2)面對復(fù)雜任務(wù)時,將適合軟件實現(xiàn)的分配給處理器實現(xiàn),適合硬件實現(xiàn)的分配給eFPGA 實現(xiàn),最后結(jié)合起來,以實現(xiàn)軟硬協(xié)同加速。

        整個系統(tǒng)的工作流程如圖8 所示。

        圖8 工作流程

        其主要步驟如下:

        1)設(shè)計電路并在OpenFPGA 生成碼流。

        2)利用LZ77 算法壓縮碼流。

        3)將壓縮后的碼流以及配置交互信息按需寫到軟件設(shè)計中,并通過工具鏈編譯生成可執(zhí)行文件。

        4)將可執(zhí)行文件翻譯成指令流寫入處理器中并執(zhí)行相關(guān)指令。

        5)處理器通過AXI 總線將壓縮碼流寫入到解壓縮模塊進(jìn)行解壓,并通過配置控制模塊寫入相應(yīng)的存儲空間。

        6)通過軟件寫入相關(guān)配置信息,讀出相應(yīng)碼流,并將其寫入eFPGA 中以實現(xiàn)該電路,最后通過APB/AXI 總線與之交互。

        3 軟硬件協(xié)同實驗

        軟件設(shè)計環(huán)境是NucleiStudio IDE 2021.02,硬件設(shè)計及仿真環(huán)境是VCS2017.12 和VERDI2016.06。該實驗實現(xiàn)了密鑰大小為128 bit 的AES 算法中的Electronic-Codebook-Book(ECB)加密模式。該模式將明文分割成多個數(shù)據(jù)塊,各個數(shù)據(jù)塊分別進(jìn)行加密生成各自的密文塊,最終拼接成完整的密文[15-16]。

        主要加密步驟是字節(jié)代換、行移位、列混合和輪密鑰加四個部分進(jìn)行迭代操作。在使用eFPGA 實現(xiàn)該算法時,整個加密過程只使用了21 個周期,且每次重構(gòu)只需1 630 個周期。

        在軟件實現(xiàn)AES的過程中,利用函數(shù)__get_rv_cycle()獲取E203 處理器實現(xiàn)該算法的周期數(shù),如圖9 所示,打印出E203實現(xiàn)該算法用了68 873個周期,且加密結(jié)果與eFPGA 實現(xiàn)一致,eFPGA 比E203 實現(xiàn)AES 的速度提高了3 279 倍;而利用ZYNQ7020 上的Cortex-A9處理器實現(xiàn)該算法用了47 188 個周期,eFPGA 比Cortex-A9 提高了2 247倍,可見該算法在eFPGA中實現(xiàn)的加速效果顯著。

        4 綜合及結(jié)果分析

        該系統(tǒng)在TSMC 28 nm 工藝條件下,通過Design Compiler 對電路采用Bottom-up 的策略進(jìn)行綜合;在200 MHz 的頻率下,時序依舊滿足要求。

        在200 MHz 的頻率下,對E203 SOC 添加解壓模塊前與添加后這兩種情況使用Primetime-PX(PTPX)對碼流傳輸過程進(jìn)行功耗分析,結(jié)果表明,兩種情況的平均功耗分別為P1=47.9 mW 和P2=48.7 mW。

        假設(shè)直接傳輸碼流的時間為T1,能耗為E1;添加解壓模塊之后碼流傳輸?shù)臅r間為T2,能耗為E2;由于碼流傳輸過程是勻速的,所以碼流的壓縮比ε=T2/T1。由能耗公式E=PT可得,當(dāng)壓縮比為98.36%時,E1=E2,此時碼流傳輸所消耗的能耗相等,所以當(dāng)重構(gòu)電路的壓縮比小于98.36%時,該系統(tǒng)相較于之前的架構(gòu)所消耗的能耗更少。以AES電路為例,由于其壓縮比約為68.20%,所以能耗與原先架構(gòu)的相比降低了:

        圖10 展示了應(yīng)用電路規(guī)模從1~3 953 LE 的55個不同規(guī)模電路的碼流壓縮比,由圖可得,壓縮比與規(guī)??傮w上成正相關(guān),且當(dāng)規(guī)模小于3 900 LE 時,壓縮比小于98.36%,故使用碼流壓縮傳輸?shù)姆椒梢允筫FPGA 重構(gòu)的大多數(shù)電路在碼流傳輸過程中節(jié)約部分能耗,且由該圖數(shù)據(jù)可得該系統(tǒng)在配置過程中壓縮比最小約為17.9%,所以該方法最多可在配碼階段節(jié)省約82.1%的能耗。

        圖10 電路規(guī)模與碼流壓縮比散點圖

        5 結(jié)論

        該文討論了一種基于eFPGA 的可重構(gòu)系統(tǒng)設(shè)計。通過設(shè)計配置控制電路和碼流解壓縮電路等,使得系統(tǒng)變得更加靈活、節(jié)能及可靠。仿真結(jié)果表明,該系統(tǒng)不僅可以通過軟件控制eFPGA 進(jìn)行反復(fù)編程;還支持軟硬協(xié)同加速器的應(yīng)用開發(fā)。同時在采用TSMC 28 nm 工藝條件下對該系統(tǒng)進(jìn)行綜合,結(jié)果表明,該系統(tǒng)最高在200 MHz 的頻率下依舊滿足時序要求;利用PTPX 對其進(jìn)行功耗分析時發(fā)現(xiàn)當(dāng)重構(gòu)電路碼流壓縮比小于98.36%時,相比于傳統(tǒng)架構(gòu),該架構(gòu)可以起到節(jié)省能耗的作用。

        猜你喜歡
        系統(tǒng)
        Smartflower POP 一體式光伏系統(tǒng)
        WJ-700無人機(jī)系統(tǒng)
        ZC系列無人機(jī)遙感系統(tǒng)
        北京測繪(2020年12期)2020-12-29 01:33:58
        基于PowerPC+FPGA顯示系統(tǒng)
        基于UG的發(fā)射箱自動化虛擬裝配系統(tǒng)開發(fā)
        半沸制皂系統(tǒng)(下)
        FAO系統(tǒng)特有功能分析及互聯(lián)互通探討
        連通與提升系統(tǒng)的最后一塊拼圖 Audiolab 傲立 M-DAC mini
        一德系統(tǒng) 德行天下
        PLC在多段調(diào)速系統(tǒng)中的應(yīng)用
        国产精品18禁久久久久久久久| 日日婷婷夜日日天干| 久久国产精久久精产国| av深夜福利在线| 老司机在线免费视频亚洲| 日本中文一区二区在线观看| 亚洲人成无码网站在线观看| 免费在线视频一区| 91成人自拍视频网站| 亚洲一区二区在线观看网址| 久久久久亚洲精品中文字幕| 91av视频在线| 色av色婷婷18人妻久久久| 精品天堂色吊丝一区二区| 国产精品对白刺激久久久| 国产成人午夜福利在线小电影| 国产一区二区三区porn| 无码国产精成人午夜视频一区二区 | 四虎成人精品无码永久在线| 操B小视频国产| 国内嫩模自拍偷拍视频| 777精品久无码人妻蜜桃| 欧美性猛交xxxx乱大交蜜桃| 亚洲色图第一页在线观看视频| 日韩中文字幕版区一区二区三区| 亚洲精品无码久久久久久| 免费黄色福利| 三级国产自拍在线观看| 国精品人妻无码一区二区三区性色| 69精品丰满人妻无码视频a片| 精品一区二区三区人妻久久| 男女啪啪视频高清视频| 亚洲色精品aⅴ一区区三区| 人妻无码AⅤ不卡中文字幕| 亚洲一区二区三区色偷偷| 亚洲中文字幕无码不卡电影 | 精品蜜桃av免费观看| 又大又粗欧美黑人aaaaa片| 美女黄18以下禁止观看| 99久久免费中文字幕精品| 天堂av在线美女免费|