在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

如何采用FPGA更新傳統系統提升計算能力

電子設計 ? 來源:英特爾FPGA ? 作者:英特爾FPGA ? 2021-01-25 16:01 ? 次閱讀

FPGA 技術更新傳統系統是許多嵌入式系統設計人員都知道的場景。但現有設計確實需要更新,這其中就包括連接互聯網、 IoT等。當然,我們也需要進一步增強安全性。尤其考慮到目前人們熱衷于人工智能,大家對深度學習推理或機器視覺又有了新的需求。

盡管現在已將系統整合至物聯網,但仍然面臨一個迫在眉睫的問題——這些更改將對系統硬件造成影響。直接使用 CPU 可以緩解所有的問題(圖 1)。但對于小型嵌入式設計(一開始就只有一英寸的小外形)來說,由于存在成本、功耗和散熱方面的限制,這種蠻力法可能行不通。此時,必須采用 FPGA 方法。

圖1.更新傳統系統可能需要采用新的方法來提升計算能力

事實上,系統中通常有一個老舊的小型 FPGA 負責執行實用工作:充當端口擴展器或設備控制器。然而,現在的低端 FPGA 可以充當硬件加速器,將新的計算要求拉回至現有系統處理器范圍之內。

采取下一步行動

我們需要采取進一步行動,考慮將系統(或子系統)的 CPU 或微控制器單元 (MCU) 也整合到 FPGA 中是否可行?顯而易見,答案是“當然不可行”。眾所周知,FPGA 中的軟 CPU 內核尺寸大、速度慢、價格貴。除了對于重要的嵌入式系統來說,這些概括性說法都不對。

我們不是在討論擁有強大 CPU 性能的系統。(比如 Arm* Cortex*-A53 內核集群。)在硬件中包含此類 CPU 集群的中端 FPGA,但該主題不在本文介紹范圍之內。今天我們討論的是處理器適用范圍更廣的系統(或總體設計中的子系統):微控制器中的 Cortex-M 級內核,或真正的傳統 CPU,如 68000。通常情況下,這種老舊處理器不適用于系統設計,因為它們始終不愿意接觸古老、文檔不完整的代碼,直至最后生命周期結束被迫淘汰。我們要介紹的是,通??梢詫⑦@種小型或老舊 CPU 整合至低端 FPGA 中(圖 2)。

圖 2.小型現代 FPGA 可以吸收舊設計中所有的傳統處理器

“芯”起點在哪兒?

如果您有用 C 或 C++(最好是通過原始測試工作臺)編寫的文檔化源代碼,那么情況將對您非常有利。您可以從適用于在 FPGA 中進行軟實施的整個 CPU 內核選項中進行選擇。然后,還可以針對所選的 CPU 重新編譯并測試代碼。

遺憾的是,測試結果并不總是樂觀的。過去,微處理器的編譯器并不總是適合嵌入式設計,尤其是對于存在實時限制的子系統。老代碼或保守型工程師編寫的代碼,可能完全是用匯編語言編寫的。現代代碼主要是用 C 語言編寫的,其中關鍵例程用匯編語言手動編寫。無論采用哪種語言編寫,都至少會有一部分代碼鎖定在特定的指令集架構中。

其次,需要謹慎考慮硬件獨立性程度,不是語言方面,而是編碼風格方面。在過去節省代碼空間和縮短延遲至關重要的時候,往應用代碼中嵌入中斷處理程序、驅動程序和物理 I/O 地址等不良實踐通常被認為是明智之舉,這些做法會加大移植到新硬件的難度。過去,一些極其糟糕的想法,比如編寫時序依賴型代碼,通常被認為更加明智。這種代碼可能需要重新編寫,才能在快速的現代硬件上運行。但即使存在匯編語言源代碼和不合時宜的編碼風格,我們仍然可以采用實際方法將傳統模塊整合到 FPGA 中。

第一種方法是,如果 CPU 的確非常老舊,則使用開源寄存器傳輸級 (RTL) 模型在 FPGA 中重新實施傳統微處理器或微控制器。Github 等資源擁有許多用于傳統處理器(包括 6502、Z80、6809、68000 和 8086)的 Verilog 模型。但在這些內核中進行設計之前,必須考慮幾個問題。

