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