总线互联noc/nic400/designWare fabric

1-3节介绍了业界常用的3种总线interconnect IP

1.synopsys的designWare

DesignWare IP Solutions for AMBA - Infrastructure & Fabric

        在这种情况下,设计者使用AMBA的各种DW组件(Fabric)来自行搭建互联结构。这样在简单系统还可以,复杂SOC很容易出问题。

        另外Synopsys也提供了自动集成的工具 coreAssembler。该工具或许可以向NOC那样直接生成总线互联结构(暂时没有使用过,猜测)。

面向AMBA 互连的 DesignWare IP 解决方案

2.ARM的NIC-400

        The CoreLink NIC-400 Network Interconnect is highly configurable and enables you to create a complete high performance, optimized, and AMBA-compliant network infrastructure. There are many possible configurations for the CoreLink NIC-400 Network Interconnect. They can range from a single bridge component, for example an AHB to AXI protocol conversion bridge,
to a complex interconnect that consists of up to 128 masters and 64 slaves of AMBA protocols.

        可参考ARM® CoreLink™ NIC-400 Network Interconnect Technical Reference Manualicon-default.png?t=N7T8http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0475g/index.html

        NIC是crossBar结构的总线互联,一般用在主从设备较少的情况下,这种情况下NIC的效率很高,在1到2个时钟周期数据就能到达从设备。所以常看到NIC被用在子系统内部互联多个apb的slave

        NIC是只支持amba的协议【因为NIC和AMBA都是ARM一家的】,不像NOC需要专门的路由协议

        ARM总线产品还有CCI(CrossBar),CCN(Ring),NOC(Mesh)三类。可参考:

NOC总线架构拓扑介绍(转载) - 知乎弄清了访存的路径,可能就会想到一个问题:处理器发出去的读写请求到底是个什么东西?要想搞清楚它,就需要引入总线。下文我拿ARM的AXI/ACE总线协议以及由它衍生的总线结构来展开讨论。这两个协议广泛用于主流的手…icon-default.png?t=N7T8https://zhuanlan.zhihu.com/p/93409326

3.NoC

3.0 NOC的起源

参考Intel和Facebook 都看好的技术:NoC神奇在哪里?

     下面一段摘自嵌入式系统/ARM技术中的片上网络取代片上总线 - 将睿

     法国高新企业Arteris公司日前公布了一种可取代传统片上总线系统的新型解决方案,即可适应当今许多复杂单片系统(SoC) 设计所采用的多个异步时钟的片上网络 (NOC)系统。

    NOC解决方案为片上通信提供了一种全新的联网手段,据称其性能大约为传统总线系统的三倍。SoC解决方案可与专用片上总线架构及商用片上总线——如ARM公司的AMBA(高级微控制器总线架构)及Sonic公司的 SiliconBackplane等相媲美。 

    Arteris公司营销副总裁Philippe Martin称,NOC解决方案将联网概念运用于片上通信。与利用网络来连接多台计算机的方法相类似的是,NOC解决方案将多个分布式系统(例如IP块及功能集等)连在一起,从而能减少迹线数量并因此而减少设计中的延时。Martin说:“过去几年,人们对NOC进行了相当多的研究,但大部分是学术性研究,而现在我们能提供商用产品。”该产品包括Danube NOC IP库、用于得出NOC架构的NOCexplorer,以及用于生成SystemC及可综合Verilog与VHDL的NocCompiler。

    Martin表示,NOC解决方案的目标针对采用异步设计方法(即在一块芯片上采用多个时钟及数百个IP块)的设计。鉴于此,Arteris公司开发出专用的片上以及基于分组的NTTP(NOC处理与传输协议)。而由网络接口单元 (NIU)、数据包传输单元及物理链路组成的Danube库,则包含用于执行这种协议的必要元素。芯片架构师可用NOCexplorer工具来进行NOC拓扑建模,并得出一种NOC架构。NOCexplorer用户可用一种称为GALS(全局异步、局部同步)的方法来指定一组同步逻辑。该工具利用NIU将NOC与采用片上插口标准——例如AMBA AHB(高级高性能总线)、AMBA AXI(高级可扩展接口)及OCP(开放式内核协议)2.0版等的内核相连。Danube库中的开关控制着集群间的同步链接,而库中的GALS则控制着异步链接。NOCexplorer利用一个数据流仿真引擎来对系统行为进行建模。

    在芯片架构师得出用于其设计的最佳NOC配置后,就可用NOCcompiler来生成可综合的Verilog、VHDL或SystemC,以便用传统IC设计流来完成设计。NOCcompiler拥有规则检查功能,以确保多个版本间的设计一致性。此外,它还能在预综合阶段估计电路面积。它能生成配置NOC单元的数据表格,包括一张寄存器映射表。NOC利用Artisan库和现成的EDA工具在90nm TSMC硅工艺上达到了750 MHz的工作频率。NOC解决方案的起价为35万美元。