第一個問題是合法性。因為 Verilog 可用并不意味著您擁有在商業產品中使用該設計的合法權利。有一些模型是研究人員和業余愛好者編寫的,沒有考慮到知識產權。因此,很久之前的一些架構可能實際上位于公共域中。

另一個問題是作者的意圖。例如:Verilog 是架構的近似功能描述。它的目的是僅在模擬中執行代碼,還是封裝在用戶控件邏輯和 I/O 中?或者,該模型是否包含進入微處理器芯片的其他所有硬件?您必須匹配 Verilog 模型的特性和傳統系統的需求,否則將要花費大量的時間來了解舊芯片的劣勢。

接下來就是一些令人傷神的細節問題。SiFive 產品經理 Jack Kang 指出,與現代 CPU 一樣,傳統 CPU 也在整個產品生命周期中經歷了多次修改,每次修改都會糾正一些錯誤或劣勢。Verilog 代表哪個版本?或者它是一個理想化版本,代表著作者假定芯片怎樣正常運行的方式?最后是設計師的謹慎程度。該模型是否按照實際傳統芯片一個循環接一個循環地運行?是否啟動了您需要使用的操作系統?是否成功合成過?

如果 Verilog 模型無法正常運行,還有另一個選擇。老舊的 CPU 速度非常慢,以致于在當前 FPGA 中的微小現代 RISC 內核上運行的指令集模擬器都可以實時地遍歷傳統代碼,尤其是當麻煩序列卸載到 FPGA 中其他位置的狀態機上時。這種方法不能簡單地呈現周期精確或時序精確,但在功能上是正確的。而且它還可以將移植問題從硬件域轉換到軟件域,在軟件域,您可以訪問整個調試工作臺,這樣移植問題處理起來容易得多。

如何實施 CPU?

討論了將傳統代碼遷移至新系統的可行性和難度后,接下來的問題是如何在低端 FPGA 中實施 CPU 內核。我們之前討論過復制傳統 CPU 的情況,現在我們可以來了解下實施現代高性能 CPU 的選項。

主要問題是處理器內核依賴部分硬件結構,這種結構在 ASIC 中以標準單元甚至是自定義邏輯的形式實施,無法在 FPGA 結構中輕松高效地復制。因此,我們必須了解三種不同情況(圖 3):

僅通過用于模擬或 ASIC 合成的 Verilog 模型進行合成的 CPU 內核 — 即所謂的開箱即用場景。

擁有面向 FPGA 合成手動優化的 RTL 的內核。

從一開始就開發了架構以在 FPGA 中實施的內核。每種方法的可用性、規模和性能都不相同。這些方法都適用于現代低端 FPGA。

圖3.CPU 內核中的三種 FPGA 優化級別。

開箱即用

盡管并不是每家 CPU 內核知識產權 (IP) 廠商都專門針對 FPGA,但大多數 IP 提供商都至少提供兩條遷移至 FPGA 內核的路徑。最明顯的路徑是授權面向內核的 RTL 源代碼,并通過 FPGA 廠商的工具鏈運行該代碼。實施這條路徑會遇到很多挑戰,全都是因為該 RTL 用于 ASIC 合成,而非 FPGA 合成。

特別是首次在 FPGA 中嘗試運行該代碼,那么遇到第一個問題將是:源代碼中的有些東西是采用 FPGA 合成工具無法處理的。代碼可能與合成工具不兼容的方式被隱藏或加密,可能包含您的工具無法識別的編譯指示、信號命名,甚至是帶有破壞性的注釋約定。您可以編輯這些內容,但會因此產生第二個問題:許可。

如果您使用用于 ASIC 開發的 Verilog 源代碼,可能需要進行編輯。這意味著您需要包含完整文檔的未隱藏的源代碼,以及/或 IP 廠商的大量支持。這些都是可用的,但它們都是針對財力雄厚、產量巨大、擁有大型法務部門的客戶所編寫和定價的。

還有另一條路徑:一些 IP 廠商提供評估或開發套件,您可以通過它們在 FPGA 中實施 CPU 內核。該內核可能沒有經過高度優化,但至少可以運行和驗證,而且其速度對軟件開發來說足夠快。

