<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 業(yè)界動態(tài) > 以基于賽靈思 FPGA 的硬件加速技術(shù)打造高速系統(tǒng)

          以基于賽靈思 FPGA 的硬件加速技術(shù)打造高速系統(tǒng)

          作者:Endric Schubert博士 Missing Link Electronics 公司總經(jīng)理 Leo Santak Missing Link Electronics 公司技術(shù)人員 時間:2011-04-29 來源:電子產(chǎn)品世界 收藏

            設(shè)計人員時常需要通過增加計算能力或額外輸入(或兩者)延長現(xiàn)有的嵌入式系統(tǒng)的壽命。而可編程系統(tǒng)平臺在這里大有用武之地。我們曾經(jīng)希望用安全網(wǎng)絡(luò)連接功能升級一套網(wǎng)絡(luò)可編程系統(tǒng)。安全網(wǎng)絡(luò)連接功能需要加密才能運行安全外殼 (SSH)、傳輸層安全 (TLS)、安全套接層(SSL) 或虛擬專用網(wǎng) (VPN) 等協(xié)議。這種安全需求與把各種系統(tǒng)接入因特網(wǎng)的需求同步增長,例如,為了啟用遠(yuǎn)程管理與分布式控制系統(tǒng)。

          本文引用地址:http://www.ex-cimer.com/article/119146.htm

            因該領(lǐng)域仍在發(fā)展并且標(biāo)準(zhǔn)尚未固定,因此成本主要取決于一次性工程費用。所以, 技術(shù)能實現(xiàn)最高價值。我們的系統(tǒng)基于 Mi s s i n g L i n k Electronics (MLE) 公司的“軟”硬件平臺,其 靈活的 I/O 能夠連接各種傳感器和執(zhí)行器。該平臺采用可編程邏輯實現(xiàn)片上系統(tǒng),以 MicroBlaze ™ CPU或 PowerPC® CPU 作為其核心。 CPU 為操作系統(tǒng)與用戶空間應(yīng)用軟件運行 MLE Linux 軟件棧。由于采用 MicroBlaze 或PowerPC 作為主 CPU,當(dāng)運行嵌入式Linux 操作系統(tǒng)外加強大加密功能時該系統(tǒng)顯然無法提供所需要的計算性能。況且也無法改變物理硬件。為了實現(xiàn)系統(tǒng)加速,我們使用可編程系統(tǒng)把計算從軟件域轉(zhuǎn)移到硬件側(cè)。

            協(xié)處理硬件可編程系統(tǒng)基本上是一個或幾個CPU( 運行操作系統(tǒng)與應(yīng)用軟件)的組合,外加一個 。FPGA 在其中用作靈活的接口“適配器”及協(xié)處理硬件。我們可以在單獨輔助芯片上實現(xiàn)可編程系統(tǒng),或者將全部都集成到單個的器件上。我們可以根據(jù) FPGA 器件和 CPU 之間的通信方式,采用不同方法調(diào)節(jié)系統(tǒng)性能和功能。

            其中一種方法就是添加對等處理器,通過內(nèi)存映射狀態(tài)和控制寄存器與 CPU實現(xiàn)同步。因為通過同一系統(tǒng)總線運行所有通信會很快降低性能,因此我們實際上希望把 CPU 數(shù)據(jù)流與對等處理器分開。而采用賽靈思 Central DMA 或多端口儲存器控制器 (MPMC) 等片上系統(tǒng)組件能夠輕松滿足上述愿望。

            另外,也可以增加一個協(xié)處理器,這種情況下能通過增加自定義指令(也叫編譯功能)有效地擴展 CPU 的指令集。例如,它適合浮點單元,而且賽靈思結(jié)構(gòu)協(xié)處理器模塊 (FCM) 技術(shù)能輕松支持上述功能。此處的優(yōu)勢是在 CPU 和協(xié)處理器之間使用一條從內(nèi)存到系統(tǒng)總線的專用通信通道。對于 PowerPC,其為輔助處理單元 (APU),而對于 MicroBlaze,則是快速單工鏈路 (FSL)。

            圖 1 — 在采用 Valgrind 工具的 SCP 傳輸中,AES 加密占用三分之二的計算任務(wù)。

            AES:黃金標(biāo)準(zhǔn)

            但是沒有重大的系統(tǒng)重新設(shè)計,又該如何真正加速加密?

            對于加密,高級加密標(biāo)準(zhǔn) (AES) 是一個事實標(biāo)準(zhǔn)。

            采用 AES 加密時,無法通過定義減少計算任務(wù),從而使嵌入式系統(tǒng)很快達到性能極限。如圖 1 所示,其中顯示用Valgrind 分析工具、通過 SCP(SSH 會話)進行的文件傳輸?shù)姆治鼋Y(jié)果。此時AES 加密占用三分之二計算任務(wù)。

            AES-128采用秘鑰和 128 位塊大小,使用許多并發(fā) 8 字節(jié)運算。AES 屬于分組密碼,基于按 4x4 字節(jié)陣列組織的固定分組大小運算。我們曾經(jīng)采用 128位分組大小,它能抵擋所有已知攻擊,安全性甚至強于 192 位和 256 位版本。

            采用 128 位 AES 時,執(zhí)行加密與解密需要 12 個回合,每個回合需要幾步運算。第一項任務(wù)是通過所謂的密匙擴展過程從密鑰中算出回合金鑰。每個回合都采用純文本自身的回合密匙執(zhí)行純文本的逐位異或運算。然后進行字節(jié)代替、行位移和列混合運算,并再次執(zhí)行回合金鑰的異或運算。

            最后一個回合稍有不同,因為其中省略了一些步驟。加密過程采用所謂的S 盒(其提供非線性)執(zhí)行替代。我們可以把它安置到一個 16×16×8 位矩陣中,從而能夠適應(yīng)常見的賽靈思 BRAM原語。多個 S 盒實例可以加速 IP 核并在適當(dāng)?shù)奈恢脼閮?nèi)核提供所需數(shù)據(jù),而無需等待對主存儲器的長時間總線存取。解密過程大同小異,其采用相同密鑰,但方向相反,并且使用不同 S 盒。

            快 12 倍

            在加密和解密中,大部分運算按行或列執(zhí)行,剩下四項運算并行計算 —而硬件對此任務(wù)得心應(yīng)手。這樣就能夠通過不同來源實現(xiàn) AES 硬件的各個部分。為了加速系統(tǒng),我們從龐大、快速增長的 OpenCores.org 資源庫獲取AES 內(nèi)核。

            我們刪除了原有的總線接口(因為它適用于另一種 FPGA 架構(gòu)),另外為APU 添加了一個接口,以便把 AES 內(nèi)核作為 FCM 協(xié)處理器連接到 PowerPC上。我們共使用 8 個所謂的 UDI 指令在PowerPC 和 AES FCM 之間傳輸數(shù)據(jù)。工作結(jié)果非常令人滿意( 見圖2) 。硬件加速的系統(tǒng)比原實現(xiàn)快了12 倍。原來用以 300 MHz運行的獨立的 PowerPC 加密一個單塊需要 17.8微秒,而采用以 150 MHz 運行的 AESFCM 只需 1.5 微秒。如果只以升級到速度稍快的 CPU來加速運算,我們采用硬件加速后的 1.5 微秒速度表現(xiàn)超過基于 Intel Atom 1.6-GHz CPU 的純軟件實現(xiàn)(其需要 2.7 微秒)。上述結(jié)果證明了使用 FPGA 技術(shù)的硬件加速的卓越潛能。

            圖 2 — 硬件加速系統(tǒng)(中間綠條)快于獨立的 PowerPC 或 Atom 處理器。



          關(guān)鍵詞: Xilinx FPGA

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();