CN105553753A - 一种固定时间片协同流控的片上环网防饥饿处理方法 - Google Patents
一种固定时间片协同流控的片上环网防饥饿处理方法 Download PDFInfo
- Publication number
- CN105553753A CN105553753A CN201510881618.8A CN201510881618A CN105553753A CN 105553753 A CN105553753 A CN 105553753A CN 201510881618 A CN201510881618 A CN 201510881618A CN 105553753 A CN105553753 A CN 105553753A
- Authority
- CN
- China
- Prior art keywords
- flow control
- node
- message
- hungry
- looped network
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
- H04L12/4637—Interconnected ring systems
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0805—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
- H04L43/0811—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking connectivity
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/54—Store-and-forward switching systems
- H04L12/56—Packet switching systems
- H04L12/5601—Transfer mode dependent, e.g. ATM
- H04L2012/5603—Access techniques
- H04L2012/5609—Topology
- H04L2012/5612—Ring
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Environmental & Geological Engineering (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明涉及一种固定时间片协同流控的片上环网防饥饿处理方法,在消息环网之外,构建一个独立的流量控制环网来传递所有饥饿节点的流量控制包,同一个环网方向上的所有饥饿节点只能在固定时间片里向其上游节点发送原始流量控制包,原始流量控制包通过流量控制环网依次传递给本饥饿节点对应的所有上游节点,上游节点根据所收到的流量控制包信息,选择在适当的时机禁止发送某种跨步距离的本地到远程消息,协同预留一个网络空闲的时间片,使饥饿节点一定能发送插入消息,解除饥饿。本发明解决了远程请求无条件优先的无阻塞环网中存在的饥饿问题,同时又最大限度保证了消息传递效率。
Description
技术领域
本发明涉及片上多核结构的环网技术领域,特别是涉及一种固定时间片协同流控的片上环网防饥饿处理方法。
背景技术
随着半导体工艺的进步和片上系统(SystemOnChip,SoC)技术的不断完善,单芯片上集成的处理器核数、片上缓存、存储控制器和各种I/O接口越来越多,连接这些模块的片上网络(NetworkOnChip,NoC)设计复杂度不断提高,在正确性验证、后端物理实现和频率提升等多方面都面临着新的挑战。
NoC的设计包括拓扑结构、路由算法、服务质量和阻塞控制等几个方面,由于NoC在一个芯片上实现,受面积和功耗的限制,具体实现时,应在满足性能需求的前提下,尽量选择简单高效的拓扑结构和路由算法,并在此基础上考虑服务质量和阻塞控制等问题。其中,路由算法对正确性至关重要,设计时必须满足以下要求:
1)路由算法必须能将消息正确发送到目的地,即要求算法无死锁和活锁;
2)路由算法应该公平对待NoC上的所有节点,以防止饥饿。
NoC的路由算法一般选择确定性路由,通过查询路由表或设置有限状态机来实现。路由算法在给定的源和目标节点之间提供唯一的消息传递路径,且通常是最短路径。在当前主流的SoC架构下,NoC节点数在10个左右,综合考虑性能和硬件开销,一般选择环网结构来连接各处理器、I/O接口和存储器接口,且采用双向环网来提高环网带宽。
基于此类环网拓扑结构,一种简单易行的路由算法如下:
1)采用源方路由机制,每个节点按最短路径算法制定一张路由表,明确指示一个消息从源节点传递到目标节点是采用顺时针环网还是逆时针环网,同时指定传输的跨步距离;
2)每个方向的环网节点,根据消息的来源和目标,将消息分为4类:本地到本地消息、本地到远程消息、远程到本地消息、远程到远程消息;其中,本地到本地消息和本地到远程消息简称插入消息,远程到本地消息和远程到远程消息简称网络消息;
3)每个方向的每个环网节点,设置2个站台:落地站台和转发站台,落地站台暂存本地到本地或远程到本地的消息,转发站台暂存本地到远程或远程到远程的消息;落地站台和转发站台合起来作为本节点的网络资源;
4)网络消息绝对优先于插入消息:本地到本地消息与远程到本地消息仲裁进入落地站台,远程到本地消息无条件优先于本地到本地消息;本地到远程消息与远程到远程消息仲裁进入转发站台,远程到远程消息无条件优先于本地到远程消息;
5)每个方向的环网实现为无阻塞网络,通过源与目标之间的信用机制以及网络消息绝对优先于插入消息,保证源节点发出的消息一定不会滞留在任何一个网络节点的落地站台和转发站台。
上述路由算法设计简单,能有效避免死锁问题,但因网络消息无条件优先于插入消息,所以源节点可能存在饥饿问题。产生饥饿的情况有两种:
1)源节点有本地到本地消息需要占用落地站台,但因上游节点持续不断地向源节点发送远程到本地消息,使得源节点长时间无法发送本地到本地消息;
2)源节点有本地到远程消息需要占用转发站台,但因上游节点持续不断地向源节点发送远程到远程消息,使得源节点长时间无法发送本地到远程消息。
落地站台和转发站台合起来作为本节点的网络资源,需要一起进行防饥饿处理。
发明内容
本发明所要解决的技术问题是提供一种固定时间片协同流控的片上环网防饥饿处理方法,能够彻底防止源节点出现饥饿问题。
本发明解决其技术问题所采用的技术方案是:提供一种固定时间片协同流控的片上环网防饥饿处理方法,在消息环网之外,构建一个独立的流量控制环网来传递所有饥饿节点的流量控制包,同一个环网方向上的所有饥饿节点只能在固定时间片里向其上游节点发送原始流量控制包,原始流量控制包通过流量控制环网依次传递给本饥饿节点对应的所有上游节点,上游节点根据所收到的流量控制包信息,选择在适当的时机禁止发送某种跨步距离的本地到远程消息,协同预留一个网络空闲的时间片,使饥饿节点一定能发送插入消息,解除饥饿。
所述流量控制环网与消息环网的方向相反,且流量控制包中的信息包含饥饿节点与本上游节点在消息环网上的跨步距离信息。
如果消息传递的最大跨步距离为n,则饥饿节点需要通知n个上游节点进行流量控制,流量控制包在流量控制环网上依次传递,最终到达所有的上游节点。
连续两次发送原始流量控制包的时间片间隔等于一个饥饿节点传递流量控制包给最远端上游节点的时间。
所述上游节点根据收到的流量控制包信息,确定在某一时钟周期里禁止发送某种跨步距离的本地到远程消息;如果消息传递的最大跨步距离为n,每个节点传递流量控制包的延迟为y,每个节点传递消息的延迟为x,则与饥饿节点距离为j(1≤j≤n)的上游节点,收到的流量控制包值为“n-j+1”,经过(n*y+(n-j)*x)拍后,禁止发送跨步距离≥j的本地到远程消息,允许发送跨步距离<j的本地到远程消息、本地到本地消息和网络消息;饥饿节点经过n*(x+y)拍后,一定有一拍网络空闲可以发送插入消息,解除饥饿。
所述上游节点在进行流量控制时,即使本节点也处于饥饿状态,仍不能发送某种跨步距离的本地到远程消息,以保证当前被处理的饥饿节点一定能解除饥饿;如果消息传递的最大跨步距离为n,每个节点传递流量控制包的延迟为y,每个节点传递消息的延迟为x,则与饥饿节点距离为j(1≤j≤n)的上游节点,收到流量控制包(n*y+(n-j)*x)拍以后,即使本节点自身也处于饥饿状态,仍然禁止发送跨步距离≥j的本地到远程消息。
所述饥饿节点在等待解除饥饿解除状态,如果提前识别到网络空闲,且不在进行流量控制,则可以发送插入消息,提前解除饥饿。
有益效果
由于采用了上述的技术方案,本发明与现有技术相比,具有以下的优点和积极效果:本发明在消息环网之外,构建一个独立的流量控制环网来传递所有饥饿节点的流量控制包,同一个环网方向上的所有饥饿节点只能在固定时间片里向其上游节点发送原始流量控制包,原始流量控制包通过流量控制环网依次传递给本饥饿节点对应的所有上游节点,上游节点根据所收到的流量控制包信息,选择在适当的时机禁止本节点向该饥饿节点发送本地到远程消息,协同预留一个网络空闲的时间片,使饥饿节点一定能发送插入消息,解除饥饿,从而彻底解决了远程请求无条件优先的无阻塞环网中存在的饥饿问题,同时又最大限度保证了消息传递效率。
附图说明
图1是双向环网结构示意图;
图2是单向环网节点结构示意图;
图3是单向环网节点状态转换示意图;
图4是包含8个节点的双向环网结构示意图。
具体实施方式
下面结合具体实施例,进一步阐述本发明。应理解,这些实施例仅用于说明本发明而不用于限制本发明的范围。此外应理解,在阅读了本发明讲授的内容之后,本领域技术人员可以对本发明作各种改动或修改,这些等价形式同样落于本申请所附权利要求书所限定的范围。
处理饥饿问题可分解为两个阶段:一是饥饿识别;二是流量控制。饥饿识别比较容易,当节点有插入消息需要发送,但因优先转发网络消息而无法发送,且持续一段时间时,就可被识别为出现了饥饿现象,该节点被称为饥饿节点。流量控制的本质是饥饿节点通知其所有的上游节点,停止或减少发送会经过饥饿节点的本地到远程消息,以便饥饿节点有网络空闲可以发送插入消息。如何通知上游节点进行流量控制,方法各有不同。
本发明采用了一种固定时间片协同流控的方法,其基本思想是:在消息环网之外,构建一个独立的流量控制环网来传递所有饥饿节点的流量控制包,同一个环网方向上的所有饥饿节点只能在固定时间片里向其上游节点发送原始流量控制包,原始流量控制包通过流量控制环网依次传递给本饥饿节点对应的所有上游节点,上游节点根据所收到的流量控制包信息,选择在适当的时机禁止本节点向该饥饿节点发送本地到远程消息,协同预留一个网络空闲的时间片,使饥饿节点一定能发送插入消息,解除饥饿。该方法的具体要求如下:
(1)在传递消息的环网之外,增设一套传递流量控制包的环网,流量控制环网与消息环网方向相反,且流量控制包中的信息包含饥饿节点与本上游节点在消息环网上的跨步距离信息;
(2)饥饿节点必须通知其所有的上游节点进行流量控制。如果消息传递的最大跨步距离为n,则饥饿节点需要通知n个上游节点进行流量控制,流量控制包在流量控制环网上依次传递,最终到达所有的上游节点;
(3)所有饥饿节点只能在固定时间片里进行饥饿处理,发送原始流量控制包。同一个环网方向上的不同节点被识别为饥饿节点的时刻不同,但都必须等到固定时间片时,才能发送原始流量控制包,且所有节点发送原始流量控制包的时间片相同;允许发送原始流量控制包的固定时间片被称为饥饿处理时间片;
(3)连续两次发送原始流量控制包的时间片间隔等于一个饥饿节点传递流量控制包给最远端上游节点的时间。一个饥饿节点的原始流量控制包通过流量控制环网依次传递给其所有上游节点需要延迟,只有当最远端的上游节点收到流量控制包后,才允许本节点或其他饥饿节点再次发送原始流量控制包到流量控制环网。如果消息传递的最大跨步距离为n,每个节点传递流量控制包的延迟为y,则连续两次发送原始流量控制包的时间片间隔为n*y;
(4)一个饥饿节点的所有上游节点协同预留一个网络空闲的时间片给饥饿节点解除饥饿。上游节点根据收到的流量控制包信息,确定在某一时钟周期里禁止发送某种跨步距离的本地到远程消息。如果消息传递的最大跨步距离为n,每个节点传递流量控制包的延迟为y,每个节点传递消息的延迟为x,则与饥饿节点距离为j(1≤j≤n)的上游节点,收到的流量控制包值为“n-j+1”,经过(n*y+(n-j)*x)拍后,禁止发送跨步距离≥j的本地到远程消息,允许发送跨步距离<j的本地到远程消息、本地到本地消息和网络消息。饥饿节点经过n*(x+y)拍后,一定有一拍网络空闲可以发送插入消息,解除饥饿;上游节点禁止发送某类本地到远程消息的时钟周期被称为流量控制周期;
(5)上游节点在进行流量控制时,即使本节点也处于饥饿状态,仍不能发送某种跨步距离的本地到远程消息,以保证当前被处理的饥饿节点一定能解除饥饿。如果消息传递的最大跨步距离为n,每个节点传递流量控制包的延迟为y,每个节点传递消息的延迟为x,则与饥饿节点距离为j(1≤j≤n)的上游节点,收到流量控制包(n*y+(n-j)*x)拍以后,即使本节点自身也处于饥饿状态,仍然禁止发送跨步距离≥j的本地到远程消息;
(6)饥饿节点在等待解除饥饿解除状态,如果提前识别到网络空闲,且不在进行流量控制,则可以发送插入消息,提前解除饥饿。
如图1所示,双向环网上共有m个环网节点,路由算法根据最短距离选择逆时针或顺时针网络传递消息,在传递消息的环网之外,再增设一套传递流量控制信息的环网,消息环网与流量控制环网方向相反。为了节约网络开销,同一方向只设置一套流量控制环网,所有节点利用该网络传送本节点生成的流量控制包,转发下游节点的流量控制包。如果消息传递的最大跨步距离是n,则饥饿节点向相邻的上游节点发出的原始流量控制包,值为“n”。上游节点收到“n”后,执行减“1”操作,如果“n-1”不为“0”,则再向相邻的上游节点转发流量控制包,值为“n-1”;如果“n-1”为“0”,则停止转发。这种流量控制包传输方式可保证所有上游节点收到流量控制包,并且每个收到流量控制包的上游节点,能从其值中获得饥饿节点离本节点的跨步距离。
如图2所示,一个单向环网节点内部,到本地的消息和到远程的消息经过仲裁后分别进入落地站台或转发站台,下游节点发来的流量控制包执行减“1”操作后,与本地发出的原始流量控制包经过仲裁后发向上游节点。本节点收到的流量控制包用于流量控制,禁止某个时钟周期里本节点发出的某类本地到远程消息。本节点发出原始流量控制包的时刻,受饥饿处理时间片限制。
不同的环网实现,每个节点传递流量控制包和消息的延迟不同,为了简化算法描述,先假定每个节点流量控制包和消息都只需1个时钟周期。
每个单向环网节点采用状态机进行控制,具体的状态定义如下:
(1)正常发送状态:节点可以自由选择发送插入消息或网络消息,网络消息绝对优先于插入消息;
(2)饥饿状态:节点有插入消息需要发送,但因连续发送网络消息而长时间无法发送插入消息;
(3)等待解除饥饿状态:节点已发出流量控制包,正在等待解除饥饿。
每个单向环网节点内部设置3个计时器,分别是饥饿识别计时器、饥饿处理计时器和流控计时器,其中饥饿识别计时器和饥饿处理计时器是加“1”计数器,流控计时器是移位计数器。
饥饿处理计时器的操作如下:复位撤消后,自动进行加“1”计数,当数值达到指定的阀值时,重新从“0”开始计数。如果消息传递的最大跨步距离是n,则饥饿处理计时器的阀值为“n-1”,当饥饿处理计时器的值为“0”时,表示是饥饿处理时间片,饥饿节点可以发送原始流量控制包。如果一个节点刚好错过上一个饥饿处理时间片,则需要等待(n-1)拍后才能进行饥饿处理。环网上所有节点必须在同一个时间片里进行饥饿处理,因此具体实现时,可以在每个节点内部设置饥饿处理计时器,但要求所有节点的计时器值必须相同;也可以在环网之外统一设置一个饥饿处理计时器,并且给所有节点发送一个饥饿处理使能信号。
饥饿识别计时器的操作如下:当节点处于正常发送状态,且有插入消息需要发送,但因发送网络消息而无法发送时,进行加“1”计数,当数值达到指定阀值时,停止计数;当节点处于任何状态,只要发送了插入消息,计时器都重新从“0”开始计数。饥饿识别计时器的阀值可根据消息环网的阻塞情况自行定义,各个节点的阀值也可不同。
流控计时器的操作如下:根据所收到的流量控制包的值置某位为“1”,且每拍执行从左向右的移位操作,当最低位为“1”时,表示本时钟周期里,禁止本节点发送某一类的插入消息。如果消息传递的最大跨步距离是n,则流控计时器总位数为(2n-2),无论节点处于什么状态,如果收到下游节点的流量控制包,其值为“x”(1≤x≤n),则将流控计时器的第[2x-2]位置为“1”,其他位继续执行从左到右的移位操作;如果没有收到下游节点的流量控制包,则全部执行从左到右的移位操作;最高位如果没有被流量控制包置“1”,则总是移入“0”。一个节点在一段时间里,可能收到不同下游节点发出的流量控制包,因此流控计时器可能出现多位同时为“1”的情况。
为了方便上游节点在流量控制周期里禁止发送某一类的网络消息,可设置一个移位队列,用于存放讥饿节点与本节点之间的跨步距离,简称饥饿节点队列。如果消息传递的最大跨步距离是n,则饥饿节点队列的总条目数为(2n-2),饥饿节点队列与流控计时器一起执行置位和移位操作。无论节点处于什么状态,如果收到下游节点的流量控制包,其值为“x”(1≤x≤n),则将饥饿节点队列的第[2x-2]个条目置为“n-x”,其他条目继续执行从左到右的移位操作;如果没有收到下游节点的流量控制包,则全部执行从左到右的移位操作。如果流控计时器的第0位为“1”时,饥饿节点队列0条目的值为“z”,则本时钟周期为流量控制周期,必须禁止本节点发送跨步距离大于等于“z+1”的本地到远程消息,但可以发送跨步距离小于“z+1”的本地到远程消息和任意网络消息。
如图3所示,一个单向环网节点的状态转换如下:
(1)复位结束,节点处于正常发送状态;
(2)正常发送状态下,如果饥饿识别计时器的值等于指定的阀值,则转为饥饿状态;否则继续保持正常发送状态;
(3)饥饿状态下,如果发送了插入消息,则转为正常发送状态;如果没有发送插入消息,且饥饿处理计时器值为“0”,则发送原始流量控制包,转为等待解除饥饿状态;否则继续保持饥饿状态;
(4)等待解除饥饿状态下,如果发送了插入消息,则转为正常发送状态;否则继续保持等待解除饥饿状态。
一个单向环网上的某个节点发生饥饿时,其上游的n个节点传递其流量控制包并进行流量控制的情况如下表1所示:
表1:n个上游节点流量控制周期示意表格
假定饥饿节点(k)在第i拍发送原始流量控制包到流量控制环网上,其值为“n”;上游节点(k-1)在第(i+1)拍收到流量控制包,其值为“n-1”,并转发流量控制包到流量控制环网上,其值为“n-2”;以此类推,上游节点(k-n)在第(i+n)拍收到流量控制包,其值为“1”,停止转发流量控制包。所有上游节点都将进行一拍的流量控制,为饥饿节点(k)预留一拍的空隙发送插入消息。上游节点(k-j)(1≤j≤n)在第(i+j)拍收到流量控制包,其值为“n-j+1”,将在第(i+2n-j)拍禁止发送跨步距离≥j的本地到远程消息,但可以发送跨步距离<j的本地到远程消息和任意网络消息。饥饿节点(k)在第(i+2n)拍,一定有网络空闲发送插入消息,解除饥饿。
本方法的特点如下:
(1)饥饿节点一定能解除饥饿。一个饥饿节点的所有上游节点根据消息传递延迟,协同调整本节点流量控制的时刻,使得饥饿节点一定有一拍网络空闲;
(2)在一个饥饿处理时间片间隔内被识别的多个饥饿节点,将一起进行饥饿处理,一起解除饥饿;
(3)饥饿节点解除饥饿的平均延迟低。当一个饥饿节点(k)发出原始流量控制包(值为n)后,该节点的n个上游节点会在后续n拍内,依次收到节点(k)的流量控制包(值依次减“1”),并且再过n拍后,该节点一定能解除饥饿。由于饥饿节点只能在饥饿处理时间片内发送原始流量控制包,因此节点从识别到饥饿到解除饥饿的最大延迟为(3n-1)个时钟周期,最小延迟为2n个时钟周期。在此期间,如果饥饿节点提前识别到网络空闲,只要不在本节点的流量控制周期,就可以发送插入消息,提前解除饥饿;
(4)饥饿处理对消息网络的传输效率影响最小。每个上游节点只为饥饿节点进行一拍的流量控制,并且在流量控制周期里,只禁止发送跨步距离≥j的本地到远程消息,允许发送跨步距离<j的本地到远程消息和任意网络消息。
上述节拍和延迟假定每个节点传递消息或流量控制包都只需要一个时钟周期,本专利描述的方法并不局限于此。对于一个消息传递的最大跨步距离仍然为n的环网,饥饿节点发送的原始流量控制包,其值仍为“n”。如果每个节点传递消息需要x拍,传递流量控制包需要y拍,则饥饿处理时间片间隔变为y*n,当一个节点(k)在第(i)拍发送原始流量控制包,其值为“n”,该节点的n个上游节点会在后续n*y拍内,依次收到节点(k)的流量控制包,其值依次减“1”。某个上游节点(k+j)(1≤j≤n)在第(i+j*y)拍收到其下游节点(k)的流量控制包,其值为“n-j+1”,并在第(i+n*y+(n-j)*x)拍禁止发送跨步距离≥j的本地到远程消息,但可以发送跨步距离<j的本地到远程消息和任意网络消息。节点(k)在第(i+n*(x+y))拍一定有网络空闲可以发送插入消息,解除饥饿。
下面以一个具体的环网为例进行说明。
如图4所示,双向环网包含8个节点,针对每个方向的消息环网,分别增设了一套流量控制环网。节点0向节点4发送的消息既可以走顺时针网络,也可以走逆时针网络;节点1、2、3向节点4发送的消息走顺时针网络,因此,节点4可能收到节点0、节点1、节点2、节点3发出的消息,本环网消息传递的最大跨步距离为4。
每个单向环网节点的结构与示意图2相似,节点传递消息和流量控制包的延迟都为1个时钟周期,每个节点发出的本地初始流量控制包,其值为“4”,饥饿处理计时器的阀值为“3”。根据网络规模和消息流量情况,设置饥饿识别计时器的阀值为“15”。流量控制计时器的位数为6,饥饿节点队列的条目数为6,每个条目的位宽为2。
复位结束后,各节点都处于正常发送状态,各计时器的值都为“0”。8个节点内的饥饿处理计时器同步进行计数,值在“0”、“1”、“2”、“3”之间循环。假定节点4在正常发送状态有插入消息需要发送,但因优先发送网络消息(该消息可能来自节点0、1、2、3)而无法发送,节点4的饥饿识别计时器开始加“1”计数,如果计到“15”,表示节点4被连续阻塞了16个时钟周期,此时节点4转为饥饿状态。节点4在饥饿状态时,如果此时饥饿处理计时器的值为“0”,则当拍向上游节点3发送原始流量控制包,其值为“4”,转为等待解除饥饿状态;否则保持饥饿状态,继续等待。
假定节点4在第i拍发送了始流量控制包,其值为“4”,其上游的4个节点进行流量控制的情况如下表2所示:
表2:一个饥饿节点的流量控制周期示意表格
说明如下:
(1)上游节点3在第(i+1)拍,收到流量控制包,其值为“4”;转发流量控制包,其值为“3”;
(2)上游节点2在第(i+2)拍,收到流量控制包,其值为“3”;转发流量控制包,其值为“2”;
(3)上游节点1在第(i+3)拍,收到流量控制包,其值为“2”;转发流量控制包,其值为“1”;
(4)上游节点0在第(i+4)拍,收到的流量控制包,其值为“1”,当拍停止转发流量控制包,且禁止发送跨步距离≥4的本地到远程消息;
(5)上游节点1在第(i+5)拍,禁止发送跨步距离≥3的本地到远程消息;
(6)上游节点2在第(i+6)拍,禁止发送跨步距离≥2的本地到远程消息;
(7)上游节点3在第(i+7)拍,禁止发送跨步距离≥1的本地到远程消息;
(8)节点4在第(i+7)拍,一定有网络空闲发送插入消息,解除饥饿。
假定节点3和4都处于饥饿状态,且在第i拍一起发送了始流量控制包,其值都为“4”,则其上游的5个节点传递其流量控制包的情况如下表3所示:
表3:两个节点饥饿的流量控制周期示意表格
节点3和节点4进入饥饿状态的时刻可能不同,但都在第i拍进行饥饿处理,在第(i+8)拍解除饥饿。在第(i+7)拍里,饥饿节点3本身处于饥饿状态,即使当拍发现网络有空隙,也禁止发送跨步距离≥1的本地到远程消息,因为本拍需要为其下游节点4进行流量控制,以保证饥饿节点4在(i+8)拍里一定有网络空闲解除饥饿。
环网上有更多的节点产生饥饿时,情况类似,所有的饥饿节点在统一固定的时间片里开始进行饥饿处理,发送原始流量控制包,最多经过8拍后同时解除饥饿。
Claims (7)
1.一种固定时间片协同流控的片上环网防饥饿处理方法,其特征在于,在消息环网之外,构建一个独立的流量控制环网来传递所有饥饿节点的流量控制包,同一个环网方向上的所有饥饿节点只能在固定时间片里向其上游节点发送原始流量控制包,原始流量控制包通过流量控制环网依次传递给本饥饿节点对应的所有上游节点,上游节点根据所收到的流量控制包信息,选择在适当的时机禁止发送某种跨步距离的本地到远程消息,协同预留一个网络空闲的时间片,使饥饿节点一定能发送插入消息,解除饥饿。
2.根据权利要求1所述的固定时间片协同流控的片上环网防饥饿处理方法,其特征在于,所述流量控制环网与消息环网的方向相反,且流量控制包中的信息包含饥饿节点与本上游节点在消息环网上的跨步距离信息。
3.根据权利要求1所述的固定时间片协同流控的片上环网防饥饿处理方法,其特征在于,如果消息传递的最大跨步距离为n,则饥饿节点需要通知n个上游节点进行流量控制,流量控制包在流量控制环网上依次传递,最终到达所有的上游节点。
4.根据权利要求1所述的固定时间片协同流控的片上环网防饥饿处理方法,其特征在于,连续两次发送原始流量控制包的时间片间隔等于一个饥饿节点传递流量控制包给最远端上游节点的时间。
5.根据权利要求1所述的固定时间片协同流控的片上环网防饥饿处理方法,其特征在于,所述上游节点根据收到的流量控制包信息,确定在某一时钟周期里禁止发送某种跨步距离的本地到远程消息;如果消息传递的最大跨步距离为n,每个节点传递流量控制包的延迟为y,每个节点传递消息的延迟为x,则与饥饿节点距离为j(1≤j≤n)的上游节点,收到的流量控制包值为“n-j+1”,经过(n*y+(n-j)*x)拍后,禁止发送跨步距离≥j的本地到远程消息,允许发送跨步距离<j的本地到远程消息、本地到本地消息和网络消息;饥饿节点经过n*(x+y)拍后,一定有一拍网络空闲可以发送插入消息,解除饥饿。
6.根据权利要求1所述的固定时间片协同流控的片上环网防饥饿处理方法,其特征在于,所述上游节点在进行流量控制时,即使本节点也处于饥饿状态,仍不能发送某种跨步距离的本地到远程消息,以保证当前被处理的饥饿节点一定能解除饥饿;如果消息传递的最大跨步距离为n,每个节点传递流量控制包的延迟为y,每个节点传递消息的延迟为x,则与饥饿节点距离为j(1≤j≤n)的上游节点,收到流量控制包(n*y+(n-j)*x)拍以后,即使本节点自身也处于饥饿状态,仍然禁止发送跨步距离≥j的本地到远程消息。
7.根据权利要求1所述的固定时间片协同流控的片上环网防饥饿处理方法,其特征在于,所述饥饿节点在等待解除饥饿解除状态,如果提前识别到网络空闲,且不在进行流量控制,则可以发送插入消息,提前解除饥饿。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510881618.8A CN105553753B (zh) | 2015-12-03 | 2015-12-03 | 一种固定时间片协同流控的片上环网防饥饿处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510881618.8A CN105553753B (zh) | 2015-12-03 | 2015-12-03 | 一种固定时间片协同流控的片上环网防饥饿处理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105553753A true CN105553753A (zh) | 2016-05-04 |
CN105553753B CN105553753B (zh) | 2018-09-25 |
Family
ID=55832693
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510881618.8A Active CN105553753B (zh) | 2015-12-03 | 2015-12-03 | 一种固定时间片协同流控的片上环网防饥饿处理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105553753B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108347366A (zh) * | 2017-01-23 | 2018-07-31 | 华为技术有限公司 | 一种网络中控制数据传输的方法及装置 |
CN110601996A (zh) * | 2019-09-06 | 2019-12-20 | 无锡江南计算技术研究所 | 一种采用令牌保底分布式贪心算法的环网防饥饿流控方法 |
CN112235763A (zh) * | 2020-10-23 | 2021-01-15 | 北京航空航天大学云南创新研究院 | 基于时分复用动态分配的低功耗点对点无线LoRa设备 |
CN114185841A (zh) * | 2021-11-24 | 2022-03-15 | 上海高性能集成电路设计中心 | 一种片上网络信用饥饿控制装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1466391A (zh) * | 2002-06-22 | 2004-01-07 | ��Ϊ��������˾ | Ip环分布式带宽处理方法 |
CN1859295A (zh) * | 2005-11-17 | 2006-11-08 | 华为技术有限公司 | 一种弹性分组环网公平算法处理方法和系统 |
US20150249572A1 (en) * | 2014-03-03 | 2015-09-03 | Futurewei Technologies, Inc. | Software-Defined Network Control Using Functional Objects |
-
2015
- 2015-12-03 CN CN201510881618.8A patent/CN105553753B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1466391A (zh) * | 2002-06-22 | 2004-01-07 | ��Ϊ��������˾ | Ip环分布式带宽处理方法 |
CN1859295A (zh) * | 2005-11-17 | 2006-11-08 | 华为技术有限公司 | 一种弹性分组环网公平算法处理方法和系统 |
US20150249572A1 (en) * | 2014-03-03 | 2015-09-03 | Futurewei Technologies, Inc. | Software-Defined Network Control Using Functional Objects |
Non-Patent Citations (1)
Title |
---|
彭元喜: "一种基于二步流控方法的片上动态虚通道路由器", 《计算机研究与发展》 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108347366A (zh) * | 2017-01-23 | 2018-07-31 | 华为技术有限公司 | 一种网络中控制数据传输的方法及装置 |
CN110601996A (zh) * | 2019-09-06 | 2019-12-20 | 无锡江南计算技术研究所 | 一种采用令牌保底分布式贪心算法的环网防饥饿流控方法 |
CN110601996B (zh) * | 2019-09-06 | 2021-06-04 | 无锡江南计算技术研究所 | 一种采用令牌保底分布式贪心算法的环网防饥饿流控方法 |
CN112235763A (zh) * | 2020-10-23 | 2021-01-15 | 北京航空航天大学云南创新研究院 | 基于时分复用动态分配的低功耗点对点无线LoRa设备 |
CN112235763B (zh) * | 2020-10-23 | 2022-11-01 | 北京航空航天大学云南创新研究院 | 基于时分复用动态分配的低功耗点对点无线LoRa设备 |
CN114185841A (zh) * | 2021-11-24 | 2022-03-15 | 上海高性能集成电路设计中心 | 一种片上网络信用饥饿控制装置 |
CN114185841B (zh) * | 2021-11-24 | 2024-09-10 | 上海高性能集成电路设计中心 | 一种片上网络信用饥饿控制装置 |
Also Published As
Publication number | Publication date |
---|---|
CN105553753B (zh) | 2018-09-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5335892B2 (ja) | パケット交換オンチップ相互接続ネットワークの高速仮想チャネル | |
US9385962B2 (en) | Method and system for flexible credit exchange within high performance fabrics | |
US8792508B2 (en) | Subscriber and communication controller of a communication system and method for implementing a gateway functionality in a subscriber of a communication system | |
US20170111283A1 (en) | CONGESTION CONTROL AND QoS IN NoC BY REGULATING THE INJECTION TRAFFIC | |
US8458267B2 (en) | Distributed parallel messaging for multiprocessor systems | |
RU2565781C2 (ru) | Предоставление безбуферного способа транспортировки для многомерной ячеистой топологии | |
CN105553753A (zh) | 一种固定时间片协同流控的片上环网防饥饿处理方法 | |
US20070053350A1 (en) | Buffering data packets according to multiple flow control schemes | |
Abdallah et al. | Wormhole networks properties and their use for optimizing worst case delay analysis of many-cores | |
JPWO2014128802A1 (ja) | インタフェース装置およびバスシステム | |
Chen et al. | ArSMART: An improved SMART NoC design supporting arbitrary-turn transmission | |
US5694121A (en) | Latency reduction and routing arbitration for network message routers | |
US6728790B2 (en) | Tagging and arbitration mechanism in an input/output node of a computer system | |
US20140177648A1 (en) | Tagging and synchronization for fairness in noc interconnects | |
US6681274B2 (en) | Virtual channel buffer bypass for an I/O node of a computer system | |
EP2639702B1 (en) | Circuit and method for software tracing | |
CN110601996B (zh) | 一种采用令牌保底分布式贪心算法的环网防饥饿流控方法 | |
US8205023B1 (en) | Concurrent pairing of resources and requestors | |
US6839784B1 (en) | Control unit of an I/O node for a computer system including a plurality of scheduler units each including a plurality of buffers each corresponding to a respective virtual channel | |
KR20230002947A (ko) | 온칩 라우터 | |
KR102113641B1 (ko) | 소프트웨어 정의 네트워크 시스템에서 다중 중요도 모드에 따른 패킷 스케줄링 방법, 그 방법을 구현한 컴퓨터프로그램 및 그 방법을 수행하는 스위치 장치 | |
JP2014035696A (ja) | 並列計算機システム、クロスバスイッチ及び並列計算機システムの制御方法 | |
JP5949312B2 (ja) | 並列計算機システム、データ転送装置及び並列計算機システムの制御方法 | |
CN103873386A (zh) | 管理网络传输顺序的方法 | |
US11625357B2 (en) | Control of data transfer between processors |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |