首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

片上网络概述与FPGA研究(连载1)---参加年度达人活动

片上网络概述与FPGA研究(连载1)---参加年度达人活动

片上网络Network-on-chip (NoC) 是一种应用于大规模集成电路(VLSI)系统中的,一种新的片上系统(System-on-chip)的设计方法。在一个片上网络系统中,处理器核心(processor core),存储器和专用的知识产权核(Intellectual Property cores)通过网络,而不是通过当前常见的基于共享总线的方式相互连接。一个片上网络系统由若干数据链路(data links)构成。这些数据链路通过片上网络路由器相互连接而构成网络。各种模块通过网络接口(NIC)接入网络中。由于路由器可以进行路由决策与消息的暂存和转发,那么信息就可以从任何源模块经过若干数据连接传输和路由器的转发到达任何目的模块。由此可以看出,片上网络系统将我们日常使用的宏观通信网络的概念引入到芯片上的(on-chip),模块之间(inter-module)的通信中。两者都是在复用的数据链路传送信息。
[[wysiwyg_imageupload:195:]]


图1传统片上总线结构
      采用片上网络的设计方法可以突破很多传统集成电路设计方法的技术瓶颈。传统的集成电路设计方法在两个模块之间采用点对点的独享连接线(dedicated wires)连接。当集成电路的规模扩大到一定的程度(例如集成的晶体管达到10亿级),传统设计方法的弊端和局限逐渐凸显出来。首先,模块之间连接线将占据大量的芯片面积。其次,传统的设计方法采用全局统一时钟,随着芯片规模的增大,速度的增加,庞大的时钟树将无法保证的全局时钟的统一,并且时钟树本身将会产生大量的能耗。此外,为了应对不断增加的对于芯片的的多功能、并行性需求,大规模的集成电路中的模块数量的会进一步增加,传统的集成电路设计方法在布线,可重用性,可扩展性等问题面临了更加严峻的挑战。
      由于采用了复用的数据链路以及分组交换的通信结构,片上网络的设计方法可以比较好的解决上述问题。各芯片中的模块如同Internet中的主机一样,通过标准化的网络接口(NIC)接入网络,使用共享的网络资源与目的模块进行通信。这样并行性和可扩展性得到充分保障。其次,片上网络方法的一个重要特性是采用了GALS(Globally Asynchronous Local Synchronous, 全局异步局部同步)的设计构想,避免产生庞大的时钟树,同步问题得到解决。另外,由于片上网络方法实现了芯片中的计算资源(各个处理,计算,存储模块)和通信资源(网络)的分离,通信网络对于单一的模块是透明的,并且模块之间设计也是相互独立的,这在很大程度上顺应了集成电路设计中的模块化趋势。
[[wysiwyg_imageupload:196:]]
图2片上网络结构
      在过去几年里,一些研究机构提出了对NoC不同抽象层次的验证方法的研究,一般的NoC验证是基于软件的仿真与建模,如用C、C++、Systemc进行系统级建模仿真,这样验证很灵活,但是在仿真时间上开销很大,由于不能运行实际应用,所以不能对整个NoC系统进行验证(如IP核的验证)只能对NoC的互连网络进行验证。同时软件验证都是使用的合成的流量发生器,尽管它能在不同的网络参数下对NoC的功耗与性能进行灵活的验证,但是它过多的依赖于许多近似与假设影响了结果的精确性;另一方面,软件仿真依赖于简单的流量发生器,使得它们的验证结果不能提供实际价值,因为网络的性能与功耗严重依赖于网络上实际运行的业务的通信流量特性。而尽管一些应用也可以用软件验证的高级抽象模型来描述,但是这只适合少数情况。因此为了得到有意义的结果,在实际应用下的原型验证是非常有必要的。
      而在FPGA上进行原型验证能满足上述要求,它能提供更快的速度和更高的精确度。NoC作为一种芯片上的应用技术,最终是需要在硬件上具体实现的,软件验证并不能考虑到硬件的物理特性(如门延时)而是理论上周期精确,有可能导致理论上正确的结果在实际硬件上不能运行,而FPGA原型验证不存在这些问题。FPGA原型让一个设计师设计的各个方面进行评估的,说明的主要思想,并提供有关产品实施最终现实的预测,如作出准确的面积估计可行,以及各组成部分实际的硬件开销估计和能源消耗的测量。
      随着FPGA步入市场,它逐渐取代了ASIC。FPGA设计周期短,同时NRE费用少,加上它的可快速重配置,所以FPGA使用非常普遍。FPGA的可充配置性能根据系统需求的变化而一次由一次的进行微调,因此它能提供一个非常通用的平台。而NoC又具有模块化特性,因此能根据应用需求的变化而进行微小的修改而重复使用,所以在FPGA上对NoC进行原型验证非常合适。
记录学习中的点点滴滴,让每一天过的更加有意义!
返回列表