CN104348738B - 缓存器和路由器 - Google Patents
缓存器和路由器 Download PDFInfo
- Publication number
- CN104348738B CN104348738B CN201310320809.8A CN201310320809A CN104348738B CN 104348738 B CN104348738 B CN 104348738B CN 201310320809 A CN201310320809 A CN 201310320809A CN 104348738 B CN104348738 B CN 104348738B
- Authority
- CN
- China
- Prior art keywords
- output
- input
- module
- buffer
- terminals
- 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.)
- Active
Links
- 239000000872 buffer Substances 0.000 title claims abstract description 278
- 238000001514 detection method Methods 0.000 claims abstract description 44
- 239000013598 vector Substances 0.000 claims description 29
- 238000000034 method Methods 0.000 claims description 19
- 238000012545 processing Methods 0.000 claims description 12
- 238000004364 calculation method Methods 0.000 claims description 5
- 230000008569 process Effects 0.000 claims description 4
- 238000013507 mapping Methods 0.000 claims 4
- 230000005540 biological transmission Effects 0.000 abstract description 3
- 240000007320 Pinus strobus Species 0.000 description 72
- 238000010586 diagram Methods 0.000 description 15
- 238000013461 design Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000007274 generation of a signal involved in cell-cell signaling Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 125000004122 cyclic group Chemical group 0.000 description 2
- 238000004750 isotope dilution mass spectroscopy Methods 0.000 description 2
- 230000008439 repair process Effects 0.000 description 2
- 101100271206 Arabidopsis thaliana ATHB-15 gene Proteins 0.000 description 1
- 101100496158 Arabidopsis thaliana CLF gene Proteins 0.000 description 1
- 101000968091 Pithecopus azureus Dermaseptin-H2 Proteins 0.000 description 1
- 101000927339 Pithecopus azureus Dermaseptin-H3 Proteins 0.000 description 1
- 101000927335 Pithecopus azureus Dermaseptin-H4 Proteins 0.000 description 1
- 101000927341 Pithecopus azureus Dermaseptin-H5 Proteins 0.000 description 1
- 101000927330 Pithecopus azureus Dermaseptin-H6 Proteins 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
- Logic Circuits (AREA)
Abstract
本发明实施例提供一种缓存器和路由器。其中,缓存器包括:N个输入端、N+1个Buffer,输入选通模块、第一输出选通模块、故障检测模块和调度模块以及第二输出选通模块;输入选通模块,用于对于进入输入选通模块的每路输入数据,根据调度模块发送的输入选通信号,将进入的第i路输入数据选通到N+1个Buffer中一个Buffer或者选通到第一输出选通模块;第一输出选通模块,用于对于每路输入数据,根据调度模块发送的输出选通信号,将从Buffer进入到第一输出选通模块的第i路输入数据或输入选通模块进入到第一输出选通模块的第i路输入数据,同时选通到故障检测模块和第二输出选通模块。
Description
技术领域
本发明涉及电子技术,尤其涉及一种缓存器和路由器。
背景技术
片上网络的路由器用来实现路由和流控算法,如果片上路由器发生了故障则可能导致片上网络乃至整个众核处理器崩溃,片上路由器包括缓存(Buffer)通过分析片上路由器各部分面积比例,Buffer在整个片上路由器占了将近50%的面积,对Buffer的可靠性设计是片上路由器可靠设计的关键。Buffer故障分为三类:buffer第一类故障为buffer中单个内部单元出错或buffer中多个内部单元出错,buffer第二类故障为单个buffer出错,buffer第三类故障为多个buffer出错。
通常情况下,通过检错纠错码(Error Correcting Code,简称ECC)容错解决Buffer第一类故障问题。ECC可以发现并自动纠正信息传递过程中产生的二进制信号失真现象,即在传递过程中二进制信号0可能会变成1,1可能会变成0。为使一种编码具有检错或纠错能力,须对原码字增加多余的码元,以扩大码字之间的差别,即把原码字按某种规则变成有一定剩余度的码字,并使每个码字之间有一定的关联。码字到达接收端后,可以根据编码规则是否满足以判定有无错误。当不能满足时,按一定规则确定错误所在位置并予以纠正。常用ECC编码包括奇偶校验码、重复码、循环冗余校验码(Cyclic Redundancy Check,简称CRC)、汉明码、分组码、卷积码等。
现有ECC技术并不完善,一是ECC的校验码数据量过分冗余,二是ECC只能检测错误并纠正在数几位错误。在buffer容错领域中,ECC技术只能解决buffer中单个或者数个单元出错的情况,无法解决buffer第二类和第三类故障。
发明内容
本发明实施例提供一种缓存器和路由器,用于解决buffer第二类故障和buffer第三类故障。
本发明实施例提供一种缓存器,包括:N个输入端、N+1个Buffer,输入选通模块、第一输出选通模块、故障检测模块和调度模块以及第二输出选通模块;所述N为正整数;所述第二选通输出模块包括N个输出端;
所述缓存器的N个输入端与所述输入选通模块的输入端连接,用于分别接收N路输入数据;
所述输入选通模块分别与N+1个所述Buffer、所述第一输出选通模块和所述调度模块连接,用于对于进入所述输入选通模块的每路输入数据,根据所述调度模块发送的输入选通信号,将进入所述输入选通模块的第i路输入数据选通到N+1个所述Buffer中一个Buffer或者选通到所述第一输出选通模块,以使所述第i路输入数据不被选通到不能使用的Buffer中,其中,不同路的输入数据被选通到不同的Buffer,所述i大于等于1且小于等于N;
N+1个所述Buffer分别与所述第一输出选通模块连接,用于缓存被所述输入选通模块选通到所述Buffer的数据并将缓存的数据输出到所述第一输出选通模块;
所述第一输出选通模块分别与所述故障检测模块、所述第二输出选通模块和所述调度模块连接,用于对于每路输入数据,根据所述调度模块发送的输出选通信号,将从所述Buffer进入到所述第一输出选通模块的第i路输入数据或所述输入选通模块进入到所述第一输出选通模块的第i路输入数据,同时选通到所述故障检测模块和所述第二输出选通模块;
所述故障检测模块,用于检测所述第一输出选通模块输出的每路输入数据是否发生错误,根据检测结果输出故障状态向量,所述输出故障状态向量用于表示每路输入数据是否发生错误;
所述调度模块,用于根据所述故障检测模块输出的故障状态向量向所述输入选通模块发送所述输入选通信号,并向所述第一输出选通模块发送所述输出选通信号;
所述第二输出选通模块还与所述故障检测模块连接,用于根据所述故障检测模块输出的所述故障状态向量,从所述第一输出选通模块输出的N+1路输入数据中选择N路输入数据输出。
第二方面,本发明实施例提供一种路由器,包括上述缓存器;所述第二输出选通模块的N个输出端分别至处理模块,所述处理模块,用于对所述第二输出选通模块输出N路输入数据进行处理。
本发明实施例提供的缓存器中包括N+1个Buffer,还包括输入选通模块、第一输出选通模块、故障检测模块和调度模块以及第二输出选通模块。输入选通模块的输入选通信号和第一输出选通模块的输出选通信号,由调度根据故障检测模块输出的故障状态向量生成。调度模块通过故障状态向量确定第一输出选通模块输出的每路输入数据是否发生错误,从而可以确定每个Buffer是否能够使用,进而生成输入选通模块将每路输入数据选通到能使用的Buffer中或者不经过Buffer直接选通到第一输出选通模块的输入选通信号,并生成输出选通模块从Buffer或输入选通模块中选通出每路输入数据的输出选通信号。由于,输入选通模块根据调度模块发送的输入选通信号,可以将每路输入数据选通到能使用的Buffer中或者不经过Buffer直接选通到第一输出选通模块,第一输出选通模块根据调度模块发送的输出选通信号,可以从Buffer或输入选通模块中选通出每路输入数据。因此,N+1个Buffer中有一个或多个Buffer不能使用即出现第二类故障和第三类故障时,缓存器可以正确输出进入缓存器的每路输入数据,提高了缓存器的容错能力,减少了硬件开销。
附图说明
图1为本发明实施例提供的一种缓存器结构示意图;
图2为本发明实施例提供的一种包括6个Buffer的缓存器的结构示意图;
图3为本发明实施例提供的控制单元采用电路设计方法获取图2中寄存器值时图2的一种具体结构示意图;
图4为本发明实施例提供的控制单元采用查找方法获取图2中寄存器值时图2的一种具体结构示意图;
图5为本发明实施例提供的5+1个Buffer中没有一个Buffer发生不可修复的错误时图2所示电路的运行示意图;
图6为本发明实施例提供的5+1个Buffer中有一个Buffer发生不可修复的错误时图2所示电路的运行示意图;
图7为本发明实施例提供的5+1个Buffer中有二个Buffer发生不可修复的错误时图2所示电路的运行示意图;
图8为本发明实施例提供的5+1个Buffer中有三个Buffer发生不可修复的错误时图2所示电路的运行示意图;
图9为本发明实施例提供的5+1个Buffer中有四个Buffer发生不可修复的错误时图2所示电路的运行示意图;
图10本发明实施例提供的5+1个Buffer中有五个Buffer发生不可修复的错误时图2所示电路的运行示意图;
图11为本发明实施例提供的一种路由器结构示意图。
具体实施方式
图1为本发明实施例提供的一种缓存器结构示意图。如图1所示,本实施例提供的缓存器包括:N个输入端,N+1个缓存模块(Buffer),输入选通模块A、第一输出选通模块B、故障检测模块C和调度模块D以及第二输出选通模块E。其中,N为大于1的整数。N+1个Buffer分别为Buffer1、Buffer2……BufferN+1.第二输出选通模块E包括N个输出端,第二输出选通模块E的N个输出端为本发明实施例提供的缓存器的输出端。第二输出选通模块E可以为一个N+1选N的多路选择器。
与现有技术相比,本实施例在缓存器中多增加了一个Buffer,同时本实施例还在缓存器增加了以下模块:输入选通模块A、第一输出选通模块B、故障检测模块C和调度模块D以及第二输出选通模块E。如图1所示,缓存器内部各模块之间的连接关系如下:
其中,缓存器的N个输入端与输入选通模块A的输入端连接。输入选通模块的输出端连接至N+1个Buffer的输入端和第一输出选通模块的输入端,输入端还与调度模块连接。具体地,输入选通模块A的输出端分别连接至N+1个Buffer的输入端,输入选通模块A的输入端还与调度模块D连接,输入选通模块A的输出端还连接至第一输出选通模块B的输入端。
其中,N+1个Buffer分别与第一输出选通模块连接。具体地,N+1个BufferA的输出端分别连接至第一输出选通模块B的N+1个输入端。
其中,第一输出选通模块分别与故障检测模块、第二输出选通模块和调度模块连接。具体地,第一输出选通模块B的输出端连接至故障检测模块C的输入端和第二输出选通模块的输入端。
其中,故障检测模块的输出端连接至调度模块的输入端,调度模块的输出端分别连接至输入选通模块的输入端和第一输出选通模块的输入端。
第二输出选通模块分别与第一输出选通模块和故障检测模块连接。具体地,第二输出选通模块的输入端分别与第一输出选通模块的输出端和故障检测模块的输出端连接。
缓存器的N个输入端,用于分别接收N路输入数据。
N路输入数据分别从缓存器的N个输入端进入到输入选通模块。输入选通模块A,用于对于进入输入选通模块的每路输入数据,根据调度模块发送的输入选通信号,将进入输入选通模块的第i路输入数据选通到N+1个Buffer中一个Buffer或者选通到第一输出选通模块,以使第i路输入数据不被选通到不能使用的Buffer中,其中,不同路的输入数据被选通到不同的Buffer,i大于等于1且小于等于N。其中,不能使用的Buffer,是指整个Buffer发生不可修复的错误;能使用的Buffer,是指没有发生错误或发生了可修复错误的Buffer。
Buffer,用于缓存被输入选通模块选通到Buffer的数据并将缓存的数据输出到第一输出选通模块。
对于每路输入数据,输入选通模块根据调度模块发送的输入选通信号,将该路输入数据选通到Buffer或者选通到第一输出选通模块的输入端,避免将第i路输入数据不被选通到发生第二类故障的Buffer中。因此,一路输入数据有可能被选通到Buffer,也可能被选通到输出选通模块的输入端。不同路的输入数据被选通到不同的Buffer,也就是,不同的Buffer缓存来自缓存器不同输入端的输入数据。由于Buffer的个数大于N,因此,最多有N个Buffer被输入选通模块选通。
第一输出选通模块B,用于对于每路输入数据,根据调度模块发送的输出选通信号,将从Buffer进入到第一输出选通模块的第i路输入数据或输入选通模块进入到第一输出选通模块的第i路输入数据,同时选通到故障检测模块和第二输出选通模块。
故障检测模块C,用于检测第一输出选通模块输出的每路输入数据是否发生错误,根据检测结果输出故障状态向量,输出故障状态向量用于表示每路输入数据是否发生错误。
故障检测模块对每路输入数据进行检测,判断哪路输入数据发生错误,哪路输入数据没有发生错误,将检测结果用故障状态向量表示后发送给调度模块,输出故障状态向量用于表示N路输入数据中哪路输入数据出错。
调度模块D,用于根据故障状态向量向输入选通模块发送输入选通信号,并向第一输出选通模块发送输出选通信号。
调度模块根据故障状态向量可以确定哪路输入数据发生错误,进而确定哪些Buffer出现故障,为避免输入选通模块将输入数据选通到不能使用的Buffer,调度模块向输入选通模块发送输入选通信号,使输入选通模块将进入输入选通模块的N路输入数据选通到能使用的Buffer,如果不能使用的Buffer的个数超过一个即缓存器中Buffer发生第三类故障,则不对部分输入数据进行缓存而是直接选通到第一输出选通模块,例如,有X个Buffer发生故障,则X-1路输入数据直接选通到第一输出选通模块。
输入数据有可能从Buffer进入第一输出选通模块,也可能直接从输入选通模块直接进入到第一输出选通模块,为使第一输出选通模块确定输入数据从哪路进入到输出选通模块,从而输出每路输入数据,调度模块向输出选通模块发送输出选通信号,使第一输出选通模块从Buffer或输入选通模块选通出第j路输入数据。
第二输出选通模块E包括N个输出端,第二输出选通模块的输出端为本发明实施例提供的缓存器的输出端。第二输出选通模块E,用于根据故障检测模块输出的故障状态向量,从第一输出选通模块输出的N+1路输入数据中选择N路输入数据输出。
容忍缓存器中Buffer组出现第二类故障的一种可选的方案是,输入选通模块,还用于如果N+1个Buffer中有一个Buffer不能使用,将进入输入选通模块的N路输入数据分别选通到N个能使用的Buffer。
容忍缓存器中Buffer组出现第三类故障的一种可选的方案是,输入选通模块,还用于如果N+1个Buffer中有X个Buffer不能使用,将N路输入数据中的N+1-X路输入数据分别选通到能使用的N+1-X个Buffer。并将N路输入数据中的X-1路输入数据直接选通到第一输出选通模块;X为大于1且小于等于N的整数。
本实施例提供的缓存器中包括N+1个Buffer,还包括输入选通模块、第一输出选通模块、故障检测模块和调度模块以及第二输出选通模块。输入选通模块的输入选通信号和第一输出选通模块的输出选通信号,由调度根据故障检测模块输出的故障状态向量生成。调度模块通过故障状态向量确定第一输出选通模块输出的每路输入数据是否发生错误,从而可以确定每个Buffer是否能够使用,进而生成输入选通模块将每路输入数据选通到能使用的Buffer中或者不经过Buffer直接选通到第一输出选通模块的输入选通信号,并生成输出选通模块从Buffer或输入选通模块中选通出每路输入数据的输出选通信号。由于,输入选通模块根据调度模块发送的输入选通信号,可以将每路输入数据选通到能使用的Buffer中或者不经过Buffer直接选通到第一输出选通模块,第一输出选通模块根据调度模块发送的输出选通信号,可以从Buffer或输入选通模块中选通出每路输入数据。因此,N+1个Buffer中有一个或多个Buffer不能使用即出现第二类故障和第三类故障时,缓存器可以正确输出进入缓存器的每路输入数据,提高了缓存器的容错能力,减少了硬件开销。
图1提供的缓存器中,输入选通模块可采用N个多路分配器(Demultiplexer,DEMUX)和N-1个多路选择器(Multiplexer,MUX)实现,第一输出选通模块可采用N个MUX实现。各器件之间的连接关系如下:
N个第一DEMUX的选通端分别连接至调度模块的输出端,N个第一DEMUX的输入端为缓存器的N个输入端,N个第一DEMUX均有1个信号通路连接至N个第二MUX的输入通路;其中,有2个第一DEMUX的2个信号通路分别连接至1个Buffer的输入端和1个第一MUX的输入通路;有N-2个第一DEMUX的2个信号通路分别通过不同的第一MUX连接至不同的Buffer,N-1个第一MUX的输出端分别连接至N-1个Buffer的输入端。
N+1个Buffer中有N个Buffer的输出端连接至N个第二MUX的输入通路,有1个Buffer的输出端连接至故障检测模块;N个第二MUX的输出端分别连接至故障检测模块。
因为,N路输入数据分别从N个第一DEMUX的输入端进入到缓存器。N个第一DEMUX均有1个信号通路连接至N个第二MUX的输入通路,N个第一DEMUX均有1个信号通路通过第一MUX连接至不同的Buffer,因此,进入到从第一DEMUX的每路输入数据,可以从第一DEMUX直接进入第二MUX的输入端,也可以先后经过第一MUX和Buffer进入到第二MUX,从而可以避免被选通到不能使用的Buffer中。每个第二MUX的两个输入通路分别连接1个Buffer的输入端和1个DEMUX的1个信号通路。因此,第二MUX可以将来自Buffer或DEMUX的输入数据选通到故障检测模块。
进一步,故障检测模块可采用N+1个ECC单元,调度模块可采用输入分配器信号生成器(Input DEMUX Signal Generation,简称DMSG)、输入选择器信号生成器(Input MUXSignal Generation,简称IMSG和输出选择器信号生成器(Output MUX signalGeneration,简称OMSG)实现。
N+1个Buffer中有N个Buffer的输出端分别至N个所述第二MUX的输入通路,有1个Buffer的输出端连接至1个所述ECC单元;N个所述第二MUX的输出端分别连接至N个所述ECC单元。
N+1个所述ECC单元的输出端分别连接到所述输入分配器信号生成器的输入端,所述输入分配器信号生成器的输出端分别与所述输入选择器信号生成器和所述输出选择器信号生成器连接。
进一步,DMSG包括第一寄存器组、第二寄存器组和第一控制单元。
N+1个所述ECC单元的输出端分别连接至所述第一寄存器组的输入端,所述第一寄存器组的输出端与所述第一控制单元的输入端连接,所述第一控制单元的输出端与所述第二寄存器组的输入端连接,所述第二寄存器组的输出端分别连接至N个所述第一DEMUX的选通端。所述第一寄存器组,用于存储N+1个所述ECC单元输出的故障状态向量。所述第一控制单元,用于根据所述第一寄存器组存储的故障状态向量生成N个所述第一DEMUX的选通信号并存入所述第二寄存器组。
IMSG包括第三寄存器组和第二控制单元。所述第二控制单元的输入端与所述输入分配器信号生成器的输出端连接,所述第二控制单元的输出端与所述第三寄存器组的输入端连接,所述第三寄存器组的输出端分别连接至N-1个所述第一MUX的选通端。所述第二控制单元,用于根据所述输入分配器信号生成器输出的信息生成N-1个所述第一MUX的选通信号并存入所述第三寄存器组。
OMSG包括第四寄存器组和第三控制单元。所述第三控制单元的输入端与所述输入分配器信号生成器的输出端连接,所述第三控制单元的输出端与所述第四寄存器组的输入端连接,所述第四寄存器组的输出端分别连接至N个所述第二MUX的选通端。所述第三控制单元,用于根据所述输入分配器信号生成器输出的信息生成N个所述第二MUX的选通信号并存入所述第四寄存器组。
下面以包括6个Buffer的缓存器为例进行说明,图2所示的包括6个Buffer的缓存器中,输入选通模块包括5个DEMUX和4个MUX,其中,5个DEMUX分别是:DEMUX1、DEMUX2、DEMUX3、DEMUX4和DEMUX5,4个MUX分别MUX11、MUX12、MUX13和MUX14。第一输出选通模块包括5个MUX:MUX21、MUX22、MUX23、MUX24和MUX25,故障检测模块包括6个ECC单元。调度模块包括DMSG、IMSG和OMSG。图2所示缓存器包括东、西、南、北和本地5个输入端,6个Buffer分别是Buffer1、Buffer2、Buffer3、Buffer4、Buffer5和Buffer6。
如图2所示,DMSG包括寄存器组1、控制单元1和寄存器组2,寄存器组2分别连接至5个DEMUX的选通端,IMSG包括控制单元2和寄存器组3,寄存器组3分别连接至MUX11、MUX12、MUX13和MUX14的选通端。OMSG包括控制单元3和寄存器组4,寄存器组4分别连接至MUX21、MUX22、MUX23、MUX24和MUX25的选通端。
DEMUX1的输入端连接缓存器的北输入端,DEMUX1的信号通路0连接至Buffer1的输入端,DEMUX1的信号通路1连接至MUX11的输入通路1,DEMUX1的信号通路3连接至MUX21的输入通路1。DEMUX2的信号通路0连接至MUX11的输入通路0,DEMUX2的信号通路1连接至MUX12的输入通路1,DEMUX2的信号通路3连接至MUX21的输入通路0。DEMUX3和DEMUX4的各端口连接方式与DEMUX2的各端口连接方式类似。DEMUX5的输入通路0连接至MUX14的输入通路0,DEMUX5的输入通路3连接至MUX25的输入通路1,DEMUX1的输入通路1连接至Buffer6的输入端。
如图2所示,MUX11的输出端连接至Buffer2模块的输入端,MUX12的输出端连接至Buffer3模块,MUX13的输出端连接至Buffer4模块的输入端,MUX14的输出端连接至Buffer5模块。
如图2所示,Buffer1模块的输出端直接连接至ECC单元,Buffer2模块的输出端连接至MUX21的输入通路0,Buffer3模块的输出端连接至MUX22的输入通路0,Buffer4模块的输出端连接至MUX23的输入通路0,Buffer5模块的输出端连接至MUX24的输入通路0,Buffer6模块的输出端连接至MUX25的输入通路0。MUX21、MUX22、MUX23、MUX24和MUX25分别连接至一个ECC单元。
如图2所示,分别从MUX21、MUX22、MUX23、MUX24和MUX25引出的输出线2、3、4、5和6,分别对应连接至第二输出选通模块的输入端2、3、4、5和6,从Buffer输出端引出的输出线1与第二输出选通模块的输入端1相连。分别从6个ECC单元的输出端引出的输出线a、b、c、d、e和f,分别对应至第二输出选通模块的输入端a、b、c、d、e和f。第二输出选通模块包括5个输出端。
6个ECC单元的输出端分别连接到DMSG的输入端,DMSG的输出端分别与IMSG和OMSG连接。ECC采用改进后的汉明码技术,可以检测并自动修复两位错,如果发生两位以上错误,则ECC单元输出‘1’,表示该ECC检测的Buffer发生ECC不可自动修正的错误,即整个Buffer出错不能使用,否则输出‘0’,表示该ECC检测的Buffer运行正常或者发生第一类故障并已修复,该ECC检测的Buffer能使用。
图3为控制单元采用电路设计方法获取图2中寄存器值时图2的一种具体结构示意图。图4为控制单元采用查找方法获取图2中寄存器值时图2的一种具体结构示意图。
参见图3和图4,DMSG中寄存器器组1采用6个寄存器EI实现,分别存储6个Buffer的ECC信息,每个寄存器EI占用1位。DMSG中寄存器组2采用5个寄存器DMS实现,DMSG中控制单元1含5个小控制单元DCU,每个小控制单元DCU对应一个寄存器DMS。
每个寄存器DMS均连接一个DEMUX的选通端。每个寄存器DMS占用5位。每个寄存器DMS具有3种有效状态位,对应每个DEMUX的3条信号选择线,寄存器DMS值为‘0’(00)时,DEMUX的信号通路0选通,寄存器DMS值为‘1’(01)时DEMUX的信号通路1选通,寄存器DMS值为‘3’(11)时,DEMUX的信号通路3选通,寄存器DMS值为‘2’(10)为保留状态。
图3和图4中,EI自上而下,称为EI1,EI2,EI3,EI4,EI5,EI6;DMS自上到下,称为DMS1,DMS2,DMS3,DMS4,DMS5;小控制单元DCU自上而下,称为DCU1、DCU2、DCU3、DCU4和DCU5。称EI(n)为DCU(n)的当前位EI,称EI(n-1)为DCU(n)的前一位EI,称EI(n+1)为DCU(n)的后一位EI。称EI(n)为DMS(n)的当前位EI,称EI(n-1)为DMS(n)的前一位EI,称EI(n+1)DMS(n)的后一位EI。如图3所示,每个小控制单元DCU分别与对应的当前位EI、前一位EI和后一位EI相连(电路细节未列出),小控制单元DCU根据寄存器EI值设置DMS值,DMS值的具体设置规则如表1所示。寄存器DMS值的生成方法可以是,根据表1的具体规则设置小控制单元DCU的具体电路结构,通过电路选通情况来生成DMS值;寄存器DMS值的生成方法也可以是,在DMSG中保存如表4所示的状态信息表,根据EI值查找表4得到与EI值对应的DMS值。
表1为寄存器DMS设置规则表
当前位EI | 前一位EI | 后一位EI | DMS结果 |
0 | 0或者无 | X | 0(上) |
0 | 1 | 0 | 1(下) |
1 | X | 0 | 1(下) |
1 | X | 1 | 3(bypass) |
参见图3和图4,IMSG中寄存器组3用4个寄存器IMS实现,IMSG中控制单元2含4个小控制单元ICU,每个小控制单元对应一个寄存器IMS。每个IMS占用1位,每个IMS具有两种有效状态,对应于MUX两条信号选择线。IMS为0时,MUX的输入通路0选通;IMS为1时,MUX的输入通路1选通。图3和图4中,小控制单元ICU自左向右,称为ICU1、ICU2、ICU3和ICU4。称DMS(n)为IMS(n)的当前位DMS,称DMS(n-1)为IMS(n)的前一位DMS,称DMS(n+1)为IMS(n)的后一位DMS。称DMS(n)为ICU(n)的当前位DMS,称DMS(n-1)为ICU(n)的前一位DMS,称DMS(n+1)为ICU(n)的后一位DMS。每个小控制单元ICU分别与对应的当前位DMS、后一位DMS相连(电路细节暂不列出)。小控制单元ICU根据寄存器DMS的值设置IMS的值,IMS的值的具体设置规则如表2所示。寄存器IMS的值的生成方法可以是,根据表2的具体规则设置小控制单元ICU的具体电路结构,通过电路选通情况来生成IMS的值。寄存器IMS的值的生成方法也可以是,在IMSG中保存如表4所示的状态信息表,根据DMS值查找表4得到与DMS值对应的IMS值。
表2寄存器IMS设置规则表
当前位DMS | 后一位DMS | IMS结果 |
0 | 0 | 0 |
0 | 1 | X |
1 | X | 1 |
3 | X | X |
参见图3和图4,OMSG中寄存器组4可采用4个寄存器实现,OMSG中控制单元3包含5个小控制单元OCU,每个小控制单元对应一个寄存器OMS。每个OMS占用1位,每个OMS具有2种有效状态位,一个OMS的2种有效状态位对应于MUX2组中一个MUX的两条信号选择线,OMS值为‘0’时,MUX的输入通路0选通,OMS值为‘1’时MUX的输入通路1选通。图3和图4中,小控制单元OCU自左向右,称为OCU1、OCU2、OCU3和OCU4。称DMS(n)为OMS(n)的当前位DMS,称DMS(n-1)为OMS(n)的前一位DMS,称DMS(n+1)为OMS(n)的后一位DMS。称DMS(n)为OCU(n)的当前位DMS,称DMS(n-1)为OCU(n)的前一位DMS,称DMS(n+1)为OCU(n)的后一位DMS。每个小控制单元OCU分别与对应的当前位DMS、后一位DMS相连(电路细节未列出)。小控制单元OCU根据寄存器DMS的值设置OMS的值,OMS的值的具体设置规则如表3所示。寄存器OMS的值的生成方法可以是,根据表3的具体规则设置小控制单元OCU的具体电路结构,通过电路选通情况来生成OMS的值。寄存器OMS的值的生成方法也可以是,在OMSG中保存如表4所示的状态信息表,根据DMS值查找表4得到与DMS值对应的OMS值。
表3寄存器OMS设置规则表
当前位DMS | 后一位DMS | OMS结果 |
0 | 3 | X |
0 | 0 | 0 |
1 | X | 0 |
3 | X | 1 |
通过电路生成DMS值、OMS值和IMS值时,本发明实施例提供的缓存器的工作流程为,每次读写buffer时,ECC单元检测buffer状态,更新EI中ECC信息,DMSG中控制单元根据EI中ECC信息依次更新寄存器组DMS、IMS和OMS。更新后的DMS值传递给所控制的DEMUX的选通端,更新后的IMS值传递给所控制的MUX1的选通端,更新后的OMS值传递给所控制的MUX2的选通端。
通过查找方法生成DMS值、OMS值和IMS值时,本发明实施例提供的缓存器的工作流程为,每次读写buffer时,ECC单元检测buffer状态,更新EI中ECC信息,控制单元将更新后的EI值与表4中的EI列匹配,遍历表4直至找到与更新后的EI对应的行,并使其处于选中状态。之后DMSG、IMSG、OMSG中控制单元从表4中读取选中行的相应信息,依次更新寄存器组DMS、IMS和OMS。更新后的DMS值传递给所控制的DEMUX的选通端,更新后的IMS值传递给所控制的MUX1的选通端,更新后的OMS值传递给所控制的MUX2的选通端。
表4状态信息表
EI状态 | IDMS状态 | IMS状态 | OMS状态 |
000000 | 00000 | 0000 | 00000 |
000010 | 00001 | 000X | 00000 |
000100 | 00011 | 00X1 | 00000 |
001000 | 00111 | 0X11 | 00000 |
010000 | 01111 | X111 | X0000 |
100000 | 11111 | 1111 | 00000 |
000110 | 00031 | 00XX | 00010 |
001010 | 00131 | 0X1X | 0X010 |
010010 | 01131 | X11X | 00010 |
100010 | 11131 | 111X | 00010 |
001100 | 00311 | 0XX1 | 00100 |
010100 | 01311 | X1X1 | X0100 |
100100 | 11311 | 11X1 | 00100 |
011000 | 03111 | XX11 | X1000 |
101000 | 13111 | 1X11 | 01000 |
110000 | 31111 | X111 | X1000 |
001110 | 00331 | 0XXX | 01110 |
010110 | 01331 | X1XX | X0110 |
100110 | 11331 | 11XX | 00110 |
011010 | 03131 | XX1X | 01010 |
101010 | 13131 | 1X1X | 01010 |
110010 | 31131 | X11X | 10010 |
011100 | 03311 | XXX1 | 01100 |
110100 | 31311 | X1X1 | 10100 |
101100 | 13311 | 1XX1 | 01100 |
111000 | 33111 | XX11 | 11000 |
011110 | 03331 | XXXX | 11110 |
101110 | 13331 | 1XXX | 01110 |
110110 | 31331 | X1XX | 10110 |
111010 | 33131 | XX1X | 11010 |
111100 | 33311 | XXX1 | 11100 |
111110 | 33331 | XXXX | 11110 |
下面分别介绍在buffer无错误、buffer三类故障以及备用buffer出错情况下,图3和图4提供电路的工作过程。以下实施例将Buffer6作为备用Buffer,其它Buffer作为主Buffer。
首先,说明buffer无错误和buffer第一类故障。本实例结合表5说明在buffer无错误和buffer第一类错误的情况下,图3和图4提供的缓存器中各DEMUX和各MUX的选通情况。buffer无错误和buffer第一类错误表明没有一个Buffer发生不可修复的错误。
表5为buffer无错和buffer第一类错误时各寄存器状态表
标号 | EI状态 | DMS状态 | IMS状态 | OMS状态 |
0 | 000000 | 00000 | 0000 | 00000 |
参见表5,在buffer无错误情况下,6个EI寄存器的值全为0,此时5位DMS,4位IMS和5位OMS均为0,DEMUX和MUX选通情况如图5所示。图5提供的技术方案将Buffer6模块作为备用Buffer而其它Buffer作为主Buffer6模块,在主Buffer全部正常工作或没有发生不可修复的错误时,备用Buffer中没有缓存输入数据。
图5中细箭头所示的方向为5路输入数据的实际流向。其中,从北输入端进入的输入数据从DEMUX11的信号通路0进入到Buffer1模块,再从Buffer1模块进入到ECC1单元,从南输入端进入的输入数据先后经过DEMUX12的信号通路O、MUX11的输入通路0进入到Buffer2模块,再从Buffer2模块进入到ECC2单元;从西输入端进入的输入数据在缓存器内部的流向,从东输入端进入的输入数据在缓存器内部的流向、从本地输入端进入的输入数据在缓存器内部的流向,与从南输入端进入的输入数据在缓存器内部的流向类似。
在Buffer内部的一个或多个内部单元发生错误时,与该Buffer连接的ECC单元可以自行修复错误。因此,当6个Buffer中有一个Buffer的一个或多个内部单元发生错误时,即buffer第一类故障发生时,各路输入数据的流向与Buffer无错误时各路输入数据的流向一致。
接下来,以下结合图6和表6说明发生buffer第二类故障的情况下,说明6个Buffer中有一个Buffer发生无法修复的错误不能使用,图3提供的缓存器中各DEMUX和各MUX的选通情况,从而不影响缓存器工作。表6列举了所有可能发生buffer第二类故障的情况下,每个寄存器的状态信息。
Buffer2发生无法修复的错误时,图3提供的缓存器中各DEMUX和各MUX的选通情况如图6所示,各寄存器的状态信息为表7中标号为4的行中各寄存器的状态信息。参见表6中标号为4的行,EI寄存器的第二高位的值为1,其余位均为0,表示Buffer2发生ECC无法修复的故障。图6中细箭头所示的方向为5路输入数据的实际流向。如图6所示,Buffer2发生ECC无法修复的故障,启用备用Buffer:Buffer6缓存一路输入数据,从南输入端进入的数据经Buffer2缓存,从西输入端进入的数据经Buffer4缓存,从东输入端进入的数据经Buffer5缓存,从本地输入端进入的数据经Buffer6缓存,DEMUX、MUX和buffer组的选通情况见图5所示,在此不再赘述。
表6一个buffer发生无法修复的错误时各寄存器的状态表
标号 | EI状态 | DMS状态 | IMS状态 | OMS状态 |
1 | 000010 | 00001 | 000X | 00000 |
2 | 000100 | 00011 | 00X1 | 00000 |
3 | 001000 | 00111 | 0X11 | 00000 |
4 | 010000 | 01111 | X111 | X0000 |
5 | 100000 | 11111 | 1111 | 00000 |
接下来,说明6个Buffer中有多个Buffer发生无法修复的错误不能使用,也就是,缓存器发生buffer第三类故障的情况下,图3提供的缓存器中各DEMUX和各MUX的选通情况。多个buffer发生无法修复的错误情况包括两个buffer错误、三个buffer发生无法修复的错误、四个buffer发生无法修复的错误或五个buffer发生无法修复的错误。
以下结合表7和图7说明6个Buffer中Buffer2和Buffer4发生无法修复的错误时,图3和图4提供的缓存器中各DEMUX和各MUX的选通情况,从而不影响缓存器工作。两个buffer发生无法修复的错误时,有一路输入数据通过备用buffer组缓存,有一路输入数据旁路通过buffer不经过buffer缓存,即直接连到MUX2。表7列举了任意两个buffer发生不可修复的错误的情况下,每个寄存器的状态信息。
Buffer2和Buffer4发生无法修复的错误时,图3提供的缓存器中各DEMUX和各MUX的选通情况如图6所示,各寄存器的状态信息为表7中标号为11的行中各寄存器的状态信息。参见表7中标号为11的行,EI寄存器的第二高位和第四高位的值分别为1,其余位均为0,表示Buffer2和Buffer4发生ECC无法修复的故障,图7中细箭头所示的方向为5路输入数据的流向。如图7所示,从西输入端进入的一路输入数据不经过Buffer缓存直接输入到MUX23,从东输入端进入的一路输入数据经Buffer5缓存,从本地输入端进入的一路输入数据经Buffer6缓存。
表7为两个buffer发生无法修复的错误时各寄存器的状态信息表
标号 | EI状态 | DMS状态 | IMS状态 | OMS状态 |
6 | 000110 | 00031 | 00XX | 00010 |
7 | 001010 | 00131 | 0X1X | 0X010 |
8 | 010010 | 01131 | X11X | 00010 |
9 | 100010 | 11131 | 111X | 00010 |
10 | 001100 | 00311 | 0XX1 | 00100 |
11 | 010100 | 01311 | X1X1 | X0100 |
12 | 100100 | 11311 | 11X1 | 00100 |
13 | 011000 | 03111 | XX11 | X1000 |
14 | 101000 | 13111 | 1X11 | 01000 |
15 | 110000 | 31111 | X111 | X1000 |
以下结合表8和图8说明6个Buffer中Buffer2、Buffer4和Buffer5发生无法修复的错误时,图3和图4提供的缓存器中各DEMUX和各MUX的选通情况,从而不影响缓存器工作。三个buffer发生不可修改的错误时,有一路输入数据借用备用Buffer,有两路输入数据不经过Buffer缓存,直接输入到MUX2。表8列举了任意三个buffer发生不可修复的错误的情况下,每个寄存器的状态信息。
Buffer2、Buffer4和Buffer5发生无法修复的错误时,图3提供的缓存器中各DEMUX和各MUX的选通情况如图7所示,各寄存器的状态信息为表8中标号为11的行中各寄存器的状态信息。参见表8中标号为17的行,EI寄存器的第二高位和第四高位以及第五高位的值分别为1,其余位均为0,表示Buffer2、Buffer4和Buffer5发生ECC无法修复的故障,图8中细箭头所示的实际方向为5路输入数据的流向。如图8所示,从西输入端进入的一路输入数据不经过Buffer缓存直接输入到MUX23,从东输入端进入的一路输入数据不经过Buffer缓存直接输入到MUX24,从其余输入端进入的三路输入数据经过Buffer缓存。
表8为三个buffer发生无法修复的错误时各寄存器的状态信息表
标号 | EI状态 | DMS状态 | IMS状态 | OMS状态 |
16 | 001110 | 00331 | 0XXX | 01110 |
17 | 010110 | 01331 | X1XX | X0110 |
18 | 100110 | 11331 | 11XX | 00110 |
19 | 011010 | 03131 | XX1X | 01010 |
20 | 101010 | 13131 | 1X1X | 01010 |
21 | 110010 | 31131 | X11X | 10010 |
22 | 011100 | 03311 | XXX1 | 01100 |
23 | 110100 | 31311 | X1X1 | 10100 |
24 | 101100 | 13311 | 1XX1 | 01100 |
25 | 111000 | 33111 | XX11 | 11000 |
以下结合表9和图9说明6个Buffer中Buffer1、Buffer2、Buffer4和Buffer5发生无法修复的错误时,图3和图4提供的缓存器中各DEMUX和各MUX的选通情况,从而不影响缓存器工作。四个buffer发生不可修改的错误时,有一路输入数据借用备用Buffer,有三路输入数据不经过Buffer缓存,直接输入到MUX2。表9列举了任意四个buffer发生不可修复的错误的情况下,每个寄存器的状态信息。
Buffer1、Buffer2、Buffer4和Buffer5发生无法修复的错误时,图3提供的缓存器中各DEMUX和各MUX的一种选通情况如图9所示,各寄存器的状态信息为表9中标号为28的行中各寄存器的状态信息。参见表9中标号为28的行,EI寄存器除第三高位和最低位的值分别为0,其余位均为1,表示Buffer1、Buffer2、Buffer4和Buffer5发生ECC无法修复的故障,图9中细箭头所示的方向为5路输入数据的实际流向。如图9所示,从本地输入端进入的一路输入数据经Buffer6缓存,从南输入端进入的一路输入数据经Buffer63缓存,从其余输入端进入的三路输入数据不经过Buffer缓存直接输入到MUX2。
表9为四个buffer发生无法修复的错误时各寄存器的状态信息表
标号 | EI状态 | DMS状态 | IMS状态 | OMS状态 |
26 | 011110 | 03331 | XXXX | 11110 |
27 | 101110 | 13331 | 1XXX | 01110 |
28 | 110110 | 31331 | X1XX | 10110 |
29 | 111010 | 33131 | XX1X | 11010 |
30 | 111100 | 33311 | XXX1 | 11100 |
以下结合表10和图10说明6个Buffer中Buffer1、Buffer2、Buffer3、Buffer4和Buffer5发生无法修复的错误时,图3和图4提供的缓存器中各DEMUX和各MUX的选通情况,从而不影响缓存器工作。五个buffer发生不可修改的错误时,有一路输入数据借用备用Buffer,其余各路输入数据不经过Buffer缓存直接输入到MUX2。表10列举了任意五个buffer发生不可修复的错误的情况下,每个寄存器的状态信息。
Buffer1、Buffer2、Buffer3、Buffer4和Buffer5发生无法修复的错误时,图3提供的缓存器中各DEMUX和各MUX的一种选通情况如图10所示,各寄存器的状态信息为表10中各寄存器的状态信息。参见表10,EI寄存器除最低位的值为0,其余位均为1,表示Buffer1、Buffer2、Buffer3、Buffer4和Buffer5发生ECC无法修复的故障,图10中细箭头所示的方向为5路输入数据的实际流向。如图10所示,从本地输入端进入的一路输入数据经Buffer6缓存,从其余输入端进入的四路输入数据不经过Buffer缓存直接输入到MUX2。
表10为五个buffer发生无法修复的错误时各寄存器的状态信息表
标号 | EI状态 | IDMS状 | IMS状态 | OMS状态 |
31 | 111110 | 33331 | XXXX | 11110 |
当备用buffer即buffer6发生不可修复的错误且正在使用中,参见表11,直接将其相连的DEMUX5的信号通路3选通,即DEMUX5输出的数据直接旁路通过不经过缓存,其他DEMUX和MUX的状态不变。
表11为备用buffer发生无法修复的错误时操作表
标号 | EI状态 | 操作 |
32 | XXXX1 | 如果MDS[0]=1,则令MDS[0]=3,即bypass |
图11为本明实施例提供的一种路由器结构示意图。图11中所示的缓存器111可为图1至图4提供的任意一种缓存器。缓存器的输出端与处理模块连接。缓存器的输出端为第二输出选通模块的N个输出端,第二输出选通模块的N个输出端分别连接至处理模块112,所述处理模块112,用于对所述第二输出选通模块输出N路输入数据进行处理。
进一步,处理模块包括路由计算单元、路由仲裁单元(VA和SA)和交叉开关单元(Cross Bar,简称CR),路由仲裁单元包括虚通道分配逻辑(Virtual channel Allocation,简称VA)和交叉开关分配(Switch Allocation,简称SA)。数据包从缓存器的输出端输出后,经历如下几个阶段:路由计算、通道分配、交叉开关分配和交叉开关穿越,之后到达路由器输出端,进入片上网络或者进入下一个路由节点或者本地输出。
路由计算单元,用于根据控制信息进行路由计算,得到输出端口。虚通道分配逻辑,用于为输出端口选择一个可用的通道。交叉开关分配,用于分配交换开关,此时可能存在多个flit竞争同一个输出端口或者通道,也可能通道的缓存已满。当获得交换开关之后,穿越交叉开关(Switch Traversal,简称ST),进入输出组织转发至片上网络或者进入下一个路由节点或者本地输出。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (12)
1.一种缓存器,其特征在于,包括:N个输入端、N+1个缓存模块,输入选通模块、第一输出选通模块、故障检测模块和调度模块以及第二输出选通模块;所述N为正整数;所述第二输出选通模块包括N个输出端;
所述缓存器的N个输入端与所述输入选通模块的输入端连接,用于分别接收N路输入数据;
所述输入选通模块分别与N+1个所述缓存模块、所述第一输出选通模块和所述调度模块连接,用于对于进入所述输入选通模块的每路输入数据,根据所述调度模块发送的输入选通信号,将进入所述输入选通模块的第i路输入数据选通到N+1个所述缓存模块中一个缓存模块或者选通到所述第一输出选通模块,以使所述第i路输入数据不被选通到不能使用的缓存模块中,其中,不同路的输入数据被选通到不同的缓存模块,所述i大于等于1且小于等于N;
N+1个所述缓存模块分别与所述第一输出选通模块连接,用于缓存被所述输入选通模块选通到所述缓存模块的数据并将缓存的数据输出到所述第一输出选通模块;
所述第一输出选通模块分别与所述故障检测模块、所述第二输出选通模块和所述调度模块连接,用于对于每路输入数据,根据所述调度模块发送的输出选通信号,将从所述缓存模块进入到所述第一输出选通模块的第i路输入数据或所述输入选通模块进入到所述第一输出选通模块的第i路输入数据,同时选通到所述故障检测模块和所述第二输出选通模块;
所述故障检测模块,用于检测所述第一输出选通模块输出的每路输入数据是否发生错误,根据检测结果输出故障状态向量,所述输出故障状态向量用于表示每路输入数据是否发生错误;
所述调度模块,用于根据所述故障检测模块输出的故障状态向量向所述输入选通模块发送所述输入选通信号,并向所述第一输出选通模块发送所述输出选通信号;
所述第二输出选通模块还与所述故障检测模块连接,用于根据所述故障检测模块输出的所述故障状态向量,从所述第一输出选通模块输出的N+1路输入数据中选择N路输入数据输出。
2.根据权利要求1所述的缓存器,其特征在于,所述输入选通模块,还用于如果N+1个所述缓存模块中有一个所述缓存模块不能使用,将进入所述输入选通模块的N路输入数据分别选通到N个能使用的所述缓存模块。
3.根据权利要求1或2所述的缓存器,其特征在于,所述输入选通模块,还用于如果N+1个所述缓存模块中有X个所述缓存模块不能使用,将所述N路输入数据中的N+1-X路输入数据分别选通到能使用的N+1-X个所述缓存模块;并将所述N路输入数据中的X-1路输入数据直接选通到所述第一输出选通模块;所述X为大于1且小于等于N的整数。
4.根据权利要求1所述的缓存器,其特征在于,所述输入选通模块包括N个第一多路分配器和N-1个第一多路选择器,所述第一输出选通模块包括N个第二多路选择器;
N个所述第一多路分配器的选通端分别连接至所述调度模块的输出端,N个所述第一多路分配器的输入端为所述缓存器的N个输入端,N个所述第一多路分配器均有1个信号通路连接至N个所述第二多路选择器的输入通路;其中,有2个所述第一多路分配器的2个信号通路分别连接至1个缓存模块的输入端和1个所述第一多路选择器的输入通路;有N-2个所述第一多路分配器的2个信号通路分别通过不同的第一多路选择器连接至不同的缓存模块,N-1个所述第一多路选择器的输出端分别连接至N-1个缓存模块的输入端;
N+1个缓存模块中有N个缓存模块的输出端连接至N个所述第二多路选择器的输入通路,有1个缓存模块的输出端连接至所述故障检测模块;
N个所述第二多路选择器的输出端分别连接至所述故障检测模块。
5.根据权利要求4所述的缓存器,其特征在于,所述故障检测模块包括N+1个ECC单元;
N+1个缓存模块中有N个缓存模块的输出端分别至N个所述第二多路选择器的输入通路,有1个缓存模块的输出端连接至1个所述ECC单元;N个所述第二多路选择器的输出端分别连接至N个所述ECC单元。
6.根据权利要求5所述的缓存器,其特征在于,所述调度模块包括输入分配器信号生成器、输入选择器信号生成器和输出选择器信号生成器;N+1个所述ECC单元的输出端分别连接到所述输入分配器信号生成器的输入端,所述输入分配器信号生成器的输出端分别与所述输入选择器信号生成器和所述输出选择器信号生成器连接;
N个所述第一多路分配器的选通端分别连接至所述输入分配器信号生成器的输出端,N-1个第一多路选择器的选通端分别连接至所述输入选择器信号生成器的输出端,N个第二多路选择器的选通端分别连接至所述输出选择器信号生成器的输出端。
7.根据权利要求6所述的缓存器,其特征在于,所述输入分配器信号生成器包括第一寄存器组、第二寄存器组和第一控制单元;
N+1个所述ECC单元的输出端分别连接至所述第一寄存器组的输入端,所述第一寄存器组的输出端与所述第一控制单元的输入端连接,所述第一控制单元的输出端与所述第二寄存器组的输入端连接,所述第二寄存器组的输出端分别连接至N个所述第一多路分配器的选通端;
所述第一寄存器组,用于存储N+1个所述ECC单元输出的故障状态向量;
所述第一控制单元,用于根据所述第一寄存器组存储的故障状态向量生成N个所述第一多路分配器的选通信号并存入所述第二寄存器组。
8.根据权利要求7所述的缓存器,其特征在于,所述输入选择器信号生成器包括第三寄存器组和第二控制单元;
所述第二控制单元的输入端与所述输入分配器信号生成器的输出端连接,所述第二控制单元的输出端与所述第三寄存器组的输入端连接,所述第三寄存器组的输出端分别连接至N-1个所述第一多路选择器的选通端;
所述第二控制单元,用于根据所述输入分配器信号生成器输出的信息生成N-1个所述第一多路选择器的选通信号并存入所述第三寄存器组。
9.根据权利要求8所述的缓存器,其特征在于,所述输出选择器信号生成器包括第四寄存器组和第三控制单元;
所述第三控制单元的输入端与所述输入分配器信号生成器的输出端连接,所述第三控制单元的输出端与所述第四寄存器组的输入端连接,所述第四寄存器组的输出端分别连接至N个所述第二多路选择器的选通端;
所述第三控制单元,用于根据所述输入分配器信号生成器输出的信息生成N个所述第二多路选择器的选通信号并存入所述第四寄存器组。
10.根据权利要求9所述的缓存器,其特征在于,所述调度模块还包括用于存储状态控制信息表的存储器;
所述状态控制信息表包括以下映射关系:各种故障状态向量与N个所述第一多路分配器的选通信号的数值之间的映射关系,各种故障状态向量与N-1个所述第一多路选择器的选通信号的数值之间的映射关系,各种故障状态向量与N个所述第二多路选择器的选通信号的数值之间的映射关系;
所述第一控制单元,还用于在所述状态控制信息表中,查找与所述第一寄存器组存储的故障状态向量对应的N个所述第一多路分配器的选通信号,并将查找到的N个所述第一多路分配器的选通信号存入所述第二寄存器组;
所述第二控制单元,还用于在所述状态控制信息表中,查找与所述第一寄存器组存储的故障状态向量对应的N-1个所述第一多路选择器的选通信号并存入所述第三寄存器组;
所述第三控制单元,还用于在所述状态控制信息表中,查找与所述第一寄存器组存储的故障状态向量对应的N个所述第二多路选择器的选通信号并存入所述第四寄存器组。
11.一种路由器,其特征在于,包括权利要求1至10任一项所述的缓存器;
所述第二输出选通模块的N个输出端分别至处理模块,所述处理模块,用于对所述第二输出选通模块输出N路输入数据进行处理。
12.根据权利要求11所述的路由器,其特征在于,所述处理模块包括路由计算单元、路由仲裁单元和交叉开关单元。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310320809.8A CN104348738B (zh) | 2013-07-26 | 2013-07-26 | 缓存器和路由器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310320809.8A CN104348738B (zh) | 2013-07-26 | 2013-07-26 | 缓存器和路由器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104348738A CN104348738A (zh) | 2015-02-11 |
CN104348738B true CN104348738B (zh) | 2018-02-23 |
Family
ID=52503574
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310320809.8A Active CN104348738B (zh) | 2013-07-26 | 2013-07-26 | 缓存器和路由器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104348738B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112953853A (zh) * | 2021-02-05 | 2021-06-11 | 井芯微电子技术(天津)有限公司 | 共享缓存系统及方法、电子设备及存储介质 |
CN115766576B (zh) * | 2022-12-01 | 2024-05-28 | 电子科技大学 | 一种面向基于维度拆分式路由器的片上网络的角路由器 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101335606A (zh) * | 2008-07-25 | 2008-12-31 | 中国科学院计算技术研究所 | 一种高可靠片上网络路由器系统及其设计方法 |
CN102831037A (zh) * | 2012-07-17 | 2012-12-19 | 高旭东 | 一种数据通路分片的冗余保护结构 |
CN103152275A (zh) * | 2013-03-15 | 2013-06-12 | 复旦大学 | 一种适用于片上网络的可配置交换机制的路由器 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009146145A2 (en) * | 2008-04-04 | 2009-12-03 | Arizona Board Of Regents, A Body Corporate Of The State Of Arizona, Acting For And On Behalf Of The University Of Arizona | Fault-and variation-tolerant energy-and area-efficient links for network-on-chips |
-
2013
- 2013-07-26 CN CN201310320809.8A patent/CN104348738B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101335606A (zh) * | 2008-07-25 | 2008-12-31 | 中国科学院计算技术研究所 | 一种高可靠片上网络路由器系统及其设计方法 |
CN102831037A (zh) * | 2012-07-17 | 2012-12-19 | 高旭东 | 一种数据通路分片的冗余保护结构 |
CN103152275A (zh) * | 2013-03-15 | 2013-06-12 | 复旦大学 | 一种适用于片上网络的可配置交换机制的路由器 |
Also Published As
Publication number | Publication date |
---|---|
CN104348738A (zh) | 2015-02-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US12111723B2 (en) | Memory repair method and apparatus based on error code tracking | |
AU693056B2 (en) | A faulty tolerant queue system | |
US6917548B2 (en) | Self-repairing built-in self test for linked list memories | |
JP3878062B2 (ja) | メモリテスト情報を記憶する方法および装置 | |
US7362697B2 (en) | Self-healing chip-to-chip interface | |
US7797609B2 (en) | Apparatus and method for merging data blocks with error correction code protection | |
US6996766B2 (en) | Error detection/correction code which detects and corrects a first failing component and optionally a second failing component | |
US6976194B2 (en) | Memory/Transmission medium failure handling controller and method | |
US6973613B2 (en) | Error detection/correction code which detects and corrects component failure and which provides single bit error correction subsequent to component failure | |
JP2000112834A (ja) | メモリ部品障害を訂正するためにデ―タを区分するための技法 | |
JP3229070B2 (ja) | 多数決回路及び制御ユニット及び多数決用半導体集積回路 | |
JP2006048688A (ja) | セグメント・レベルの予備化を実現するシステム、方法、およびプログラム | |
US7656322B2 (en) | Semiconductor memory device having error correction function | |
CN110289041A (zh) | 一种系统芯片中bist与ecc结合的存储器检测装置 | |
JP2000112833A (ja) | 複数の単一エラ―訂正コ―ド・ワ―ドにわたってパリティを共用するための技法 | |
US9412465B2 (en) | Reliable readout of fuse data in an integrated circuit | |
JPH0136134B2 (zh) | ||
CN104348738B (zh) | 缓存器和路由器 | |
US7170908B2 (en) | System and method of selecting sources for a network element having redundant sources | |
SU1531175A1 (ru) | Запоминающее устройство | |
Ubar et al. | Block-level fault model-free debug and diagnosis in digital systems | |
JPS6325439B2 (zh) | ||
Sannakki et al. | Fault tolerance in network-on-chip by using single error correction and double error detection | |
Priya et al. | International Journal OF Engineering Sciences & Management Research | |
JPH0259946A (ja) | メモリ装置 |
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 |