圖1、使用嵌入式FPGA作為可重構的計算加速器
雖然嵌入式FPGA(eFPGA, embedded FPGA)是一項相當新穎的技術, 但它正迅速在廣泛的應用中找到了一席之地。
圖2、eFPGA的架構
eFPGA的一個主要優點是可以重新程式設計以加速多項任務。
下面是幾個例子, 說明如何使用eFPGA來加速AXI / AHB匯流排, 以及每個用例所帶來的潛在性能改進。 eFPGA可用於加速多種類型的加速器, 而不僅僅是ARM。 但是在這裡我們僅僅以ARM為例, 因為它是當今應用最廣泛的處理器, 並且很容易驗證其性能方面。
在下面的例子中, 在嵌入式FPGA中實現用於資料移動的AXI4流匯流排和用於控制邏輯的APB匯流排。 由於該介面功能不會改變, 所以也可以在外部硬連線。
圖3、AES-128加速器
該AES-128加速器的RTL需要1142個LUT, 並且可以安裝在單個EFLX-2.5K IP內核中, 該內核可在多個進程節點中使用。
圖4、AES-128加速器
這一性能比在同一過程中運行在ARM Cortex M4上的AES-128軟體代碼快136-300倍, 具體取決於ARM M4的時鐘速度。
SHA-256在以下示例中, AXI4從站RTL位於eFPGA的外部, 用於加速器資料移動和加速器寄存器配置。 AXI4從機邏輯是外部資料移動的最低匯流排延遲。
這個SHA-256加速器的RTL, 使用64位元組的資料塊, 需要1634個LUT, 並且適合單個EFLX-2.5K IP內核, 這個內核可以在多個進程節點中使用。 在TSMC16FFC中, SHA-256加速器以171MHz(-40 / 125C, 0.72V介面, 慢 - 慢角)的最壞情況運行。
圖5、SHA-256
這一性能比運行在ARM Cortex M4上同一個進程中的SHA-256軟體代碼快大約40倍。
以下是配置為JPEG編碼器的eFPGA的框圖。 在這個例子中, AXI4-stream和APB介面邏輯在嵌入式FPGA自身中被實現, 但是這個RTL很容易被放置在外部並被硬連線, 因為它不需要被重新配置。
此RTL需要11,364個LUT和大量記憶體(2 x 256 KB雙埠RAM), 同時需要連接到eFPGA。 與可用的I / O相比, 附加到記憶體所需的信號數量非常少。
圖6、JPEG編碼器的eFPGA的框圖
TSMC16FFC在最壞情況)下其性能為149 MHz。而這也是在同一進程中運行在ARM Cortex M4上的JPEG編碼器軟體代碼輸送量的31倍。
256點FFT
以下示例顯示配置為256點FFT加速器的eFPGA作為AXI4流匯流排上的從站/主站,在EFLX陣列中實現了AXI RTL。
RTL需要8,360個LUT和16個外部RAM(每個256個位元組,雙埠)。在這個例子中,RAM連接在陣列內部以獲得更好的性能。
TSMC16FFC 在最差的情況下是303MHz。 ARM處理器的基準測試不可用,但是由於MAC和記憶體參考的高並行性,我們預計這種可重構加速器的性能遠遠超過傳統的典型的處理器內核。
結論使用eFPGA作為可重新配置的加速器具有顯著的優勢,可以提供30到300倍的性能提升。它的重新配置能力使得eFPGA能夠一次加速多個功能,並且可以隨時根據不斷變化的標準或者協議進行無縫升??級。這些優勢使得eFPGA在處理器密集型應用(如資料中心,網路,深度學習,人工智慧,航空航太,國防等等)中非常有用。
(完)
圖6、JPEG編碼器的eFPGA的框圖
TSMC16FFC在最壞情況)下其性能為149 MHz。而這也是在同一進程中運行在ARM Cortex M4上的JPEG編碼器軟體代碼輸送量的31倍。
256點FFT
以下示例顯示配置為256點FFT加速器的eFPGA作為AXI4流匯流排上的從站/主站,在EFLX陣列中實現了AXI RTL。
RTL需要8,360個LUT和16個外部RAM(每個256個位元組,雙埠)。在這個例子中,RAM連接在陣列內部以獲得更好的性能。
TSMC16FFC 在最差的情況下是303MHz。 ARM處理器的基準測試不可用,但是由於MAC和記憶體參考的高並行性,我們預計這種可重構加速器的性能遠遠超過傳統的典型的處理器內核。
結論使用eFPGA作為可重新配置的加速器具有顯著的優勢,可以提供30到300倍的性能提升。它的重新配置能力使得eFPGA能夠一次加速多個功能,並且可以隨時根據不斷變化的標準或者協議進行無縫升??級。這些優勢使得eFPGA在處理器密集型應用(如資料中心,網路,深度學習,人工智慧,航空航太,國防等等)中非常有用。
(完)