3.1 NOC协议和简单结构

R:Router,NOC内部重要节点,用于路由和流量控制,有的地方叫做SWITCH。

NI:Network InterFace

NIU:是NI于AMBA接口的转换和异步处理【异步处理可以在NIU、LINK和switch做

LINK:连接NIU、Router/SWITCH的物理线路,上面可以有pipe和async组件

NTTP:NoC Transaction and Transport Protocol,NOC传输和处理协议

NOC采用的是基于数据包的传输和处理协议【packet-based NoC Transaction and Transport Protocol (NTTP) 】。为了完成传输和处理,NTTP包含了很多子协议:

下面一段摘自NoC协议概述-CSDN博客

1.路由协议:确定数据包在网络中的传输路径,使数据包可以从源节点到目标节点进行路由。常见的路由算法有Dijkstra算法、Floyd算法、最短路径算法等。

2.拥塞控制协议:当网络中的某些部分过载时,拥塞控制协议将采取措施防止网络拥塞,以确保数据包的可靠传输。常见的拥塞控制算法有流控制、拥塞避免、拥塞检测等。

3.流量控制协议:在NoC中,流量控制协议用于控制不同节点之间的数据传输速率,以避免网络拥塞和数据丢失。流量控制协议通常使用缓冲区来存储数据包,并在必要时限制传输速率。

4.错误控制协议:错误控制协议用于检测和纠正网络中发生的错误,以确保数据的可靠传输。常见的错误控制协议有检验和、循环冗余检测等。

5.安全协议:安全协议用于保护NoC中传输的数据和信息的安全性,防止网络攻击和数据泄露。安全协议通常使用加密和解密技术来确保数据的机密性和完整性。

所以说NOC在流控,QOS和security及功能安全都做的很好,这些是NIC所没有的。

3.2 NIC/NOC/CCI的简单比较

        NIC crossbar 结构,特点是全互联switch,容量高,latency低,并发性好。缺点是可扩展性差,适用于输入输出数目比较小的情况。

        NOC是类似路由的一种结构,特点是可扩展性好,缺点是并行性差,结构复杂,需要路由协议。适用于连接非常多个处理单元的情况。  

        NIU准确的定义应该是BIU,也就 bus interface unit.用于连接网络节点和处理单元, NIU/BIU不是必须的,如果两种协议一致,就不需要这个了。

        CCI是保证多核处理单元之间cache 内容一致性的互联结构。

下面这篇文章对为什么选择noc给出了比较详细的说明

谈谈NoC Interconnect在复杂SoC设计中的应用 - 多核/异构系统的最佳互连方法 - 知乎

摘了一段话如下:

NoC结构为了实现扩展性,也需要负担router/switcher逻辑之类的额外开销,而一旦片上互连模块数量增加时(如大于30个模块),NoC的优势就会体现,此时路由器逻辑和网络协议的开销就可以忽略不计,因此在互联模块数量较多时NoC可以实现更高的性能,同时面积却更小;在互连模块的数量较少时(低于20个),那么片上总线和Crossbar因为设计简单会更加适合。