SiFive 產品經理 Jack Kang 表示,他的一些客戶已經采用了這種方法。該公司的 CoreDesigner 工具支持您從各種 RISC V 預配置內核開始,根據您特定的需求調整配置,然后輸出 RTL。但該工具也會在 SiFive 的開發套件上輸出一個關于 FPGA 的編程文件。

Kang 還指出,“RISC V 的這種 FPGA 實施并未面向 FPGA 使用進行高度優化,但仍然包含不到 20K 的查找表,而且速度可以達到 100 Mhz 左右,當然這很大程度上取決于配置。這種規模適合許多留有大量空間的低端 FPGA,支持您快速、輕松地將常用開源內核整合到系統中?!?/p>

優化方法

有一些方法可以改善這些數據,但需要采取一些措施。之所以有這種改善機會,是因為 CPU 中有一些結構并不適合 FPGA 邏輯結構。

FPGA 使用大量相同邏輯元件陣列來實施邏輯,每個元件都包含一些查找表 (LUT) — 通常每個 LUT 包含 4 個輸入 — 以合成邏輯函數,以及一個或多個觸發器。這種安排適用于大多數隨機邏輯、管道和簡單狀態機。對于高扇入邏輯,由于可能出現在算法硬件和地址解碼器中,因此合成往往會生成一長串窄邏輯元件,從而消耗互連并導致延遲。對于基于內存的功能,比如寄存器文件、高速緩存和相聯內存,一次將功能映射至邏輯元件的觸發器(一或二位)可能要消耗大量資源,即使廠商工具足夠智能,嘗試將邏輯元件的 LUT 和觸發器隔離,并單獨使用它們。

很久以前,當 FPGA 首次用于數據包切換、數字信號處理和類似應用時,這種不匹配就非常明顯。為了解決這個問題,FPGA 廠商在邏輯結構中嵌入了大型可分割 SRAM 模塊和硬件乘法累加模塊。通過使用這些資源,通??梢燥@著改進 CPU 實施規模,有時還可以提高性能。但可能需要在 RTL 源代碼中或合成過程中運用一定的知識進行干預。如果熟練的 FPGA 用戶仔細檢查 RTL,并面向 FPGA 合成使用已知最佳 FPGA 編碼實踐對其進行調優,能夠進一步提升性能。

特定于 FPGA 的內核

行業標準 CPU 內核,比如 Cortex-M 家族或 RISC V,提供熟悉度、成熟的(或以 RISC 為例不斷壯大的)工具和軟件生態系統,以及在 FPGA 廠商之間輕松遷移或遷移至 ASIC 實施的機會,甚至在某些情況下還可遷移至第三方現成的 SoC。但反過來要付出一定的代價:費用、規模,有時還有性能。

如果您想最大限度地優化 FPGA,還需采取另一個步驟:不僅優化實施過程,還要優化 CPC 和指令集架構本身:從一張白紙開始,僅添加對 FPGA 友好的結構。很久以前,當 FPGA 首次變得足夠大,可容納 CPU 內核時,主要 FPGA 廠商就已經開始做出這樣的努力。他們始終在做出這樣的努力:在英特爾案例中為 Nios? II 處理器,其以發展演進為專有 CPU 架構,不斷壯大由工具、軟件和 FPGA 外設 IP 組成的生態系統。

目前,這些內核家族提供多種類型的產品,從具備最少特性的小型微內核 (和 Arm 的 Cortex M0 沒什么不同)到全功能、支持 Linux 的 CPU。其中許多型號都適用于廠商的低端 FPGA。例如,緊湊型 Nios Iie 內核只需大約 1000 個邏輯元件,但速度可達到或超過 75 MHz。在另一個極端,具備高速緩存和內存管理功能,且能夠運行 Linux* 操作系統的內核大約需要 5000 個元件。在這兩者之間還有許多選擇來滿足特定需求。甚至這種全功能配置也足夠小,不但可以將多核 CPU 集群放在一臺低端英特爾? MAX? 10 設備中,還仍然擁有足夠的空間。

因此,有許多方法可以將傳統 CPU 功能遷移至低端 FPGA,同時仍然擁有豐富的資源來支持傳統接口或控制器功能、IoT 連接、安全性,或機器學習加速。古老的機器代碼可在 FPGA 上運行,以向老舊 CPU 致敬,也可在現代內核的指令集模擬器上運行。

