专利名称:一种通过数据分割传输实现容错可重构片上网络的方法
技术领域:
本发明涉及片上通信网络设计技术领域,特别涉及在部分网络出现错误时依然保证系统能够正常工作的方法,具体是一种通过数据分割传输实现容错可重构片上网络的方法。
背景技术:
随着摩尔定律的延伸,单芯片上可以集成的晶体管数量不断增多。从计算机体系结构的角度而言,这使得系统设计人员可以将更多的逻辑模块放置到单一芯片上,传统的做法是将更多的功能模块加入到单一处理器中,处理器的结构越来越复杂。虽然处理器的性能也不断获得提升,但是这种做法并不具有很好的可拓展性,并不能充分利用芯片的面积和逻辑资源。近十年来,学术界和工业界选择了另一种解决方案增加单芯片上处理器的 数目,而每个处理器的结构相对简单。对于单处理器的解决方案,随着处理器面积的增加,性能的提升远远低于线性关系。而对于多核处理器,如果可以编写出合适的软件和算法,性能与面积之间的关系接近于线性,从而使性能大幅提升。同时,由于每个处理器的结构相对简单,多核处理器的功耗也可以降低。增加单芯片上处理器的数目已经成为适应摩尔定律的主要发展方向。对于多核处理器,众多的处理器使得它们之间的通信增多并且变得更加复杂。传统的总线结构并不能适应片上通信的新需求,片上网络的概念便应运而生。片上网络中很多结构和算法都与计算机互联网十分类似。但是由于它位于芯片上,对功耗,性能,灵活度等很多设计空间产生了很大的挑战,从而使得传统网络的设计方法并不完全适用,很多重要的研究问题便由此产生。近些年来涌现了大量片上网络方面的研究工作。为这个领域带来了蓬勃的发展。半导体工艺进步的同时也带来了大量电路稳定性问题。特征尺寸的缩小,电压的降低,频率的升高和集成度的增加使得芯片上的错误率越来越高。芯片上的错误可以被分为临时错误和永久错误。临时错误是偶然发生的错误,很快就会自动恢复,如射线造成的临时翻转。而永久错误是一直存在的,一旦出现便无法复原,如芯片生产时混入的杂质。对于临时错误,通常在芯片中加入检测电路进行探测,一旦发现临时错误便通过重新计算等方法进行恢复。对于永久错误,传统的电路设计通常假设工艺是完美的,不会出现差错。在芯片制造时如果有错误产生则芯片被作为废品抛弃。这使得芯片的成品率降低。容错电路设计是可以克服这些困难的一种设计方法。容错电路在设计时便考虑到芯片中可能会存在的错误,并使用时间冗余或者空间冗余的方法避开错误。这样,当芯片中只有少量永久错误时,它仍可以利用冗余的资源继续正常工作,而并不需要抛弃整块芯片。空间冗余的方法使用额外的硬件来进行容错。如在连线中使用多于所需的比特数,这样当一根连线发生错误时可以使用冗余的连线进行数据传输。这样做的优点是出错的电路模块无需改变任何对外接口,对于系统的其他部分而言,模块的行为没有任何变化。因此其他模块并不需要知道该模块已经出错的信息。而这样做的缺点在于引入的硬件会带来额外的面积和功耗代价。时间冗余方法不引入额外硬件,在出错的硬件停止工作后,这种方法将该硬件的任务分配到周边仍然正常工作中的硬件上。这样虽然可以节省硬件开销,但是使得系统性能下降。对于时间冗余容错,现有研究主要提出了两种实现方法第一种方法是将片上网络路由节点之间的连线分片(一般为2片),并用多路选择器与节点的输入端相连。不过这种做法只能解决片上网络中连线上的错误,不能解决网络数据通路的其他部分(输入缓冲器,交叉开关)中的错误。而且连线两端添加的的多路选择器会带来比较大的功耗和面积代价。第二种方法是尽可能多的使用连线中未损坏的比特。如对于n-bit的带宽,如果其中有m-bit出现错误,则使用余下的(n-m)bit进行数据传输。不过这样做会带来比较复杂的数据分割和重组机制,因此有比较大的控制代价。比如长度为4个数据包的数据,如果有1/5的带宽出现错误,理论上数据仍可以在5个周期内进行传输。但是数据包内的数据格式会被打乱,在接收端进行整理比较复杂
发明内容
本发明旨在至少解决现有技术中存在的技术问题,特别创新地提出了一种通过数据分割传输实现容错可重构片上网络的方法。为了实现本发明的上述目的,本发明提供了一种通过数据分割传输实现容错可重构片上网络的方法,其包括错误检测和错误校正,所述错误检测包括如下步骤Sll :对片上网络的数据通路进行分割传输;S12 :使所有路由节点对控制逻辑进行重构;S13 :指定接收路由节点,使片上网络中待测路由节点向所述接收路由节点发送检测数据包;S14:根据所述接收路由节点接收到的数据完整性,判断待测路由节点分割传输的数据通路是否有效;S15 :如果有的数据通路无效,则记录无效的路径用于错误校正;S16:当一个路由节点测试完毕后,返回步骤S12,对其他路由节点进行测试,直到所有路由节点被测完毕;所述错误校正包括如下步骤S21 :如果所有数据通路均有效,则选择任意数据通路使数据由当前路由节点完整流向下一级路由节点;S22:如果输入数据通路有半边错误,输出无错,则输入数据要在两个时钟周期内通过任意输出数据通路分别流出,并在数据的接收路由节点进行重组;S23:如果输入数据通路、输出数据通路均有半边错误,则输入数据在两个时钟周期内分别通过正确的输出数据通路流出,并在数据的接收路由节点进行重组;S24 :如果输入数据通路无错、输出数据通路有半边错误,则输入数据在两个时钟周期分别沿正确的输出数据通路流出,并在数据的接收路由节点进行重组。本发明的通过数据分割传输实现容错可重构片上网络的方法解决了片上网络数据通路中所有组件的容错问题,包括连线,输入缓冲器和交叉开关,同时,本发明引入的硬件代价小于现有的时间冗余容错方法,能够降低硬件和功耗。
在本发明的一种优选实施例中,待测路由节点或每个接收路由节点的分割传输的数据通路包括P个数据输入端和与所述P个数据输入端分别连接的Q个数据输出端,数据在每个路由节点中具有P X Q个流动方式。本发明使用分割传输后,数据通路的交叉开关中的交叉点数目增加。当数据通路中的一半存在错误时,可以将控制逻辑进行重构,并通过另一半数据通路对数据进行传输,不仅可以解决连线中的错误,还可以解决输入缓冲器和交叉开关中的错误,同时还可以将硬件和功耗代价降低。在本发明的另一种优选实施例中,待测路由节点向其上下左右距离为I和2的8个接收路由节点,以及沿两个对角线方向最近的4个接收路由节点发送检测数据包。本发明的待测路由节点同时向12个接收路由节点发送检测数据包,接收路由节点对收到的数据包进行处理分析得到错误诊断信息,并由此得到网络中被禁止数据流动的数据通路,工作效率高。 本发明的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中图I是本发明对数据通路进行分割传输前和分割传输后的电路框图;图2是本发明通过数据分割传输实现容错可重构片上网络的方法在进行错误检测时路由节点间的通信模式;图3是本发明通过数据分割传输实现容错可重构片上网络的方法的错误校正的示意图。
具体实施例方式下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。在本发明的描述中,需要理解的是,术语“纵向”、“横向”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底” “内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。本发明提供了一种通过数据分割传输实现容错可重构片上网络的方法,其包括错误检测和错误校正,本发明以片上网络为4X4的Mesh网络为例说明,其中,错误检测是一种离线检测机制,其包括如下步骤Sll :对片上网络的数据通路进行分割传输;在本实施方式中,分割传输的数据通路包括P个数据输入端和与该P个数据输入端分别连接的Q个数据输出端,数据在每个路由节点中具有PXQ个流动方式。在本发明的一种更加优选的实施方式中,分割传输的数据通路包括两个数据输入端和与该两个数据输入端分别连接的两个数据输出端,数据在每个路由节点中具有四个流动方式。如图I所示,图I (a)是使用分割传输之前的数据通路,图I (b)是使用分割传输之后的数据通路,使用分割传输后,数据通路的交叉开关中的交叉点数目增加,这样当数据通路中的一半存在错误时,可以将控制逻辑进行重构,并通过另一半数据通路对数据进行传输。在本实施方式中,路由节点可以分组进行错误检测,检测完一组后再进行下一组的检测。S12 :使所有路由节点对控制逻辑进行重构,当路由节点分组进行错误检测时,使待测组内的所有路由节点对控制逻辑进行重构,在本实施方式中,仅对交叉开关中被用于测试的交叉点集合,即图I中的交叉点集合A,B,C或者D进行控制。S13 :指定接收路由节点,使片上网络中待测路由节点向该接收路由节点发送检测数据包,每个检测数据包的数据格式都是预先设定,所以每个路由节点不需要额外通信便可以获知。在本实施方式中,待测路由节点向其上下左右距离为I和2的8个接收路由节 点,以及沿两个对角线方向最近的4个接收路由节点发送检测数据包。如图2所示,接收路由节点对收到的数据进行处理分析得到错误诊断信息,并由此得到网络中被禁止数据流动的数据通路。对于数据传输的每个方向,需要验证图I中交叉点集合A、B、C、D四个可能数据流动方式。因此每个数据包都需要沿交叉点集合A、B、C、D四个通路分别发送,并对每个通路获得被禁止的路线。S14 :根据接收路由节点接收到的数据完整性,判断待测路由节点分割传输的数据通路是否有效,根据接收路由节点收到的数据完整性,可以判断某一种传输方向对于被测交叉点集合传播无效。如图2中,在测试交叉点集合D时,发现接收到的数据有2-bit与发送的数据不匹配,这说明交叉点集合D对于由西向南方向的数据流动会产生错误,在本实施方式中,按照上北下南左西右东的规则确定方向。S15:如果有的数据通路无效,则记录无效的路径用于错误校正,对于每条出错的路径,记录如下信息从节点s (经节点m)到节点d,通过交叉点集合X的路径发生错误,此信息将用于错误校正,如图2所示,记录的信息为从节点5 (经节点6)到节点10,通过交叉点集合D的路径发生错误。S16:当一组路由节点测试完毕后,返回步骤S12,对其他分组内的路由节点进行测试,直到所有路由节点被测完毕。本发明的错误校正包括如下步骤S21 :如果没有错误,所有数据通路均有效,则选择任意数据通路使数据由当前路由节点完整流向下一级路由节点,在本实施方式中,仅选择图3中B和C两组交叉点进行数据传输,数据由当前路由节点完整流向下一级路由节点。S22:如果输入数据通路有半边错误,输出数据通路无错,则输入数据要在两个时钟周期内通过任意输出通路分别流出,并在数据的接收路由节点进行重组,如图3所示,假设数据仅从Inl输入端流入,而交叉点集合A和交叉点集合C对应的输出通路无误,那么ΙηΓ流入的不完整数据需要在两个时钟周期内沿交叉点集合A和交叉点集合C分别流出,并在下一级接收路由节点的输入缓冲器进行重组。S23:如果输入、输出数据通路均有半边错误,则输入数据要在两个时钟周期内分别通过正确的输出通路流出,并在数据的接收路由节点进行重组,如图3所示,依然假设数据从Inl输入端流入,如果交叉点集合A和交叉点集合C对应的输出数据通路中只有一个无误,则数据继续沿无误的通路流出,即流出数据依然是被分割的数据。如果交叉点集合A和交叉点集合C对应的输出数据通路均有误,则此时数据无法正确到达下一级路由节点,此时则需要使用其他容错机制进行容错。S24 :如果输入数据通路无错、输出数据通路有半边错误,则输入数据在两个时钟周期分别沿正确的输出通路流出,并在数据的接收路由节点进行重组。如图3所示,假设输出数据通路Outl无误,即交叉点集合A和交叉点集合B对应的输出数据通路无误,此时输入数据需要分两个时钟周期沿着交叉点集合A和交叉点集合B分别传出。在本发明的一种优选实施方式中进行错误校正时,根据所有的错误信息,判断每个路由节点对于每种数据传播方式的策略。对于图2中的节点6,与其相关的错误信息为由节点5经节点6到节点10,通过交叉点集合D时发生错误。而对于同样方向的传播,交叉点集合A、B、C均无错误产生。根据此错误信息,当数据包从西侧到来要去往东侧时,控制逻辑需要采用“输入无错,输出有半边错误”这种情况进行传输,此时数据包被分割并花费两·倍的时钟周期沿交叉点集合A和C向下方传播,当节点10接收到来自于6的半边数据时,它将采用“输入数据有半边错误,输出无错”这种情况对数据进行重组。此后数据便可以正常的继续传播。本发明的通过数据分割传输实现容错可重构片上网络的方法解决了片上网络数据通路中所有组件的容错问题,包括连线,输入缓冲器和交叉开关,同时,本发明引入的硬件代价小于现有的时间冗余容错方法,能够降低硬件和功耗。在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。尽管已经示出和描述了本发明的实施例,本领域的普通技术人员可以理解在不脱离本发明的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由权利要求及其等同物限定。
权利要求
1.一种通过数据分割传输实现容错可重构片上网络的方法,其特征在于,包括错误检测和错误校正,所述错误检测包括如下步骤 511:对片上网络的数据通路进行分割传输; 512:使所有路由节点对控制逻辑进行重构; 513:指定接收路由节点,使片上网络中待测路由节点向所述接收路由节点发送检测数据包; S14:根据所述接收路由节点接收到的数据完整性,判断待测路由节点分割传输的数据通路是否有效; S15 :如果有的数据通路无效,则记录无效的路径用于错误校正; S16:当一个路由节点测试完毕后,返回步骤S12,对其他路由节点进行测试,直到所有路由节点被测完毕; 所述错误校正包括如下步骤 S21 :如果所有数据通路均有效,则选择任意数据通路使数据由当前路由节点完整流向下一级路由节点; S22:如果输入数据通路有半边错误,输出无错,则输入数据要在两个时钟周期内通过任意输出数据通路分别流出,并在数据的接收路由节点进行重组; 523:如果输入数据通路、输出数据通路均有半边错误,则输入数据在两个时钟周期内分别通过正确的输出数据通路流出,并在数据的接收路由节点进行重组; 524:如果输入数据通路无错、输出数据通路有半边错误,则输入数据在两个时钟周期分别沿正确的输出数据通路流出,并在数据的接收路由节点进行重组。
2.如权利要求I所述的一种通过数据分割传输实现容错可重构片上网络的方法,其特征在于,所述待测路由节点或每个接收路由节点的分割传输的数据通路包括P个数据输入端和与所述P个数据输入端分别连接的Q个数据输出端,数据在每个路由节点中具有PXQ个流动方式。
3.如权利要求I或2所述的一种通过数据分割传输实现容错可重构片上网络的方法,其特征在于,所述待测路由节点或每个接收路由节点的分割传输的数据通路包括两个数据输入端和与所述两个数据输入端分别连接的两个数据输出端,数据在每个路由节点中具有四个流动方式。
4.如权利要求I或2所述的一种通过数据分割传输实现容错可重构片上网络的方法,其特征在于,待测路由节点向其上下左右距离为I和2的8个接收路由节点,以及沿两个对角线方向最近的4个接收路由节点发送检测数据包。
5.如权利要求3所述的一种通过数据分割传输实现容错可重构片上网络的方法,其特征在于,待测路由节点向其上下左右距离为I和2的8个接收路由节点,以及沿两个对角线方向最近的4个接收路由节点发送检测数据包。
全文摘要
本发明提出了一种通过数据分割传输实现容错可重构片上网络的方法,其包括错误检测和错误校正,其中,错误检测包括如下步骤对片上网络的数据通路进行分割传输;使所有路由节点对控制逻辑进行重构;指定接收路由节点,使待测路由节点向接收路由节点发送检测数据包;根据接收路由节点接收到的数据完整性,判断待测路由节点分割传输的数据通路是否有效;如果有的数据通路无效,则记录无效的路径;当一个路由节点测试完毕后,再对其他路由节点进行测试,直到所有路由节点被测完毕。本发明解决了片上网络数据通路中所有组件的容错问题,包括连线,输入缓冲器和交叉开关,同时,本发明引入的硬件代价小于现有的时间冗余容错方法,能够降低硬件和功耗。
文档编号H04L12/703GK102904807SQ20121038335
公开日2013年1月30日 申请日期2012年10月10日 优先权日2012年10月10日
发明者于向遥, 刘雷波, 尹首一, 任彧, 伍清华, 魏少军 申请人:清华大学