一种用于异构多核片上网络建模的可配置片上路由器模型转让专利

申请号 : CN201310479536.1

文献号 : CN103581031A

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 张德学曾晓洋虞志益

申请人 : 复旦大学

摘要 :

本发明属于异构多核片上网络建模技术领域,具体为一种用于异构多核片上网络建模的可配置片上路由器模型。该模型包含本地、东、北、西、南、上、下7个端口,每个端口包含若干TLM2.0标准的通信接口。接口分为发起者接口和目标接口,目标接口带有FIFO;其以包为单位传递数据,通过交叉互联结构部件实现接口间的连接与包转发,采用单线程实现包转发计算函数。本发明中的片上路由器模型,经初始配置后,可方便的构建不同拓扑结构、不同FIFO深度、不同路由算法的NoC模型,可显著提高NoC建模的效率。

权利要求 :

1. 一种用于异构多核片上网络建模的可配置片上路由器模型,其特征在于:该片上路由器模型包含本地、东、北、西、南、上、下共7个端口,每个端口包含若干TLM2.0标准的通信接口;其中:本地端口含有1对发起者接口和目标接口,用于实现路由器与本地计算节点连接;其他6个端口中设置4对发起者接口和目标接口,用于实现路由器与平面上四个相邻路由器连接以及与上、下层相邻路由器连接,每个端口中的4对接口用于表达4对物理链路,或表达单条物理链路中的4条虚拟通道,使用时,用户对每端口中的接口个数进行配置,取值范围为0~4,取0即表示本端口配置为无;

所述目标接口上设置FIFO, FIFO深度取值范围为1~32;

所述片上路由器模型中,以包为单位传递数据,包由包头和包体构成,包头中包含源节点X、Y、Z坐标,目的节点X、Y、Z坐标,包长度信息;其通过交叉互联结构部件实现接口间的连接与包转发,采用单线程实现包转发计算函数,具体计算方法如下:初始化每个为“空闲”状态;

轮询每一个目标接口的FIFO,若有数据,则跳转到 ;否则,等待一个时钟周期后继续轮询;

读取当前目标接口的FIFO数据;

若当前目标接口为“空闲”状态,则此数据为包头,从中提取出源节点地址、目的节点地址、数据长度信息,根据源节点地址、当前路由器节点地址、目的节点地址及当前路由器配置的路由算法,计算路由,确定该包的转发端口,标记当前目标接口为“已路由”状态,跳转到 ;

若当前目标接口为“已分配虚通道状态”,则跳转到 ;

采用round-robin算法从当前输出目的端口中选择一个空闲接口,标记当前目标接口为“已分配虚通道状态”,跳转到 ;

将数据转发给当前输出端口的选定发起者接口,并将该包剩余数据长度减1;若剩余数据长度为0,则该包传送完毕,将当前目标接口置为“空闲状态”,跳转到 。

说明书 :

一种用于异构多核片上网络建模的可配置片上路由器模型

技术领域

[0001] 本发明属于异构多核片上网络建模技术领域,具体涉及一种可配置片上路由器模型。

背景技术