高級語言代碼可面向現代代碼進行編譯。極具挑戰性的代碼模塊可以卸載到 FPGA 中的加速塊中,然后通過多種優化程度各不相同的方法,得到許可并在 FPGA 中實施現代 CPU 內核的某個版本。為了最大限度地提高資源效率,廠商專有 CPU 內核可在各種性能和功能點中實現最佳的緊湊性,且幾乎適合所有的設計場景。
編輯:hfy

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 微控制器
    +關注

    關注

    48

    文章

    7596

    瀏覽量

    151742
  • FPGA
    +關注

    關注

    1630

    文章

    21777

    瀏覽量

    604680
  • 嵌入式系統
    +關注

    關注

    41

    文章

    3610

    瀏覽量

    129603
  • 機器視覺
    +關注

    關注

    162

    文章

    4399

    瀏覽量

    120492
  • 深度學習
    +關注

    關注

    73

    文章

    5510

    瀏覽量

    121343
收藏 人收藏

    評論

    相關推薦

    通過邊緣計算網關輕松實現plc的程序更新

    ,從而制約了生產效率和智能化水平的提升。天拓四方TDE邊緣計算網關作為一種高性能的邊緣計算設備,為PLC程序的更新提供了一種高效、可靠的解決方案。 它能夠實現對工業數據的實時采集、處理
    的頭像 發表于 11-20 09:53 ?208次閱讀

    計算傳統計算的區別

    根據實際需求動態獲取資源,無需進行大量的預先投資。 管理方式:云計算平臺負責資源的分配、管理和維護,用戶無需關心底層硬件和軟件的細節。 傳統計算 : 資源獲?。河脩粜枰孕匈徺I和部署硬件設備,以及安裝和維護軟件系統。
    的頭像 發表于 10-24 09:13 ?861次閱讀

    FPGA在圖像處理領域的優勢有哪些?

    。這種并行處理能力使得FPGA在處理大規模圖像數據時表現出色,能夠實時完成復雜的圖像處理算法。 二、高靈活性 FPGA具有很高的靈活性,可以根據需要實時調整硬件架構。這意味著當圖像處理算法需要
    發表于 10-09 14:36

    智慧水利山洪災害防御能力提升系統

    一、背景隨著科技的快速發展,智慧水利技術逐漸成為解決水資源管理、水環境保護以及水災防治等問題的關鍵手段。其中,智慧水利山洪災害防御能力提升系統,作為智慧水利的重要組成部分,其在保障人民生命財產安全
    的頭像 發表于 08-05 14:42 ?298次閱讀
    智慧水利山洪災害防御<b class='flag-5'>能力</b><b class='flag-5'>提升</b><b class='flag-5'>系統</b>

    基于 FPGA 的會議系統設計

    固定,當會議一端有多人參與時,就需要每人都單獨開一個窗口才能有較好的效果,較為不便?;诖?,我們設計了一個新的會議系統,以更好地適應多人會議的需求。 本系統以 Xilinx PYNQ-Z2 FPGA
    發表于 08-01 18:40

    談一談FPGA設計中的功率計算

    隨著工藝技術的越來越前沿化, FPGA器件擁有更多的邏輯、存儲器和特殊功能,如存儲器接口、 DSP塊和多種高速SERDES信道,這些發展不斷地對系統功率要求提出挑戰。 功率計算的關鍵是兩方面:靜態
    發表于 07-31 22:37

    FPGA在自動駕駛領域有哪些優勢?

    領域的主要優勢: 高性能與并行處理能力FPGA內部包含大量的邏輯門和可配置的連接,能夠同時處理多個數據流和計算任務。這種并行處理能力使得FPG
    發表于 07-29 17:11

    FPGA與MCU的應用場景

    錯誤還請指正。 首先,FPGA(現場可編程門陣列)和MCU(微控制器)都是兩種常見的集成電路。盡管它們都可以被視為“小型計算機”,但它們在可編程性和處理能力方面存在顯著差異。但是FPGA
    發表于 07-29 15:45

    高通打破Android系統更新壁壘,提升中低端手機用戶體驗

    ,中低端及入門級手機卻常常面臨更新支持不足的尷尬境地。針對這一現狀,高通公司正積極采取行動,力圖打破這一僵局,提升中低端手機的系統更新頻率和用戶體驗。
    的頭像 發表于 06-29 16:41 ?2168次閱讀

    基于FPGA的類腦計算平臺 —PYNQ 集群的無監督圖像識別類腦計算系統

    顯著的速度提升。 (3)本設計也為對應用進行計算密集點的分析、SNN 工作負載分析以及對主要計算密集 點進行 FPGA 加速等課題相關議題提供理論基礎。 1.3 主要技術特點
    發表于 06-25 18:35

    如何提升嵌入式編程能力?

    如何提升嵌入式編程能力? 要提升嵌入式編程的能力,可以從以下幾點學習: 1. 理解硬件:熟悉你正在編程的硬件平臺,包括微控制器、處理器、內存、輸入/輸出設備等基礎理論與應用。 2. 學
    發表于 06-21 10:01

    邊緣計算單元多接入能力怎么算

    和負載特征等。通過綜合考慮這些因素,可以更準確地評估邊緣計算單元的多接入能力,并采取相應的優化措施來提高系統的性能和可靠性。
    的頭像 發表于 05-16 17:51 ?348次閱讀

    借助全新 AMD Alveo? V80 計算加速卡釋放計算能力

    對于大規模數據處理,最佳性能不僅取決于原始計算能力,還取決于高存儲器帶寬。 因此,全新 AMD Alveo? V80 計算加速卡專為具有大型數據集的內存受限型應用而設計,這些應用需要 FPGA
    發表于 05-16 14:09 ?242次閱讀
    借助全新 AMD Alveo? V80 <b class='flag-5'>計算</b>加速卡釋放<b class='flag-5'>計算</b><b class='flag-5'>能力</b>

    FPGA的力量:2024年AI計算領域的黑馬?

    隨著人工智能(AI)的快速發展,其對計算能力的需求也在持續增長。傳統的中央處理器(CPU)和圖形處理器(GPU)雖然在AI計算中占據主導地位,但面對日益增長的數據量和
    的頭像 發表于 03-07 09:37 ?954次閱讀
    <b class='flag-5'>FPGA</b>的力量:2024年AI<b class='flag-5'>計算</b>領域的黑馬?

    《RVfpga:理解計算機體系結構》3.0 版本更新上線

    《RVfpga:理解計算機體系結構》3.0版本更新上線,掃碼進入官網注冊申請獲取?!禦Vfpga:理解計算機體系結構》(以下簡稱“《RV
    的頭像 發表于 01-18 08:27 ?812次閱讀
    《RV<b class='flag-5'>fpga</b>:理解<b class='flag-5'>計算</b>機體系結構》3.0 版本<b class='flag-5'>更新</b>上線
    主站蜘蛛池模板: xxxx69日本| 五月天婷婷网亚洲综合在线 | 欧美亚洲韩国国产综合五月天 | 久久在草 | 在线视频网址免费播放 | 91国内在线国内在线播放 | 看免费黄色大片 | 亚欧有色亚欧乱色视频 | 五月天丁香激情 | 久久精品亚洲一区二区三区浴池 | 午夜在线观看网站 | 亚洲欧美一区二区久久香蕉 | 日本一道dvd在线中文字幕 | 四虎影院的网址 | 欧美一级特黄视频 | 国产午夜精品久久久久免费视小说 | www.久久综合 | 黄色3级| 538porm在线看国产亚洲 | 免费啪视频在线观看免费的 | 亚洲人一区 | 大香伊在人线免费 | 亚洲精品播放 | 成人黄网大全在线观看 | 欧美又粗又硬又大久久久 | 免费国产小视频 | 国内久久久久高清影视 | 午夜视频日本 | h视频免费看 | 美女国产在线观看免费观看 | 国产网红主播chinese | 手机看片福利日韩 | 午夜剧场一级片 | 日本三级网址 | 国产亚洲精品久久午夜 | 亚洲视频www | 日本xxx69hd| 日韩成人毛片高清视频免费看 | 色色色色色色色色色色色色 | 韩国黄色三级视频 | 日本免费视频 |