本发明涉及一种应用于混合三维片上网络的分布式流控系统及机制,特别涉及一种应用于总线-noc混合三维片上网络的分布式流控系统及机制,属于集成电路、片上互连网络设计领域。
背景技术:
随着指令并行带来的性能收益趋于饱和,半导体工业逐渐向多核片上系统发展。片上集成核数的不断增加,使得互连通信带宽成为多核系统的性能瓶颈与设计挑战。片上网络(network-on-chip,noc)互连架构可提高核间通信的并发性,是缓解多核系统互连带宽问题的有效解决方案。但noc架构并不能减小全片互连线长度,随着多核片上系统出现千核级甚至更大规模的互连与通信,传统二维noc在高度并行化和通信密集的应用下将产生惊人的通信功耗与通信延时。三维集成技术将单个芯片内的有源器件分布在不同物理层上,层间通过硅通孔(throughsiliconvisas,tsvs)实现互连,在垂直方向上为多核互连提供了新的维度。众多三维互连架构中,总线-noc混合三维片上网络,保留各个二维平面内的noc互连结构,而在垂直方向上采用总线互连以构造垂直一跳通信,能够有效发挥垂直tsv链路高速、低耗的通信优势,更加适用于大规模多核片上互连。
已有的片上网络流控机制主要分为尽力而为型与保障型两类。混合三维片上网络中,平面内noc互连网络与垂直互连总线是所有节点的共享通信资源,当数以千计的ip核并发众多通信流争用同一通信路径时会产生严重的带宽竞争。尽力而为型流控机制着眼于互连架构整体性能的提升,而忽略了个体流的通信需求,片上网络分布式的仲裁机制使得网络行为与运行在处理器核之上的应用程序的性能出现不可预测性,无法保障特定应用的带宽与延时需求。而已有的保障型流控机制多通过虚电路或时分复用技术,沿数据传输路径对路由缓冲或服务时隙进行预约,以形成分离网络对数据流进行性能隔离。其有助于为个体流提供通信保障,但可能需要为每个个体流单独分配服务队列或导致互连带宽整体利用率不足。
为解决上述问题,有研究提出通过全局同步帧(globally-synchronized-frame,gsf)机制将路由节点中的调度逻辑转移至源节点以减少路由节点的面积和功耗开销,但在网络规模较大时,gsf需要较长的帧长才能抵消全局同步带来的延时,从而导致信源缓冲区增大。另一种业界提出的性能较好的保障型流控机制为抢占虚拟时钟机制(preemptivevirtualclock,pvc),基于虚拟时钟算法为每个数据流分配优先级,当发生优先级反转时,采用丢弃与重传机制进行带宽保障,虽然避免了使用较大的源缓冲区,但保障强度与网络吞吐率之间存在设计矛盾。
已有的流控机制多针对百核级以下的片上网络互连规模,为了实现单个数据流的通信保障,多采用每流控制机制。这将使得控制复杂度随着多核系统中通信流的增加而增大,从而导致可扩展性变差,在百核及千核级的大规模互连应用场景下可能带来较大的面积开销和性能损失。与此同时,混合三维片上网络中,除noc互连带宽外,垂直总线带宽也是不同数据流的通信竞争资源。集中式的总线流控机制会引入大量额外的tsv数目,从而带来的较大的面积开销,并降低芯片良率。因此,有必要基于混合三维片上网络的架构特征及应用场景,研究开销节约、可扩展性强的分布式流控机制,保障单个个体流带宽需求。
技术实现要素:
针对背景技术所述流控机制在大规模多核互连应用背景下带来较大面积开销及性能损失等问题,本发明面向总线-noc混合三维片上网络互连架构,提出了一种基于汇聚流控制的分布式流控系统及机制,在不降低整个互连网络性能的前提下,保障个体流的通信带宽需求。该机制基于汇聚流服务模型将通过路由节点与总线的个体流抽象为多个汇聚流;各路由仲裁器与总线控制器按照汇聚流的带宽需求与实际服务状态之间的差异实时确定数据包的服务优先等级并进行数据转发,实现通信带宽的按需分配。本发明在为互连网络中个体数据流提供带宽保障服务的同时,降低互连网络的额外性能与面积开销。
本发明为解决上述技术问题采用以下技术方案:
一方面,本发明提供一种应用于混合三维片上网络的分布式流控系统,包括流特征学习模块、流行为监测模块、二级优先权仲裁模块及分布式总线控制模块;
流特征学习模块,用于路由节点与总线接口单元动态学习经其转发的数据流及其带宽需求,并通过分布式计算求解全局最拥塞链路带宽需求;进一步,依据汇聚流的带宽需求及最拥塞链路的带宽需求确定每个汇聚流在监控周期内期待被转发的微片数;
流行为监测模块,用于监视路由节点及总线接口单元在监控周期内实际转发的汇聚流微片数,并计算其与汇聚流期待被转发微片数的差额,作为资源竞争环节带宽分配的依据;
二级优先权仲裁模块,用于路由节点内部交叉开关资源分配时,仲裁多个对同一输入端口或输出端口发起的请求信号,实现路由输出链路的带宽分配;
分布式总线控制模块,用于通过分布于各总线接口单元的仲裁模块,实现混合三维片上网络中垂直tsv总线带宽在各总线接口单元间的分配。
作为本发明的进一步技术方案,所述流特征学习模块包括分布于所有路由节点和总线接口的若干流特征学习器,其中,位于路由节点的流特征学习器,将相同输入输出端口间的个体流抽象为一个汇聚流;位于总线接口单元的流特征学习器,将同一总线上相同发送节点与接收节点间的个体流抽象为一个汇聚流。
作为本发明的进一步技术方案,所述流特征学习器的流特征学习方法如下:
a)数据流发送带宽预约请求数据包,将其所产生的通信流带宽特征由源节点沿数据流传输路径传输至目标节点;
b)接收到带宽预约请求数据包的路由节点与总线接口单元,依据其在本地所需使用的通信资源对相应的汇聚流带宽需求进行累加;
c)数据流完成带宽预约请求数据包发送后,通知所有路由节点与总线接口单元;
d)路由节点与总线接口单元通过分布式计算查找全局最拥塞链路及其相应的预约带宽;
e)基于最拥塞链路的预约带宽,各路由节点及总线接口单元确定其本地汇聚流在监控周期内期待被转发的微片数。
作为本发明的进一步技术方案,步骤d中全局最拥塞链路带宽需求的分布式计算求解过程如下:
1)各路由节点首先求得东、南、西、北、本地五个方向上的局部通信链路的带宽需求,以及垂直总线链路的带宽需求,并取其最大值作为本地最拥塞链路带宽需求;
2)本地最拥塞链路带宽需求沿着x向、y向、z向依次作分布式对比传输,即在混合三维片上网络各平面内,左侧路由节点首先与其右侧相邻路由节点的本地链路带宽需求相比较,取其大值沿x向传输,直至最右侧路由节点,获得x向最拥塞链路的带宽需求;最右侧路由节点再以相似的方法将x向最拥塞链路带宽需求沿y向作分布式对比传输,获得平面最拥塞链路的带宽需求;平面最拥塞链路带宽需求在z向通过tsv总线进行信息交换,并在其中一个总线接口单元内进行对比,获得整个网络内的全局最拥塞链路带宽需求;
3)全局的最拥塞链路带宽需求沿z向、y向、x向广播至所有的路由节点与总线接口单元。
作为本发明的进一步技术方案,所述流行为监测模块分布于所有路由节点和总线接口单元,用于实时监控汇聚流的带宽使用情况,并更新其的优先级;流行为监测模块为本地每个汇聚流配置一个服务状态寄存器,其值体现了汇聚流的预约带宽与实际获得带宽的差额;数据传输阶段,每隔监控周期,服务状态寄存器的值增加每个汇聚流期望被转发的微片数;每次汇聚流在路由节点或总线接口单元中被转发一个微片,服务状态寄存器的值被减1;服务状态寄存器的实时值作为路由节点交叉开关分配及总线使用权分配时的仲裁依据,实时值越大时汇聚流有越多可用剩余带宽,在路由及总线仲裁环节将被赋予较高的优先级。
作为本发明的进一步技术方案,所述二级优先权仲裁模块由基于覆盖逻辑电路的优先级仲裁器与基于最近最少使用原则的round-robin仲裁器级联构成,用于确定最终被服务的汇聚流;当多个汇聚流同时请求使用相同的路由节点资源或总线资源时,以汇聚流服务状态寄存器的当前值为输入,进行一级优先级仲裁;当多个汇聚流具有最高优先级时,基于最近最少使用原则进行二级仲裁。
作为本发明的进一步技术方案,所述逻辑覆盖电路由逻辑覆盖驱动电路、逻辑覆盖总线与逻辑覆盖对比电路组成,有数据转发请求的汇聚流将服务状态寄存器当前值,通过逻辑覆盖驱动电路同时送至逻辑覆盖总线,低优先级的服务状态值被高优先级的服务状态值覆盖;各汇聚流通过对比逻辑覆盖总线的当前值与送至逻辑覆盖总线的服务状态值是否一致来判定所转发数据是否具有最高优先级;
逻辑覆盖驱动电路由预放-求值动态cmos电路实现,将一个位时钟分为两部分。逻辑覆盖驱动电路首先通过下拉nmos对逻辑覆盖总线的负荷电容进行预放;当一个或多个逻辑覆盖驱动电路的输入为逻辑1时,上拉pmos管导通,逻辑覆盖总线保持为逻辑1,仅当所有逻辑覆盖驱动电路的输入为逻辑0时,逻辑覆盖总线为逻辑0;
逻辑覆盖对比电路采用并行覆盖对比方式,以减小逻辑覆盖延时,汇聚流服务状态值的所有位同时加到逻辑覆盖总线,对比时同时读取逻辑覆盖总线上的所有位。
作为本发明的进一步技术方案,汇聚流服务状态值采用逻辑连续编码:
1)编码由一串连续的逻辑0和一串连续的逻辑1组成;
2)全0和全1的二进制串也属于符合条件的编码;
3)编码空间中的任意两个代码间至少有一位不同。
作为本发明的进一步技术方案,所述分布式总线控制模块是由若干分布于挂接在垂直总线上的各总线接口单元的仲裁模块构成一个分布式的二级优先权仲裁模块,其引入两组tsv总线:一组为仲裁总线,用于完成分布式的逻辑覆盖;另一组为状态信息总线,用于指示一级优先级仲裁中获得使用权的节点;各总线接口单元中,具有总线使用需求的数据流首先将其服务状态值发送至tsv仲裁总线,然后依据仲裁总线逻辑覆盖的结果设置状态共享总线的状态值,分布于各总线接口单元的round-robin仲裁器将依据共享的状态值同步作出判断,确定唯一的总线使用者。。
另一方面,本发明还提供一种应用于混合三维片上网络的分布式流控机制,用于实现个体流的带宽保障,该流控机制包括:
1、流控组件分布于总线-noc混合三维片上网络架构中路由节点与总线接口单元资源竞争环节;路由节点将相同输入、输出端口间的所有个体流抽象为汇聚流;总线接口单元将相同发送节点与接收节点间的数据流抽象为汇聚流;路由节点与总线接口单元中的流控组件基于汇聚流的带宽需求实现资源竞争环节的带宽分配;
2、汇聚流在各资源竞争环节的带宽需求通过在线学习获得;混合三维片上网络架构中的应用发生变化时,各资源竞争环节首先进入流特征学习阶段,记录各个体流的带宽需求,并进而计算各汇聚流在特定监控周期内期待被转发的微片数;
3、在路由节点与总线接口单元的资源竞争环节,带宽分配通过基于优先级的调度机制实现,其中数据被转发的优先级由各路由节点与总线接口单元的本地资源使用状态确定,即,由其所属汇聚流在监控周期内期待被转发微片数与实际被转发微片数的差额确定。
本发明采用以上技术方案与现有技术相比,具有以下技术效果:
(1)本发明采用分布式流控机制,各路由节点与总线接口单元基于汇聚流的服务状态确定个体流的转发优先级,控制复杂度仅与路由端口数及三维片上网络的层数相关,而与片上网络中个体流的数目无关,因而具有更好的可扩展性,适用于大规模片上网络互连架构;
(2)本发明采用基于优先级的带宽保障机制,在各资源竞争环节,仅依据数据流的带宽使用情况确定被服务的先后顺序,而不阻塞任何数据流,因而链路带宽能够得到更加有效的利用,有助于提高片上网络互连架构的整体性能;
(3)本发明中数据流的优先级由本地资源的使用状态确定,而与其它节点的资源竞争状态无关,因而不会出现优先级翻转的情形,避免了pvc等机制中丢弃重传策略的使用,个体流的带宽保障强度不会与系统性能的提升产生矛盾;
(4)本发明中优先级仲裁器通过逻辑覆盖电路实现,与传统的基于二进制比较树(binarycomparisontree)结构的优先级仲裁器相比,具有更低的面积开销;
(5)本发明中分布式垂直总线控制器引入的tsv仲裁总线与状态信息总线在各总线接口单元间共享,且由整个三维集成系统的顶层贯穿至底层。与集中式垂直总线控制器相比,额外的tsv开销更小,且可改善三维集成系统的散热特性
附图说明
图1为总线-noc混合三维片上网络互连架构;
图2为用于实现分布式流控机制的路由架构及其所需的硬件组件;
图3为最拥塞链路带宽需求的分布式计算方法,其中,(a)是拥塞链路带宽需求的路由内部计算电路,(b)是拥塞链路带宽需求的全局共享路径;
图4为流行为监测模块的结构;
图5为路由节点开关分配的流控方案;
图6为二级优先权仲裁器结构;
图7为逻辑覆盖驱动电路结构;
图8为分布式总线控制器结构。
具体实施方式
下面结合附图对本发明的技术方案做进一步的详细说明:
本发明设计一种应用于总线-noc混合三维片上网络的分布式流控机制,共额外引入四个硬件组件构成的分布式流控系统,该系统包括:流特征学习模块,流行为监测模块,二级优先权仲裁模块及分布式总线控制模块。
本发明所述流特征学习模块用于路由节点与总线接口单元动态学习经其转发的数据流及其带宽需求,并通过分布式计算求解全局最拥塞链路带宽需求。进一步,依据汇聚流的带宽需求及最拥塞链路的带宽需求确定每个汇聚流在监控周期内期待被转发的微片数。
流特征学习模块包括分布于所有路由节点和总线接口的若干流特征学习器,位于路由节点的流特征学习器,将相同输入输出端口间的个体流抽象为一个汇聚流,对于具有n个端口的路由节点,共可抽象n×(n-1)个汇聚流;而位于总线接口单元的流特征学习器将同一总线上相同发送节点与接收节点间的个体流抽象为一个汇聚流,对于具有m个节点的总线,共可抽象m×(m-1)个汇聚流。流特征学习器中每个汇聚流fij(输入端口为i,输出端口为j)配置有一个带宽预约寄存器cij,用于实现带宽累加与记忆。
流特征学习方法如下:
1.1)多核系统应用更新后,带宽预约寄存器清0;
1.2)运行于各资源节点的任务发送带宽预约请求数据包,将其所产生的通信流带宽特征由源节点沿传输路径传输至目标节点。为了节省硬件开销,流带宽特征由归一化于最小分辨带宽的整数值表示(bw);
1.3)接收到带宽预约请求数据包的路由节点,基于数据包所携带的源、目的节点地址分析数据流在该路由节点中的输入端口i与输出端口j,判定数据流所属的汇聚流fij;依据数据包中所携带的流带宽特征,对流带宽预约寄存器cij进行累加。接收到带宽预约请求的总线接口单元,将其在总线上广播,实现总线上所有节点间的信息共享。各节点收到带宽预约请求后,基于数据包所携带的源、目的地址分析数据流在总线上的发送节点i与接收节点j,判定数据流所属的汇聚流fij,并对流带宽预约寄存器cij进行累加;
1.4)各资源节点完成带宽预约请求数据包发送后,通知所有的路由节点与总线接口单元;
1.5)所有路由节点与总线接口单元通过分布式计算查找最拥塞链路及其相应的预约带宽cmax;计算其在给定监控周期w内可转发的数据微片数fmax;
1.6)反馈cmax与fmax给所有路由节点与总线接口单元;
1.7)路由节点与总线接口单元中各汇聚流依据cij,cmax及fmax确定在特定监控周期w内期望被转发的数据微片数eij;
1.8)流特征学习结束。
全局最拥塞链路带宽需求的分布式求解过程如下:
a)各路由节点首先求得东、南、西、北、本地五个方向上的局部通信链路的带宽需求,以及垂直总线链路的带宽需求,并取其最大值作为本地最拥塞链路带宽需求。
b)本地最拥塞链路带宽需求沿着x向、y向、z向依次作分布式对比传输。即在混合三维片上网络各平面内,左侧路由节点首先与其右侧相邻路由节点的本地链路带宽需求相比较,取其大值沿x向传输,直至最右侧路由节点,获得x向最拥塞链路。最右侧路由节点再以相似的方法沿y向作分布式对比传输获得平片面内的最拥塞链路。平面最拥塞链路带宽需求在z向通过tsv总线进行信息交换,并在其中一个总线接口单元内进行对比,获得整个网络内的全局最拥塞链路带宽需求。
c)全局的最拥塞链路带宽需求沿z向、y向、x向广播至所有的路由节点与总线接口单元。
本发明所述流行为监测模块用于监视路由节点及总线接口单元在监控周期内实际转发的汇聚流微片数,并计算其与汇聚流期待被转发微片数的差额,作为资源竞争环节带宽分配的依据。
流行为监测模块为本地每个汇聚流设置一个流服务状态寄存器,其值体现了汇聚流的预约带宽与实际获得带宽的差额。路由节点中共有25个流服务状态寄存器,总线接口单元中的流服务状态寄存器数目取决于混合三维片上网络的层数。流服务状态寄存器的值随着各资源竞争环节的数据转发进行动态更新。每个监控周期的起始时刻,各汇聚流服务状态寄存器的值增加一定份额,其值为汇聚流在监控周期内期待被转发的微片数;当汇聚流被转发一个微片后,相应服务状态寄存器的值减1。
流行为监控模块为每个汇聚流fij配置一个服务状态寄存器sij,其中在流特征学习阶段清0。在数据传输阶段,每隔监控周期w,sij的值增加eij(即,监控周期w内,fij期望被转发的微片数);每次汇聚流fij在路由节点或总线接口单元中被转发一个微片,sij的值被减1。sij的实时值将被作为路由节点交叉开关分配及总线使用权分配时的仲裁依据。sij的值较大时意味着汇聚流fij尚有较多可用剩余带宽,在路由及总线仲裁环节将被赋予较高的优先级。
本发明所述二级优先权仲裁模块是由若干分布于挂接在垂直总线上的各总线接口单元的仲裁模块构成一个分布式的二级优先权仲裁模块,由基于优先级的仲裁器与round-robin仲裁器级联构成,当多个数据流同时争用路由或总线带宽时,用于确定最终被服务的数据流。多个汇聚流同时请求使用相同的路由节点资源或总线资源时,以汇聚流服务状态寄存器的当前值为输入,进行一级优先级仲裁;当多个汇聚流具有最高优先级时,基于最近最少使用原则进行二级仲裁。
基于优先级的仲裁器由逻辑覆盖电路构成,所有请求被转发的数据流fij将其服务状态值sij同时送至仲裁总线,低优先的sij将被高优先级的sij覆盖,具有最高优先级的sij将保留在仲裁总线上。当两个以上的fij同时具有最高优先级sij时,通过round-robin仲裁器在其中作出选择,确保仲裁结果的唯一性。
逻辑覆盖电路由逻辑覆盖驱动电路与对比电路组成。所有请求被转发的数据流将其服务状态值同时送至逻辑覆盖总线,低优先级的服务状态值被高优先级的服务状态值覆盖。各汇聚流通过读取逻辑覆盖总线的值是否与自己的服务状态值一致判定其是否具有最高优先级。逻辑覆盖驱动电路由预放-求值动态cmos电路实现。将一个位时钟分为两部分,所有节点首先通过下拉nmos对逻辑覆盖总线的负荷电容进行预放;当一个或多个逻辑覆盖电路的输入为逻辑1时,上拉pmos管导通,逻辑覆盖总线保持为逻辑1,仅当所有逻辑覆盖电路的输入为逻辑0时,逻辑覆盖总线为逻辑0。逻辑覆盖对比电路采用采用并行覆盖对比方式,以减小逻辑覆盖延时。汇聚流服务状态值的所有位同时加到逻辑覆盖总线,对比时同时读取逻辑覆盖总线上的所有位。
为了避免并行覆盖对比方式中部分位相互覆盖,汇聚流服务状态值采用逻辑连续编码:
1)编码需由一串连续的逻辑0和一串连续的逻辑1组成;
2)全0和全1的二进制串也属于符合条件的编码;
3)编码空间中的任意两个代码间至少有一位不同。
本发明所述分布式总线控制模块分布于挂接在垂直总线上的各总线接口单元,通过分布式的二级优先权仲裁器实现垂直tsv总线仲裁。需引入两组tsv总线。一组为仲裁总线,用于完成分布式的逻辑覆盖;另一组为状态信息总线,用于指示一级优先级仲裁中获得使用权的节点。逻辑覆盖电路分布于各总线接口单元控制器中,且每个总线接口单元控制器中均配置有一个roundrobin仲裁器,并同步操作。除用于实现逻辑覆盖的tsv总线外,额外引入tsv状态信息总线用于第一级仲裁结果在各个节点间的共享。以tsv状态信息总线的值为输入,各个总线接口单元中roundrobin仲裁器按照最近最少使用原则确定唯一的总线使用者。各总线接口单元中,具有总线使用需求的数据流首先将其sij发送至tsv仲裁总线,然后依据仲裁总线逻辑覆盖的结果设置状态共享总线的状态值,分布于各总线接口单元的round-robin仲裁器将依据共享的状态值同步作出判断,确定唯一的总线使用者。
下面通过具体实施例对本发明的技术方案做进一步的详细说明:
本发明所述分布式流控机制应用于总线-noc混合三维片上网络,如图1所示。各资源节点规则分布于不同层内并通过路由节点实现互连。路由节点有六个互连端口,分别是东端口(e)、南端口(s)、西端口(w)、北端口(n)、本地端口(l)及垂直端口(v)。东、南、西、北四个端口实现与平面内相邻路由节点间的互连;本地端口与资源节点实现互连;垂直端口与总线接口单元互连。源节点s与目的节点d间的数据流按维序xyz路径转发,即数据流首先在源节点所在的平面内传输,当到达目标节点所在的垂直位置d(x,y)后,经路由垂直端口转发至tsv总线,最终到达目的节点。流特征学习阶段资源预约请求包也按照相同的路径转发。
本发明所述分布式流控机制所需的硬件组件分布于各路由节点及总线接口单口单元,如图2所示。其中,路由节点为经典输入虚通道结构,由路由计算、虚通道分配、开关分配、开关传输四级流水线组成。在xyz维序路由下,总线接收的数据包直接提交给资源节点,无需进一步路由,因而路由节点有五个输入端口,六个输出端口,路由节点内部共可抽象25个汇聚流。在经典结构的基础上,额外增加流特征学习模块、流行为监测模块及二级优先权仲裁模块实现汇聚流的带宽保障。流特征学习模块在学习各汇聚流带宽需求的基础上,通过分布式计算确定最拥塞链路,并估计各汇聚流在监控周期w内被转发微片数的期待值。流行为监测模块基于流特征学习结果及开关分配结果计算各汇聚流预约带宽与实际获得带宽间差值,并确定各汇聚流的服务优先级。二级优先权仲裁模块依据流监测模块提供的优先级优先为带宽余量较大的汇聚流分配开关,从而实现带宽分配。
总线接口单元含一个发送缓冲与一个接收缓冲,在此基础上额外增加流特征学习模块、流行为监测模块及分布式总线控制模块实现总线带宽分配。总线上的汇聚流数目由总线接口单元数(即,总线-noc三维片上网络的层数)确定。流特征学习模块与流行为监测模块的工作原理与路由节点中的对应模块相似。由于共享总线带宽的节点分布于不同层内,本发明采用分布式二级优先权仲裁器实现总线带宽分配。各总线接口单元需将流监测模块提供的优先级同时发送至仲裁总线完成逻辑覆盖,逻辑覆盖的结果通过状态信息总线实现共享。获得总线使用权的节点将被转发的微片及相应的目标总线接口单元地址分别发送至数据总线与地址总线,与地址总线提供地址匹配的总线接口单元读取数据总线上微片并存储于接收缓冲中。
本发明所述流特征学习模块通过分布式计算确定互连系统中最拥塞链路的带宽需求,如图3所示。各路由节点首先求得东(e)、南(s)、西(w)、北(n)、本地(l)五个方向上相邻通信链路的带宽需求,以及相邻垂直总线链路的带宽需求,如图3中(a)所示。比较器max_1首先求的上述各链路带宽需求的最大值,即,本地链路的最大带宽需求。最大本地链路带宽需求通过分布式比较传输得到全局最大值,如图3中(b)所示。各三维平面内,路径①上最左侧的路由将最大本地链路带宽需求传输至东端口,相邻路由节点从西端口(max_w)读取该值,并与本地最大链路带宽需求比较,取其大值传输至东端口(max_e)。路径①最右侧路由节点将获取x轴向最大链路带宽需求,该值传输至路由节点的南端口(max_s)。其路径②上的相邻路由节点从北端口(max_n)读取该值,并通过比较器max_2与本地维护的x轴向最大链路带宽需求作比较,取其大值传输至南端口(max_s)。路径②上最下侧的路由节点将获得平面内的最大链路带宽需求,该值沿路径③传输至最底层右下侧节点,并通过比较器max_3求得整个互连网络中最拥塞链路的带宽需求。该值将沿着如图3中(b)所示的③②①路径广播至所有的路由节点与总线接口单元。该分布式计算的时间复杂度为o(x+y+z),其中,x,y,z为三维片上网络在三个方向的维度。相较于集中式计算,本发明所使用的分布式计算极大的压缩了计算时间与相应的数据通信。
本发明所述流行为监测模块分布于各路由节点和总线接口单元,为路由节点或总线接口单元中的每个汇聚流配置一个流行为监测器,如图4所示。路由节点共有25个流行为监测器,总线接口单元有nz-1个流行为监测器(nz为混合三维片上网络的层数)。当开关分配阶段gij使能信号有效时,即允许端口i与端口j传输一个微片,汇聚流fij的服务状态寄存器sij减1;当服务周期w定时信号tw有效时,汇聚流fij的服务状态寄存器sij增加eij,即,监控周期w内期待被转发的微片数。
本发明所述二级优先权仲裁器用于实现路由节点开关分配的流控机制,如图5所示。开关分配采用输出端口优先策略,即,先对输入端口相同而输出端口不同的请求信号进行仲裁,基于仲裁结果再对输出端口相同输入端口不同的请求信号仲裁。总线-noc混合三维片上网络有5个输入端口,6个输出端口,因而开关分配共需11个二级优先权仲裁器。
本发明所述二级优先权仲裁器由基于逻辑覆盖电路的优先权仲裁器与最近最少使用roundrobin仲裁器级联构成,如图6所示。当请求信号汇聚流fij的服务请求信号rij有效时,其服务状态当前值sij被送往覆盖总线,否则将最低优先级(0)送往覆盖总线。当检测到总线数据与被发送sij值相同时,表明当前fij具有最高优先级,pij置位;否则意味着当前sij被其它更高优先级覆盖,pij复位。roundrobin仲裁器以pij为输入,将最近被服务的请求设置为最低优先级,最终从所有参与仲裁的请求信号中得到唯一有效的使能信号。roundrobin仲裁器将保证所有汇聚流优先级相同的情形下,能够公平的为其分配带宽。
二级优先权仲裁器所采用的逻辑覆盖驱动电路,如图7所示。在同步时钟clk为0期间,各驱动电路内的pmos管截止,nmos管导通,逻辑覆盖总线负荷电容cl通过所有驱动电路内的nmos放电;在同步时钟clk为1期间,各驱动电路内的nmos管截止,当其中一个输入为逻辑1时,其驱动电路内的pmos管将导通,负荷电容cl将被充电至高电平,逻辑覆盖总线为逻辑1;仅当所有输入为逻辑0时,逻辑覆盖总线才为逻辑0,从而实现逻辑1对逻辑0的覆盖;逻辑1具有较高的优先级。
逻辑覆盖对比电路采用采用并行覆盖对比方式,以减小逻辑覆盖延时。为了避免并行覆盖对比方式中部分位相互覆盖,汇聚流服务状态值采用逻辑连续编码,满足下述编码规则:
1)编码需由一串连续的逻辑0和一串连续的逻辑1组成;
2)全0和全1的二进制串也属于符合条件的编码;
3)编码空间中的任意两个代码间至少有一位不同。
n位二进制串所构成的符合上述特征的代码空间最多含2n个合法的编码,可划分为低位优先子集和高位优先子集两个子集,每个子集含n+1个编码。其中,低位优先子集中的代码逻辑1从低位开始,而高位优先子集中的代码逻辑1从高位开始,全0和全1的编码同时属于两个子集。低位优先子集和高位优先子集都是可行的并行仲裁编码但不能混用。
本发明所述分布式总线控制模块通过分布式二级优先权仲裁器实现,参见图8。与图6所示二级优先权仲裁器的不同之处在于,逻辑覆盖电路分布于个总线接口单元控制器中,且每个总线接口单元控制器中均配置有一个roundrobin仲裁器,并同步操作。除用于实现逻辑覆盖的tsv总线外,额外引入tsv状态信息总线用于第一级仲裁结果(pj)在各个节点间的共享。依据该值,各个总线接口单元中roundrobin仲裁器按照最近最少使用原则确定唯一的总线使用者。
本发明已参照当前的实施方式进行了描述,未详细说明部分属本领域技术人员公知常识。本技术领域的普通技术人员应当认识到,上述实施方式仅用来说明本发明,并非用来限定本发明的保护范围,任何在本发明的精神和原则范围之内,所做的任何修饰、等效替换、改进,均应包含在本发明的权利保护范围之内。因此,本发明的保护范围应该以权利要求书的保护范围为准。