[0002] 随着工艺技术的进步,电子产品继续向着多功能、高性能、低功耗方向发展。根据ITRS(International Technology Roadmap for Semiconductors)的预测,消费类SoC电子产品将集成更多的处理器、专用数据处理模块PE(Processing Engines)、更多的外设模块、片上存储等,芯片上集成的功能越来越多,但芯片的尺寸却不减小。系统越来越复杂,基于IP核(Intellectual Property core)复用的设计方法大大提高了设计效率,但随着工艺技术的进步,系统规模不断增大,系统内IP核数量越来越多,大规模系统设计面临新的挑战,比较突出的是长线(long wires)问题、低功耗问题、IP核间通信效率问题与布线拥塞问题。
[0003] 针对复杂SoC系统设计面临的多个问题,发展出了片上网络NoC(Network on Chip)技术:避免全局通信,采用本地通信机制,借鉴计算机网络中的概念,采用分段式、multi-hop方式通信。
[0004] NoC通过multi-hop通信机制,将通信本地化,避免长线;各IP核间可并行通信,提高整体通信效率;Link可以共享,减少连线,减少布线拥塞;各IP核仅与NoC网络通信,模块相对独立,系统级分区块,可以单独设置电压、运行频率,支持DVFS(dynamic voltage and frequency scaling)低功耗设计。
[0005] NoC是解决大规模SoC系统设计的关键技术,自2000年正式提出“Network On Chip” 术语以来,一直是研究热点。NoC涉及内容广泛,主要研究内容包括:拓扑结构、交换技术、路由器设计、路由算法、仲裁与通道分配、流量控制、链路设计、网络接口设计、服务质量QoS、容错设计、建模评估、系统设计方法等。
[0006] 复杂系统中IP核间通信问题日益突出,设计理念已从computation-centric 转为 communication-centric。NoC是实现核间通信的关键部件,其设计对整体系统有决定性影响。先建立系统模型,用模型进行架构探索,是确保项目设计正确、一次成功的关键。
[0007] NoC有巨大的设计空间,需要确定拓扑结构、交换方式、是否实现虚通道以及虚通道个数、buffer大小、flit大小、phit大小、路由算法、如何满足QoS、如何容错等。对复杂、不规则NoC系统,难以用数学方法分析其性能,且不同应用流量模式下,NoC性能表现亦不同,建模仿真是可行的分析方法。大规模复杂NoC系统设计中,需要快速的建模、评价工具,用于NoC架构探索,评估性能、功耗和面积等,确定优化的设计参数。

发明内容

[0008] 为了克服现有技术的不足,本发明的目的在于提供一种用于异构多核片上网络建模的可配置片上路由器模型。经初始配置后,可方便的构建不同拓扑结构、不同FIFO深度、不同路由算法的NoC模型,可显著提高NoC建模的效率。
[0009] 本发明中提供的一种用于异构多核片上网络建模的可配置片上路由器模型,包含本地、东、北、西、南、上、下共7个端口;每个端口包含若干TLM2.0标准的通信接口;其中本地端口只含有1对发起者接口和目标接口,用于实现路由器与本地计算节点连接;其他6个端口中均含有4对发起者接口和目标接口,用于实现路由器与平面上四个相邻路由器连接以及与上、下层相邻路由器连接;每个端口中的四对接口可用于表达4对物理链路,或表达单条物理链路中的4条虚拟通道,使用时,用户可配置端口的接口个数,取值范围为0~4,取0即表示本端口配置为无;所述目标接口上设置FIFO,FIFO深度为1~32;片上路由器模型中,以包为单位传递数据,包由包头和包体构成,包头中包含源节点X、Y、Z坐标,目的节点X、Y、Z坐标,包长度信息;其通过交叉互联结构部件实现接口间的连接与包转发,并采用单线程实现包转发计算函数,具体计算方法如下:初始化每个目标接口为“空闲”状态;
轮询每一个目标接口的FIFO,若有数据,则跳转到 ;否则,等待一个时钟周期后继续轮询;
读取当前目标接口的FIFO数据;
若当前目标接口为“空闲”状态,则此数据为包头,从中提取出源节点地址、目的节点地址、数据长度信息,根据源节点地址、当前路由器节点地址、目的节点地址及当前路由器配置的路由算法,计算路由,确定该包的转发端口,标记当前目标接口为“已路由”状态,跳转到 ;
若当前目标接口为“已分配虚通道状态”,则跳转到 ;
采用round-robin算法从当前输出目的端口中选择一个空闲接口,标记当前目标接口为“已分配虚通道状态”,跳转到 ;
将数据转发给当前输出端口的选定发起者接口,并将该包剩余数据长度减1。若剩余数据长度为0,则该包传送完毕,将当前目标接口置为“空闲状态”。跳转到 。
[0010] 本发明中,片上路由器模型中,路由计算函数中内置实现了XY、OE、WEST-FIRST、NORTH-LAST、NEGATIVE-FIRST路由算法;虚通道分配函数中内置实现了round-robin分配算法。
[0011] 本发明涉及的片上路由器模型,经初始配置后,可方便的构建不同拓扑结构、不同FIFO深度、不同路由算法的NoC模型,可显著提高NoC建模的效率。

