如今的SoC越來越復雜,往往包含多種功能模塊,如CPU、GPU、DSP、FPGA等等。這樣的SoC設計不太可能全部由一個公司獨立完成,參考、購買其他公司IP的情況非常普遍。有些公司非常精通某些領域的設計,比如我們今天將要介紹的Arteris,它在片上互連方面具有獨到的造詣。 Arteris成立于2003年,總部位于美國加州Campbell市。2005年該公司推出第一款片上互連(Network-on-Chip,NoC)產品,之后又相繼推出FlexNoC、FlexPSI、FlexNoC Resilience Package和FlexNoC Physical等IP。 您可能從未聽說過Arteris,但很多知名的大公司都已經采用了Arteris的SoC架構,其中包括手機應用的三星、高通、海思、展訊,汽車應用的德州儀器、NXP,以及SSD應用的Altera。這些半導體巨頭在SoC設計方面實力雄厚,但仍要引進Arteris的架構,這足以說明Arteris的價值。 Arteris最新推出的IP產品叫作NCore,這是一種在異構多核SoC設計中保證緩存一致性的互連方案。 緩存與處理單元緊密匹配。與片外DRAM相比,緩存的延遲低、帶寬大、功耗小,設置緩存可以大幅提升芯片性能。緩存產生多個數據拷貝,硬件緩存可實現扁平、共享的存儲數據。這些數據拷貝必須保持一致,對軟件不產生任何影響。但如何管理這些硬件拷貝是個挑戰,需要大量的通信才能完成。解決這個問題的方法是探聽(snoop):探聽過濾器通過跟蹤緩存內容來降低通信壓力。 NCore在整個系統中的作用如圖1所示,它連接各種一致性端口(如CPU、GPU)、非一致性端口(如圖像處理、顯示處理、子系統和外設等)和存儲端口。其內部結構如圖2所示,它包含了一致性端口的接口,而且為非一致性端口配置了代理緩存,使得非一致性單元的性能得到提升。最重要的部分是探聽過濾器目錄,它支持多種一致性模型,多個可配置的探聽過濾器為管理各種不同的緩存提供了方便。 圖1:NCore在多核異構系統中的作用 圖2:NCore內部結構 NCore讓每一個一致性端口的行為和特性適應統一的模型。不僅如此,NCore采用一種獨特的方式,把具有相同特性的端口歸在一起,這樣比傳統的單片探聽過濾器所占的空間更小。 圖3:多個snoop filter設計所占的硅面積更小 除了多個可配置探聽過濾器、多個可配置代理緩存,NCore還具有模塊化分布式架構。這些特征帶來的好處是,系統的可擴展性強,空間效率更高,可實現高性能,而且功耗得以優化。 |