开篇:润墨网以专业的文秘视角,为您筛选了一篇片上网络通信协议研讨范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!
随着半导体制造工艺技术的发展,单芯片集成度一直遵循着摩尔定律发展,目前单芯片已集成上千万逻辑门。传统的SoC(片上系统)设计方法已成为当今IC设计的主流_】]。SoC设计采用总线架构技术,将整个系统功能模块集成到一片硅片上。然而,随着片内资源规模的扩大,尤其在多处理器系统设计中,SoC技术遇到了巨大挑战:系统地址空间有限,不能无限地增加系统模块;采用总线架构不能支持两个或两个以上功能模块同时占用总线,降低通信效率;全局时钟同步结构大大增加系统功耗[2-3]。为了解决多处理器系统中基于总线架构的SoC设计面I临的困难,国外一些研究机构于本世纪初提出了基于片上网络(NetworkonChip,NoC)的IC设计方法。NoC的核心思想是借鉴计算机网络技术L4],采用路由和分组交换技术代替总线架构,从体系机构上彻底解决多处理器通信的发展瓶颈]。NoC架构与SoC架构相比主要的优点有:地址空间易于扩展,可集成无限多个功能模块;具有并行通信能力,多个功能模块可同时传输数据;采用全局异步局部同步(GloballyAsychronousLocallySynchro—nous,GALS)的时钟策略,每个通信节点工作在独立的时钟,可有效降低系统功耗和设计面积。NoC架构将是未来系统设计的发展方向。目前,国内科研机构对NoC的研究还处于理论研究阶段,主要针对NoC的拓扑结构及数据在通信节点之间传输的路由算法进行研究,取得了一系列研究成果。然而,还未发现有针对NoC架构中资源节点内部模块扩展及其传输控制的研究。笔者重点介绍NoC结构的组成、工作原理,提出一种适宜NoC资源节点通信的单向总线传输协议,借鉴以太网技术定义了数据帧格式。设计采用MicroBlaze软核处理器作为主资源节点,Flash控制器和RS232串口控制器作为从资源节点,采用VHDL硬件描述语言描述各个功能模块,在XilinxFPGA开发板上验证。
1NoC体系结构
NoC设计利用拓扑结构实现内部资源节点的通信,拓扑结构是NoC设计的关键技术之一,常用的拓扑结构有蜂窝结构、2D—Mesh、3D-Mesh、To—rus、Fat-tree、八角形结构、Proteo等_6’。其中,2D-Mesh结构简单,易于硬件实现和网络扩展。笔者采用2D—Mesh拓扑结构为例介绍NoC体系结构,如图1所示。图1中,S表示通信节点,实现相邻节点的数据传输,每个通信节点与周围4个通信节点和1个本地节点相连;R表示资源节点,数据传输的发起者或接收者,可以是处理器、存储单元、ASIC、特定功能模块IP等;RNI表示资源节点网络接口l8],连接资源节点与通信节点,实现传输数据的打包和解包。资源节点发送数据时,发送数据经资源网络接口打包成网络传输帧格式,输出到本地通信节点。根据发送数据的接收目的节点,采用一定的路由算法,确定XY路由和自适应DyAD路由算法,实现简单、并能够有效避免锁死现象E9]。利用电路交换或包交换方式,源通信节点将数据传输到目的通信节点,目的通信节点将接收的数据发送到本地资源网络接口,经过解包操作将有效数据传输给本地资源节点。从图1可以看出,多个资源节点可以同时在2D—Mesh网络中进行数据传输,增强了系统并行处理能力。然而,随着系统规模的扩大,如果每个资源节点只包含一个处理单元,则网络拓扑结构庞大,数据传输延迟增加,降低系统性能。如果每个资源节点包含一个处理系统,该系统由一个主资源节点和若干个从资源节点组成,则每个资源节点的功能增强,网络拓扑结构精炼,增强系统功能。主资源节点与从资源节点的通信可以采用传统的总线架构,如AMBA、Wishbone、CoreConnect等,但随着从资源节点数目的增加,通信效率将成为上述总线应用的挑战。为了增强NoC架构中资源节点系统的处理性能,笔者提出一种新的单向总线通信协议,实现主资源节点与从资源节点的并行通信。下面将详细介绍该总线协议的工作原理及实现方法。
2单向总线的设计
单向总线结构如图2所示。图2中,MR表示主资源节点(MasterResource);SR表示从资源节点(SlaveResource);MRNI表示主资源节点网络接图2旱同总线结构口(MasterResourceNetworkInterface);SRNI表示从资源节点网络接口(SlaveResourceNetworkInterface)。主资源节点独占总线由时钟线和数据线组成,通过该总线,主资源节点可向各个从资源节点同时发送数据;从资源节点共享总线由时钟线和数据线组成,各从资源节点通过该总线向主资源节点发送数据。每个从资源节点网络接口都与仲裁模块相连,由总线占有请求信号线和仲裁模块产生的应答信号线组成。
2.1单向总线工作原理
单向总线系统由一个主资源节点(MR)、若干个从资源节点(SR)、一个仲裁模块、主资源网络接口(MRNI)、各从资源网络接口(SRNI)组成。MR发送数据经MRNI打包成数据帧,经MR独占总线发送到各SRNI,各SRNI接收数据帧并检测数据帧的目的地址。如果目的地址与本地从节点分配的地址相同,则该SRNI接收数据帧,解包后发送到本地从资源节点,否则丢弃该帧数据。MR独占总线的时钟信号和数据信号均由主资源节点发送,在时钟上升沿发送数据帧,数据帧发送结束后,时钟信号为低电平。该总线为单向只写总线,由主资源节点发送数据到各从资源节点。当从资源节点向主资源节点发送数据时,首先通过各自独立的请求信号线向仲裁模块发送请求,仲裁模块采用先到先服务原则实现对从资源节点的应答,请求应答信号线如图2黑色长虚线所示。从资源网络接口接收到应答信号后,则占用从资源共享总线,发送数据经从资源网络接口打包后发送到主资源节点,数据发送完毕后,从资源节点释放总线占有权。由于仲裁模块也接收从资源节点发送的数据帧,所以仲裁模块可判断数据发送是否结束,从而接收下一个从资源节点的发送请求。如果多个资源节点同时发送请求信号,则根据各从资源节点事先定义的优先级进行应答。
2.2单向总线数据帧格式
主资源节点与从资源节点的通信数据必须按照定义的数据帧格式进行传输,数据帧结构见图3。目的地址为接收数据包的资源节点的地址,占1字节,最多可支持256个资源节点;源地址为发送数据包的资源节点地址,占I字节;类型表示发送的数据帧的类型,可表示写数据、读命令或重发请求,占1字节;长度字段为发送数据的字节数,占2字节;数据字段为发送的有效数据,如从资源节点为存储器模块,则数据字段包含发送的数据及写入地址;如果主资源节点向从资源节点发送读命令,则数据字段包含要读取数据的初始地址及读取数据长度;校验字段占2字节,采用CRC校验。
2.3系统设计
下面详细介绍资源网络接口及仲裁模块的逻辑设计。
2.3.1资源网络接口设计
资源网络接口是资源节点与单向总线通信的桥梁,接收单向总线的数据帧,解包后发送到资源节点;接收资源节点发送的数据,打包成数据帧格式发送到单向总线。主资源网络接口与从资源网络接口内部结构相似,只是数据发送、接收对应总线不同。下面以从资源网络接口为例,介绍资源网络接口的设计原理。主资源节点发送数据时,数据帧通过主资源节点独占单向总线接口模块发送到接收控制模块。接收控制模块首先对接收的数据帧的目的地址字段进行判断,如果目的地址与本地资源节点地址不同,则丢弃该帧数据;如相同则继续接收数据,并将数据段的有效数据存储到接收缓存模块;同时,将接收数据输出到CRC校验模块进行校验。当一帧数据接收完毕后,CRC校验模块计算的校验值与数据帧的校验位进行比较,如相同表明数据传输无误,否则说明数据传输有误,触发发送控制模块,产生数据重发请求。该请求通过请求应答模块发送到仲裁模块,获得应答后,发送控制模块输出一个请求重发数据帧,发送到从资源节点共享单向总线,主资源节点收到该帧数据后,重发上次传输的数据。从资源节点发送数据时,从资源节点接口模块将发送数据输出到发送控制模块,发送控制模块将数据打包成数据帧格式输出到发送缓存模块。CRC校验模块对发送的数据进行校验计算,并将校验值输出到发送控制模块,发送控制模块打包的一帧数据存人到发送缓存模块后,发送控制模块触发请求应答模块向仲裁模块发送请求信号;待得到应答后,即取得从资源节点共享总线使用权,发送控制模块触发发送缓存模块,将缓存模块中的数据经从资源共享单向总线接口模块发送到单向总线,主资源网络接口模块从只写总线中读取数据,解包后发送到主资源节点。
2.3.2仲裁模块的设计
该模块接收所有从资源网络接口模块发送的总线使用请求信号,采用先到先服务策略产生应答信号。如果多个从资源网络接口发送的请求信号同时到达,则根据预先定义的优先等级对其响应。
2.4单向总线实现与验证
单向总线系统设计采用VHDL描述。根据现代EDA设计使用的模块化设计原则,用VHDL分别实现主资源网络接口模块、从资源网络接口模块、仲裁模块的程序设计,在开发环境下综合实现后,下载到FPGA开发板验证。系统验证环境利用Mi—croBlaze处理器软核作为主资源节点,Flash控制器和RS232串口控制模块作为从资源节点,验证系统结构如图5所示。主资源网络接口(MRNI)作为用户自定义IP核连接到PLB总线,主资源节点MicroBlaze处理器通过PLB总线访问MRNI,以MicroBlaze处理器向Flash存储器读写数据为例验证该系统,MicroBlaze处理器通过PLB总线将数据写入到MRNI,MRN1将数据打包成标准数据帧格式,目的地址为资源节点Flash控制器的地址,数据帧经主资源节点独占总线写入到Flash控制器的从资源网络接口SR—NIl,SRNI1对接收的数据帧进行解包。如果CRC校验正确,数据段中数值发送给从资源节点Flash控制器模块,Flash控制器从接收的数据中提取写入初始地址,将有效数据从初始地址开始连续写入Flash存储器。数据写入完毕后,MicroBlaze处理器通过PLB总线访问MRNI,请求从Flash存储器中读取数据,MRNI将读请求数据帧发送到SR~NIl,SRNI1收到请求帧后,向仲裁模块发送请求,得到应答后,占用SR共享总线,Flash控制器从外部Flash存储器中读取数据发送到SRNI,打包成数据帧格式通过SR共享总线发送到MRNI进行解包,解包后的数据经PLB总线传输到MicroBlaze处理器,MircoBlaze处理器将接收的数据与发送的数据进行比较,可判断系统是否正确工作。MicroBlaze处理器还可通过对R$232串口控制器的访问来验证系统功能。MicroBlaze处理器通过PLB总线将输出数据发送给MRNI,MRNI对数据进行打包,并通过MR独占总线将数据发送到SRNI2,SRNI2对接收的数据进行解包,解包后的数据发送到从资源节点串口控制器,串口控制器将接收的数据通过RS232串口发送给PC机,PC机上使用超级终端打印输出串口模块发送的数据,通过比较,可知超级终端接收的数据即为MicroBlaze处理器发送的数据,从而可验证系统正确工作。
3结束语
本文针对片上网络架构提出一种新的资源节点通信协议。采用两条单向总线实现了主资源节点与从资源节点的通信,定义适于单向总线传输的数据帧格式,设计MicroBlaze处理器作为主资源节点,Flash控制器和RS232串口控制器作为从资源节点,验证系统可正确工作。相对于传统片内总线,本文设计的单向总线结构简单,资源节点易于扩展,两个资源节点可同时占有两条单向总线,实现对两个资源节点的同时读写操作,提高了数据传输速率,增强系统性能。