NoC 现在尚处于早期研究阶段,但是从计算机发展的历史可以看到 NoC 必将是 SoC 之后的下一代主流技术,现在大力开展 NoC 的基础理论研究将是十分必要的,本文将介绍 NoC 的出现背景、基本架构及现在的研究状况等等,让您将对 NoC 有着更为详尽的了解。
NoC 出现背景
SoC 通常指在单一芯片上实现的数字计算机系统,总线结构是该系统的主要特征,由于其可以提供高性能的互连而被广泛运用。然而随着半导体工艺技术的持续发展,出现了一些与总线相关的问题:总线地址空间有限,由于使用单一时钟整个芯片均同步的限制。因而在 20 世纪末几个研究小组提出了一种全新的集成电路体系结构 NoC(Network on Chip), 其核心思想是将计算机网络技术移植到芯片设计中来,从体系结构上彻底解决总线架构带来的问题。
NoC 基本概念和结构
NoC 可以定义为在单一芯片上实现的基于网络通讯的多处理器系统,是用来设计 IP 内核和系统芯片之间的通信子系统的方法。NoC 包括计算和通讯两类节点。计算节点 (又称为资源,Resource) 完成广义的计算任务,它们既可以是 SoC,也可以是各种单一功能的 IP;通讯节点(又称交换开关,Switch) 负责计算节点之间的数据通讯。通讯节点及其之间的网络称为 OCN(On—ChipNetwork),它借鉴了分布式计算机系统的通讯方式,用路由和分组交换技术替代传统的总线技术完成通讯任务。
NoC 是一个在单一硅芯片上为大型积体电路系统之间通讯时而出现的新兴模式,我们把它称为 “片上核交互通信网络芯片的分层堆栈方法设计。” 在一个片上网络系统,如处理器核心、内存条和专门的 IP 块等模块,交换数据使用的是网络作为公共交通的子系统来传递系统信息。一个片上网络是由交换机(或路由器)来连通多条点对点的数据链路交互构建而成,使得信息在交换机中可以从任何源模块通过不同的链路转发到任何目的模块。
NoC 基本特点及优势
NoC 能够跨越同步和异步时钟域或者使用不受时间约束的异步逻辑。NoC 将网络原理和方法用于芯片的通讯上,并给传统的总线交互带来了便利。NoC 相比于其它设计来说提高了系统芯片的可扩展性及复杂系统芯片的功率。
NoC 的电线的链接中有许多共享的信号。因为 NoC 上所有链接都可以同时传送不同的数据包,从而达到很高的并行水平。因此,随着集成系统的复杂性不断增加,NoC 相比之前的通信架构(如专用的点对点信号线、共享总线、用网桥连接的分段总线等)提供了更强的性能(如吞吐量)和可扩展性。当然,一个好的算法必须设计以提供大量的并行性和也能更好地利用片上网络的潜力。
传统上,集成电路在专用点对点连接上设计的是每一个信号用一条线路来传递。对于大型设计来说,特别是从物理设计的角度来说,这已经有较多的限制因素了,导线会占用不少的芯片面积。在纳米级的 Cmos 技术中,导线主宰着性能和动态功率损耗,因为在芯片之间进行电线上的信号传输需要多个时钟周期。
NoC 链路的速度、功耗、噪声、可靠性等性能均可预测,我们可以利用预测值设计易于控制的结构从而减少设计的复杂度。从系统设计的角度,随着多核处理器系统的出现,网络是一个自然而然的架构选择。片上网络提供了计算和通信的隔离,通过一个标准接口支持模块化和 IP 复用,处理同步问题,为系统测试提供平台服务,并因此提高工程效率。
NoC 与 SoC 的比较
NoC 与 SoC 有两点本质的区别:处理器数量的不同和通讯机制的不同。前者是多处理器系统,而后者是单一处理器系统;前者使用网路通讯,而后者用总线通讯。从体系结构的角度来看,NoC 使用网络替代总线有如下优点:具有良好的地址空间可扩展性,理论上可集成的资源节点的数目不受限制;提供良好的并行通讯能力,从而提高数据吞吐率及整体性能;使用全局异步局部同步 (Global Asynchronous Local Synchronous,GALS) 机制,每一个资源节点都工作在自己的时钟域,而不同的资源节点之间则通过 OCN 进行异步通讯,很好地解决了总线结构的单一时钟同步问题,从而彻底解决了庞大的时钟树所带来的功耗和面积问题。
NoC 技术从体系结构上彻底解决了 SoC 的总线结构所固有的三大问题:由于地址空间有限而引起的扩展性问题,由于分时通讯而引起的通讯效率问题,以及由于全局同步而引起的功耗和面积问题。
值得注意的是,NoC 技术虽然移植了计算机网络中的关键技术,但是,由于通讯媒介存在着根本差异以及纳米级工艺条件下芯片设计的特定需求,使得 NoC 在以下几个方面与传统计算机网络之间存在着明显的不同:连线资源远较计算机网络丰富;流量分布函数的差别 (传统计算机网络的流量服从泊松分布);资源节点的异类性 (NoC 可在整个系统芯片内进行计算,而不仅仅是一个固定 IP);显著的低功耗需求 (纳米级工艺条件下任何芯片都无法回避的最重要的问题之一)。
NoC 基础理论体系
经过近十年的发展,NoC 技术的领域框架已经基本成形,上图给出了 NoC 基础理论的体系。NoC 技术领域包括体系结构、纳米设计技术、EDA 实现理论与工具等几个主要方面。“体系结构”研究 NoC 的基本软硬件结构,是当前学术界的研究重点。其中的 “OCN 结构” 研究 NoC 的基础通讯架构 (backbone);“拓扑结构” 研究 NoC 通讯系统的拓扑框架;“通讯协议”着眼于基础架构中的高效通信;“NoC 软件”侧重于操作系统;“NoC 基础元件库”相当于 SoC 时代的 IP 库,库元件既包括 SoC、IP 等传统元件,也包括链接通道 (1ink)、接口、路由器、电开关等 NoC 时代的特有元件;“系统集成和验证技术” 研究如何在上述基础上设计 NoC 芯片。
NoC 研究现状及挑战
尽管 NoC 能够从已经确定下来的计算机网络定义借用概念和技术,但是盲目地重复使用经典计算机网络和对称多处理器的特征是不切实际的。特别是 NoC 对交换机的要求更高,需要体积小、节能高效且快速。早期的 NoC 研究忽略了这些方面,但现在应该更详细地考虑。路由算法应该能够用简单的逻辑来执行,数据缓冲区应该要达到最低限度。网络拓扑结构和属性应该是由具体相应的程序而定。
一些研究者认为,NoC 需要支持服务质量(QoS),即在吞吐量上实现各方面的要求,端至端的延误和最后期限。NoC 环境下的实时计算,如音频和视频播放,都需要服务质量的保证。但是目前的系统实现如 VxWorks,RTLinux 或 QNX 都能够实现实时计算子毫秒而无需特殊硬件支持。这表明对于许多实时应用程序来说现有的片上互连的基础设施的服务质量是足够的,专用硬件逻辑将会实现微秒的精度,在实际应用中终端用户是不需要这么精确的(只需要十分之一毫秒级就能保证声音或视频的不抖动)。
此外 NoC 的研究动机之一是在公共云计算基础设施中提供多个并发用户在单一多处理器芯片上的资源共享的支持。在这种情况下,硬件的服务质量将会提供有保障的服务水平,这将是一些公司或政府客户端所期盼的特性。迄今为止,在学术界和工业界已经设计和分析了一些 NoC 原型,但只有少数已实施。然而,从物理链路层到网络层,并一路攀升到系统架构层和应用软件层,不同级别均有许多具有挑战性的研究问题有待解决。
参考文献:http:/ / en.wikipedia.org/wiki/Network_On_Chip
https://www.cnblogs.com/asus119/archive/2012/05/28/2521042.html