如果您要设计异构多核SoC,不妨看一下Arteris的NCore缓存一致性IP

2016年06月08日 15:25    发布者:eechina
如今的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还具有模块化分布式架构。这些特征带来的好处是,系统的可扩展性强,空间效率更高,可实现高性能,而且功耗得以优化。