來源:富昌電子 作者:Patrice Brossard,EMEA 垂直細分市場經理(FPGA 和 ASIC) 多年來,半導體集成化的不可阻擋的進步一直在模糊不同類型元器件之間的界限。通過在不同類型的 IP 上加載一種類型的元器件,傳感器可以成為機器學習推理引擎,微控制器可以像應用處理器一樣運行,或者非易失性存儲器可以提供安全的硬件信任根。 2019 年末,隨著兩種具有幾乎完全不同的屬性集的系統類型(FPGA 和在 Linux® 操作環境中運行實時應用程序的處理器)的合并,這種模糊又向前邁進了一步。FPGA是一種可編程硬件結構,支持并行處理多個并發任務,而處理器是執行固定指令集架構(ISA)的硬件平臺,并支持指令線程的串行處理。 2019 年推出的 Microchip PolarFire® SoC FPGA 將這兩種元器件類型結合在一起,創建了一個單一的片上系統,它提供: · 中等密度 FPGA 的預期資源,包括多達 461k 邏輯元件、多達 1,420 個 18 x 18 數學塊、多達 33 Mb 的用戶 SRAM、8 個完全可配置的 PLL、高達 1.6 Gbps 的高速 DDR4 接口能力,以及帶有兩個硬連線 PCIe Gen2 端點/根端口、以高達 12.7 Gbps 的數據速率運行的多協議收發器。它采用成熟的低功耗 SONOS 28 nm 工藝制造,可實現顯著的低功耗。 · 一個多核應用處理器,包含一個四核 64 位 RISC-V 內核集群和一個單獨的 64 位 RISC-V 監視器內核。所有五個內核都以高達 625 MHz 的速度運行。直接處理器 I/O 功能包括兩個千兆以太網控制器、一個 USB 2.0 On-The-Go 控制器和兩個 CAN 接口。 這意味著電子系統架構師現在可以選擇既具有 FPGA 的低功耗、高熱效率和國防級安全性,又具有快速處理器的確定性執行能力的單芯片。 這種混合架構顯然需要一個系統設計工程團隊來跨越 FPGA 和微處理器這兩個世界。那么,將這兩種類型的硬件系統集成到一個單一、可靠的最終產品設計中會遇到哪些挑戰? 這種混合 SoC 平臺在以下應用中提供了獨特的功能和優勢,例如:在極端溫度環境中運行的系統,邊緣的人工智能 (AI) 推理,具有安全意識的應用程序,航空航天和國防系統,通信基礎設施。但是,為了獲得這些優勢,將這兩種產品類型結合起來的困難值得接受嗎? 了解混合處理器/FPGA 架構 PolarFire SoC FPGA 的核心是一個由 4+1 RISC-V 內核組成的確定性、連貫的 CPU 集群,如圖 1 所示。RISC-V 是針對處理器 ISA 的免費開放功能規范,并得到了不斷增長的開發專業人員、規范、軟件和其他資源的生態系統的支持。 對于 PolarFire SoC 中的 CPU 集群,Microchip 與RISC-V 專家 SiFive 合作開發了自己的硬件架構。Microchip 方案的一個獨特功能是可以自由關閉 CPU 分支預測,并使存儲器子系統具有完全確定性。 這消除了執行時間的所有變化,同時保持了四個 RISC-V 內核提供的高處理器性能,并利用了 PolarFire FPGA 的確定性特性。 第五個內核,即監控內核,用于管理引導過程和系統配置。與應用程序處理內核不同,它不包括虛擬存儲器支持。 ![]() 圖 1:PolarFire SoC 架構結合了獨立的 FPGA 硬件和 CPU 集群(圖片來源:Microchip) 所有 SoC 的存儲器都具有 ECC 和單一錯誤檢測功能,可提供非常高水平的數據完整性,這是安全關鍵型應用(例如航空航天系統)的強制性要求。 PolarFire SoC FPGA 的一個標志是其極低的功耗:圖 2 顯示了 PolarFire SoC功耗(CoreMark 處理器負載的函數)與傳統 Arm® Cortex®-A 微處理器內核功耗的比較。 ![]() 圖 2:PolarFire SoC 和 Arm® Cortex®-A 微處理器內核的功耗比較(圖片來源:Microchip) 這在電池供電系統中顯然是有利的,但不僅如此:在任何系統中,低功耗都可以消除對散熱器或風扇的需求,從而降低系統成本、尺寸和重量,并提高其可靠性。 存儲器分區支持實時Linux操作 除了 PolarFire SoC 的中等密度 FPGA 部分,Microchip 還實施了一種架構,可提供實時確定性多處理能力。要在多核系統上運行操作系統軟件,MPU 制造商可以選擇以下兩種類型的多處理架構之一: · 在對稱多處理(SMP)中,所有內核將共享主存儲器。SMP 中的內核是同質的,操作系統平等對待每個內核。這種架構使制造商能夠通過添加相同的內核來提高單核器件的性能。 · 在非對稱多處理(AMP)中,操作系統對內核的處理方式不同,它們不共享存儲器和外設。這使得系統設計人員能夠將某些類型的任務分配給一個內核,同時讓另一個內核自由運行操作系統。 典型 SMP 架構的某些特性(例如分支預測和緩存未命中)使 SoC 無法確定性地運行。執行時間不一致且無法保證,因為每個內核都會受到周期性中斷的影響。 相比之下,AMP 使用戶能夠切出一部分高速緩存,并將其保留供實時應用程序專用。PolarFire SoC 支持 SMP 和 AMP 模式,用戶可以自由選擇其中一種,甚至可以在現場更新期間更改模式。 一旦在 PolarFire SoC 中配置了 AMP 模式,實時應用程序就可以在其中一個應用程序內核上運行,這是一個已關閉分支預測的實時內核,如圖 3 所示。 這種硬件結構支持實時功能的完全確定性操作以及 Linux 操作系統。此外,中斷服務路由 (ISR) 的執行時間是確定性的,對于在基于 Arm Cortex-A 技術的等效四核微處理器上實現的 SMP 架構來說,這是無法實現的。 ![]() 圖 3:在 PolarFire SoC 的 AMP 架構中,實時功能直接訪問 L2 高速緩存的專用部分(圖片來源:Microchip) 掌握混合FPGA/MPU系統設計 混合 FPGA/MPU SoC 提供了一種獨特的能力,可以通過單個芯片滿足某些類型的應用的要求。例如,基于機器學習模型同時執行本地推理、并實時控制安全關鍵電機運行的應用可以在 PolarFire SoC FPGA 中實現 AI 功能,并在多核處理器上實現安全關鍵型控制。 然而,FPGA 和 MPU 在同一芯片上的存在意味著系統設計團隊必須在兩個獨立的設計環境中工作。兩個 PolarFire SoC 工具鏈都輸入到配置器中,該配置器生成: · “軟件”配置,用于初始化存儲器映射的 C 數據結構,將在 SoftConsole® 集成開發環境 (IDE) 中使用 · “硬件”配置,即所謂的組件,將在 Libero FPGA IDE 中使用 兩個 IDE 之間的交互如圖 4 所示。 ![]() 圖 4:用于 FPGA 的 Libero IDE 和用于 MPU 的 SoftConsole IDE 之間的關系(圖片來源:Microchip) 單獨的工具也支持設計仿真:Renode 用于在多核處理器部分上運行的軟件,ModelSim 用于 SoC 的 FPGA 部分。Microchip 還為調試將在 PolarFire SoC 上運行的復雜應用程序做好了準備。其片上調試機制通過 JTAG 接口與調試工具進行通信: · 可以使用傳統的 openOCD 調試器調試 C 代碼 · FPGA 調試工具更加專業化,因為在組件中默認嵌入了調試機制,可以動態訪問FPGA 矩陣的任何內部節點。專用工具 Smartdebug 使用此內部調試電路提供一種直觀的方法來調試應用中基于 FPGA 的部分。 有趣的是,將應用程序移植到 RISC-V 環境的條件與在 Arm 環境中的條件相似。沒有兩個基于 Arm 內核的器件具有相同的存儲器映射,同樣地,沒有兩個基于 RISC-V 的系統將共享相同的存儲器映射。因此,從一個 Arm 內核移植到另一個內核與從 Arm 內核移植到 RISC-V 內核的工作量原則上相同。 設計友好的操作和開發環境 因此,PolarFire SoC 提供了將可編程硬件功能和用于軟件應用的高性能多核平臺集成在單個芯片中的優勢。這種混合架構確實需要并行使用兩個開發環境,但 Microchip 非常關注為用戶提供一整套高度集成的工具,并為設計團隊提供高效工作的能力: · 創建或遷移系統 · 設計仿真 · 對芯片FPGA部分的硬件資源和處理器集群上運行的應用軟件進行編程 · 調試系統 |