前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布

NoC

作者头像
碎碎思
发布2020-06-30 11:00:49
1.8K0
发布2020-06-30 11:00:49
举报
文章被收录于专栏:OpenFPGAOpenFPGA
片上网络(network-on-chip, NoC)是系统级芯片(SoC)内一种基于网络的通信互联模块,相当于联接 CPU 内核、存储单元和各种功能模块的高速总线,可实现各功能模块间的高速、高效、低延迟和低功耗的数据通信。本来这一技术的市场需求目前还较小,Arteris、NetSpeed 和 Sonics 当数前三大供应商。

“XIlinx ACAP 架构与传统 FPGA 有两点主要区别:

芯片顶端(北侧)包含了 AI 加速引擎阵列,它们主要用来加速机器学习和无线网络等应用中常见的数学计算。然而,关于 AI 引擎的具体结构,在这篇论文中并未提及。

在传统 FPGA 片上互联技术的基础上,ACAP 采用了固化的片上网络(NoC),这主要是针对高带宽、高吞吐量的应用场景,如存储器控制和 AI 应用等,在上图中也可以清晰的看到 NoC 与这些应用模块的紧密互联。

除 NoC 以外,ACAP 选择将很多常用的 IP 固化在芯片上,以提高性能、稳定性,并减少额外的可编程逻辑资源的使用。除了常见的 PCIe、DDR 控制器、以太网 MAC 之外,ACAP 还选择将嵌入式处理器和芯片管理单元进行固化,这令人有些意外。

在论文中介绍,在亚马逊 AWS F1 实例中使用的片上管理单元占据了芯片面积的很大部分,如下图所示,而这也是赛灵思选择在 ACAP 上对这类逻辑进行固化的主要原因。

在可编程芯片上固化逻辑其实是一把双刃剑,在提升性能和降低逻辑单元使用率的同时,牺牲的是被固化单元的灵活性。因此,往往只会选择固化已经由成熟标准的逻辑单元,比如上文提到的通信接口与内存控制器等。对于芯片管理单元,固化后是否仍能适用于不同的应用场景?是否比集成 ARM 等硬核处理器更有效?这些问题就需要通过实际使用得到答案。”

NoC 和 SoC 的区别

SoC:System on Chip,中文称为片上系统,主要是针对 ASIC 或者 chip 来讲的。在 ASIC 设计的早期,由于制造工艺和性能等的约束,大部分芯片都单纯地实现某个特定功能,如处理器内核、总线、内存控制器、蓝牙等都由各自独立的芯片分别实现,处理器之间的通信也以多颗芯片互连的方式实现。

随着制造工艺的提升,以及设计能力的增强,单颗 ASIC 的功能越来越全面和强大,在一颗芯片内完全可以实现诸如处理器内核、总线、内存控制器、蓝牙等所有的功能。同时,ASIC 规模增大导致设计愈来愈复杂,因此,以 IP 核互连为核心的设计方法学应用而生。

这样,就出现了在一颗芯片里集成了大量的处理器内核、总线、控制器等 IP,而处理器内核数量也由曾经的单核增大到多核、众核。在这种情况下,设计方法学完全不同于以往 ASIC 的设计方法学,因此,诞生了 SoC 的概念,以和 ASIC 进行区别。不严格地说,一颗 SoC 可以实现以前多颗 ASIC 构成的系统。

NoC:Network on Chip,中文称之为片上网络。随着 SoC 技术的发展,芯片内部的 IP 核越来越多,有可能在一颗芯片中集成了数以百记的处理器内核(包括同构处理器内核和异构处理器内核)、数以千计控制器 IP 核等等,那么这种情况下 IP 核之间的互联就成为 SoC 性能一个重要组成部分。

而 NoC 技术的诞生就是为了能够让 IP 核之间的通信能够实现高效、高吞吐量、低功耗的目的。因此 NoC 技术主要研究对象就是各种互连方法、互连结构,以及 IP 核互联网络中路由算法。NoC 技术目前还处于学术研究阶段,大部分学术论文里都是仿真结果,工业界也有应用实例,但是比较少。

NoC 基本特点及优势

NoC 能够跨越同步和异步时钟域或者使用不受时间约束的异步逻辑。NoC 将网络原理和方法用于芯片的通讯上,并给传统的总线交互带来了便利。NoC 相比于其它设计来说提高了系统芯片的可扩展性及复杂系统芯片的功率。

NoC 的电线的链接中有许多共享的信号。因为 NoC 上所有链接都可以同时传送不同的数据包,从而达到很高的并行水平。因此,随着集成系统的复杂性不断增加,NoC 相比之前的通信架构(如专用的点对点信号线、共享总线、用网桥连接的分段总线等)提供了更强的性能(如吞吐量)和可扩展性。当然,一个好的算法必须设计以提供大量的并行性和也能更好地利用片上网络的潜力。

传统上,集成电路在专用点对点连接上设计的是每一个信号用一条线路来传递。对于大型设计来说,特别是从物理设计的角度来说,这已经有较多的限制因素了,导线会占用不少的芯片面积。在纳米级的 Cmos 技术中,导线主宰着性能和动态功率损耗,因为在芯片之间进行电线上的信号传输需要多个时钟周期。

NoC 链路的速度、功耗、噪声、可靠性等性能均可预测,可以利用预测值设计易于控制的结构从而减少设计的复杂度。从系统设计的角度,随着多核处理器系统的出现,网络是一个自然而然的架构选择。片上网络提供了计算和通信的隔离,通过一个标准接口支持模块化和 IP 复用,处理同步问题,为系统测试提供平台服务,并因此提高工程效率。

国内在这方面应用相对较少(我了解的),也有一些中文资料但是基本都是从概念出发,并没有实质性的操作和应用案例,所以还是建议大家多看些白皮书等资料,下面分享几本图书及论文,希望对大家有所帮助。

PS:之前还有一些FPGA方面的应用,后面找到会分享给大家。

链接: https://pan.baidu.com/s/1QiiWemceWmj6ThuSSMtTJA 提取码: haee

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-11-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 OpenFPGA 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档