3.3 noc首先在消费性电子晶片市场获得初步成功

以下摘自NoC势力版图扩张SoC IP全面互联更Easy

以CoreLink NIC-400为例,为了让所有晶片商方便使用,该方案的运作即是采用AXI介面(Advanced eXtensible Interface)以让每个IP都可彼此互联,但事实上,并非每个IP都有连结到所有IP的必要性,这种方式往往造成晶片内有过多不必要的通讯渠道,反而让布线更为拥塞。以CoreLink NIC-400的128位元AXI汇流排架构为例,其晶片内布线平均数量更高达二百九十个,反而无法实际有效解决问题。

Shuler分析,在这样的背景之下,专门用来建立IP互联架构的NoC势力渐渐崛起,并率先在消费性电子晶片市场获得初步成功;不过,在诸如工厂自动化、汽车工业、国防航太、机械、医疗产品等领域,NoC业者则尚未能成功进入这些市场,原因在于这些领域通常拥有较严苛的产业标准,如汽车领域的ISO 26262、医疗领域的IEC 60601、航太业的RTCA/DO -178B、工厂自动化应用的EN 62601、机械设计的ISO 13849等规范,因此有意跨足的晶片商、IP业者、系统厂都须花费一翻工夫,NoC业者亦然。

事实上,在NoC方案进军这些市场之前,业者仅能针对自己的晶片开发自有的IP互联架构。不过,近来Arteris已成功开发出新一代NoC互联方案--FlexNoC Resilience Package,以满足医疗、汽车、国防航太、工厂自动化等应用市场的需要,扩大NoC业者的势力版图。

Shuler表示,采用新一代NoC互联架构,能帮助SoC业者降低晶片开发成本,并快速达到各项严苛的产业标准,让NoC全面渗透各项产业,加速所有SoC IP互联时代的来临。据了解,Arteris的FlexNoC Resilience Package方案,目前已经得到工业型晶片商Mobileye、Altera、德州仪器(TI)和瑞萨电子(Renesas Electronics)的支持,并率先用于先进驾驶辅助系统(ADAS)、嵌入式FPGA SoC等设计。

4.互联结构

以下摘自片上网络NoC为何还没有得到实际应用 回答者young cc来源:知乎
 

4.1 共享总线 即 BUS结构

Bus是最简单的互联,适合small system,当connected nodes太多时,若多个node同时通信,很容易产生contention,bandwidth 太小。所以Bus只适合小系统,一般十个以下的互联设备。

4.2 CrossBar

crossbar也是一种常用互联机制,每个node能与其他node直接互联,所以low latency and high throughput.,但 not scalable(可扩展性差), 复杂度是。所以Crossbar适合不太大的系统,一般用于几个到十几个connected nodes 的系统。

4.3 noc

当前多核系统最流行的是Mesh结构。

NoC的诱人之处是可以支持各种扩展功能:

如decouple各模块;deadlock free(利用routing algorithm, 使用多个virtual channel, circuit switching); flow control(使用credits); QoS(强力推荐TDM NoC,相比priority scheduling能提供hard guarantees); fault tolerance/resilience,容错机制(利用topology, additional mechanism);congestion management; GALS(全局异步局部同步,这点在多核系统中很重要,所有router可以是同步,但是每个router所连接的processing element与router异步,自成一个clock domain,这样可以动态调整每个模块的频率电压到合适值);等等。

 Mesh(网格型互联结构)用在了Tilera(做多核处理器闻名)公司的100核处理器芯片TILE-GX100。且mesh是很多片上互联结构的原型。

4.4 peer to peer

下图截自 凌明等编著的《嵌入式系统-从SOC芯片到系统》一书

5.疑问

synopsys的dw_AXI到底是peer-to-peer还是crossBar?两则何区别?

  • 24
    点赞
  • 215
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值