附图说明

[0012] 图1本发明涉及的NoC片上路由器模型示意图。
[0013] 图2是本发明涉及的NoC片上路由器模型处理的packet包格式示意图。
[0014] 图3是采用本发明涉及的NoC片上路由器模型构建的3×3 2D mesh结构NoC示意图。
[0015] 图4是采用本发明涉及的NoC片上路由器模型,构建的层次化NoC示意图。
[0016] 具体实施方式下面结合附图和实施例对本发明进一步阐述。
[0017] 本发明提供的片上路由器模型的结构具体阐述如下:(1)片上路由器模型包含本地、东、北、西、南、上、下共7个端口,如图1所示,每个端口包含若干TLM2.0标准的socket通信接口,其中本地端口只含有1对initiator socket(发起者接口)和target socket(目标接口),用于实现路由器与本地计算节点连接;其他6个端口中均含有4对initiator socket和target socket,用于实现路由器与平面上四个相邻路由器连接以及与上、下层相邻路由器连接。每个端口中的四对socket可用于表达4对物理链路,或表达单条物理链路中的4条虚拟通道。使用时,用户可对本地端口以外的各个端口的socket个数进行配置,取值范围为0~4,取0即表示本端口配置为无;
(2)片上路由器模型中,只有target socket带有FIFO,且FIFO深度可配置,深度取值范围为1~32;
(3)片上路由器模型中,以packet包为单位传递数据,packet包格式如图2所示,packet由包头和包体构成,包头中包含源节点X、Y、Z坐标,目的节点X、Y、Z坐标,包长度Length信息。交叉互联结构部件实现socket间的连接与packet转发,采用单线程实现packet转发计算函数。具体计算方法如下:
初始化每个target socket为“空闲”状态;
轮询每一个target socket的FIFO,若有数据,则跳转到 ;否则,等待一个时钟周期后继续轮询;
读取当前target socket的FIFO数据。
[0018] 若当前target socket为“空闲”状态,则此数据为packet包头,从中提取出源节点地址、目的节点地址、数据长度信息,根据源节点地址、当前路由器节点地址、目的节点地址及当前路由器配置的路由算法,计算路由,确定该包的转发端口,标记当前target socket为“已路由”状态,跳转到 ;若当前target socket为“已分配虚通道状态”,则跳转到 ;
采用round-robin算法从当前输出目的端口中选择一个空闲socket,标记当前target socket为“已分配虚通道状态”,跳转到 ;
将数据转发给当前输出端口的选定initiator socket,并将该packet剩余数据长度减1。若剩余数据长度为0,则该packet传送完毕,将当前target socket置为“空闲状态”。跳转到 ;
片上路由器模型中,路由计算函数中内置实现了XY、OE、WEST-FIRST、NORTH-LAST、NEGATIVE-FIRST路由算法;虚通道分配函数中内置实现了round-robin分配算法。
[0019] 实施例1本例具体说明如何应用本发明方法,构建3×3 2D mesh结构NoC网络。如图3所示,整个NoC模型中包含Router_00到Router_22共9个片上路由器,按二维排列,构成2D mesh拓扑结构。每个路由器可单独配置路由算法,如Router_00配置为XY路由算法,Router_01配置为OE路由算法。每个路由器中FIFO深度可配置,如Router_00中FIFO深度配置为
8,Router_01中FIFO深度配置为16。路由器每个方向的端口中socket数量可配置,取值为0~4,取值为0时表示配置为无,则对应的Link(链路)也没有,如Router_00的北、西方向端口均为无,本例中所有路由器的上、下端口均配置为无;图3中用Link的线宽表达socket数量,Link越宽,表示对应的socket个数越多。
[0020] 实施例2本例说明如何应用本发明方法,构建层次化结构的NoC网络。如图4所示,N层中的路由器111与N-1层中的路由器011通过上、下端口连接。其他配置方法同实施例1。