首页> 中国专利> 一种高可靠片上网络路由器系统及其设计方法

一种高可靠片上网络路由器系统及其设计方法

摘要

本发明公开了一种高可靠片上网络路由器系统及其设计方法。高可靠片上网络路由器系统的设计方法,包括步骤:设计基于虫洞路由交换方式和轮换路由选择方式的路由器软核;对指定宽度的数据设计相应的SCAC编码电路和SCAC译码电路、SCAC纠错电路,并将所述SCAC纠错电路加入所述路由器,将所述SCAC编码电路和SCAC译码电路与所述路由器连接,形成路由器系统的框架;对所述路由器系统的框架设计SCAC-TMR容错方案,实现高可靠片上网络路由器系统;验证所述高可靠片上网络路由器系统的功能,并评估其性能。本发明能够减少片上网络的面积和功耗开销,确保片上网络可靠地传输数据,避免导致较大时延的信号跳变出现在通道上,更加适用于未来的容错多核处理器设计。

著录项

  • 公开/公告号CN101335606A

    专利类型发明专利

  • 公开/公告日2008-12-31

    原文格式PDF

  • 申请/专利权人 中国科学院计算技术研究所;

    申请/专利号CN200810117249.5

  • 发明设计人 张颖;李华伟;李晓维;

    申请日2008-07-25

  • 分类号H04L1/22;H04L12/56;G06F17/50;

  • 代理机构北京律诚同业知识产权代理有限公司;

  • 代理人梁挥

  • 地址 100080 北京市海淀区中关村科学院南路6号

  • 入库时间 2023-12-17 21:15:08

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2022-10-25

    专利实施许可合同备案的生效 IPC(主分类):H04L 1/22 专利申请号:2008101172495 专利号:ZL2008101172495 合同备案号:X2022990000752 让与人:中国科学院计算技术研究所 受让人:中科鉴芯(北京)科技有限责任公司 发明名称:一种高可靠片上网络路由器系统及其设计方法 申请日:20080725 申请公布日:20081231 授权公告日:20120711 许可种类:排他许可 备案日期:20221009

    专利实施许可合同备案的生效、变更及注销

  • 2012-07-11

    授权

    授权

  • 2009-02-25

    实质审查的生效

    实质审查的生效

  • 2008-12-31

    公开

    公开

说明书

技术领域

本发明涉及半导体工艺技术领域,主要是针对片上网络的设计方法,特别是涉及一种高可靠片上网络路由器系统及其设计方法。

背景技术

目前在纳米工艺和多核处理器中,片上互连线成为制约芯片设计中性能和功耗要求方面的关键瓶颈。为此,研究人员设计了基于包传输的片上通讯网络,又名片上网络(Network-on-Chip,NOC),来满足系统性能和功耗的要求,适用多核处理器。但是,由于电路中存在寄生元件,导致VLSI系统有严重的信号完整性损失,例如长互连线上常见的串扰引起的时延。同时,由于电路中的外部射线或电气噪声,系统的存储单元会出现一些单事件翻转(Single EventUpset,SEU),即软错误。总而言之,串扰效应和软错误将会成为影响片上网络设计和测试的关键因素。这两种缺陷可能导致NOC出现头包错误,负载错误和路由崩溃错误,严重影响系统的可靠运行。如果仅采用基于重传的软件容错方法,由于串扰错误一旦发生则可能再次发生,严重影响系统地性能。因此,在系统可以接受的面积和功耗开销之内,设计一种可以同时容忍串扰效应和软错误的可靠的片上网络是一件很有意义的工作。

提高控制系统可靠性主要有两个途径:其一是避错,即通过优化设计、优选性能稳定质量高的元器件、按系统设计规范施工等措施来避免故障发生,一旦系统出现故障就不再继续正常运行;其二是容错。容错的基本思想是由冯·诺伊曼在1962年提出的。当出现某些故障时,系统具有自动修复和容忍故障的能力,仍能执行规定的任务,并且执行结果也不会因系统中的故障而产生差错。容错的基本设计思想是在系统体系结构上精心设计和用外加资源的冗余技术来达到掩蔽故障的影响。容错技术能够达到对故障的“容忍”,并非是“无视”故障的存在,而是要能够自动、适时地监测并诊断出系统的故障,然后采取相应的故障控制或处理的策略,而要达到这些要求,还要有相应的硬件作为基础。硬件容错技术主要有静态冗余和动态冗余两种。静态冗余是采用硬件堆积来达到提高可靠性的目的,基本的三模冗余TMR方式就是一种静态冗余容错技术。动态冗余也是一种有效的容错技术,它利用二模动态切换来提高系统的可靠性。从提高可靠性的效果来看,容错方法要强于避错方法。

国外的研究者已经展开了相应的研究。近期,有研究者提出了HC-TS-TMR容错设计方案,图1是TS-HC-TMR容错设计方案图,如图1所示,用于设计可以容忍串扰效应和软错误的NOC容错。这种方案利用延迟采样三次再表决的方法,以及相应的电路delay triple-sample register(TS)处理通道上的串扰效应;将TS的输出结果编成海明编码HC,保护包文免受软错误的影响;用三模冗余(Triple Modular Redundancy,TMR)保护Router中的状态和控制寄存器,使它们免受软错误的影响。采用这种方案需要在集成电路中添加额外的两个异步的时钟或者更高频的主时钟,这是集成电路设计所无法接受的。同时,串扰效应在高速设备中影响比较显著,在这些设备中串扰导致的时延很可能会超过系统最大采样的间隔,即两次采样到错误的数据。因此,这种方案应用到高速电路会出现问题。最后,TS在一个周期内需要采样三次,而且它的表决电路在一个周期内翻转三次,带来了额外的功耗。

随着集成电路频率和工艺的提高,总线上串扰导致的时延不断增加,甚至可能超过时钟周期。因此,在NOC通道的输入端采用容错技术要比在通道的输出端采用容错技术更可取。此外,如何减少容错设计的面积和功耗开销,使它们可以被系统设计所接受同样值得研究。

发明内容

本发明的目的在于提供一种高可靠片上网络路由器系统及其设计方法,用于多核处理器的片上网络进行容错设计,采用基于码字选择的串扰避免编码容忍通道上串扰效应和数据缓存的软错误,采用三模冗余保护路由器中的状态和控制寄存器,纠正其中出现的错误。

为实现本发明的目的而提供的一种高可靠片上网络路由器系统的设计方法,包括下列步骤:

步骤A,设计基于虫洞路由交换方式和轮换路由选择方式的路由器的软核;

步骤B,对指定宽度的数据设计相应的SCAC编码电路和SCAC译码电路、SCAC纠错电路,并将所述SCAC纠错电路加入所述路由器,将所述SCAC编码电路和SCAC译码电路与所述路由器连接,形成路由器系统的框架;

步骤C,对所述路由器系统的框架设计SCAC-TMR容错方案,实现高可靠片上网络路由器系统。

所述步骤C之后还包括步骤:

步骤D、验证所述高可靠片上网络路由器系统的功能,并评估其性能。

步骤A中,所述路由器,包括I/O端口和一个交换控制单元,其中:

所述I/O端口,包括Local端口、East端口,South端口,West端口和North端口;所述I/O端口中的每个端口的输入端口包含一个缓存单元,用于缓存输入数据;

所述Local端口,用于本地核和所述路由器之间通信;所述East端口,South端口,West端口和North端口,用于所述路由器和相邻路由器之间通信;

所述交换控制单元,用于根据所述I/O端口的请求为所述I/O端口分配通信通道。

所述交换控制单元按照轮换路由选择方式为所述I/O端口分配通信通道。

所述步骤B包括下列步骤:

步骤B1、对指定宽度的数据,利用SCAC码字选择算法,得到最优码字集合和一致性校验矩阵;

步骤B2、从所述最优码字集合中选择码字与原始数据形成编译码本,利用逻辑优化工具SIS将编译码本转化成相应的SCAC编码电路和SCAC译码电路;

步骤B3、根据所述一致性校验矩阵生成对应的SCAC纠错电路。

所述步骤B1包括下列步骤:

步骤B11、对于M位的输入信息,根据CAC的规则,生成N位CAC码字集合;

步骤B12、根据要求,推导群码的校验矩阵的属性,得出满足所述属性的所有校验矩阵;

步骤B13、对所述满足所述属性的所有校验矩阵进行优化,获得一致性校验矩阵,产生最优码字集合。

所述步骤B12包括下列步骤:

步骤B121、从所述CAC码字集合中选出码距等于3的容错子集合;

步骤B122、根据码距等于3,推导校验矩阵的属性,以得出满足所述属性的所有校验矩阵。

所述步骤B13包括下列步骤:

步骤B131、判断满足所述属性的所有校验矩阵是否已经进行判定,若已经全部进行判定,则执行步骤B132;否则执行步骤B133;

步骤B132、将N加上1,重新生成CAC码字集合,返回步骤B11;

步骤B133、从满足所述属性的所有校验矩阵中,选取一个校验矩阵作为待判定矩阵,从N位CAC码字集合中,选择满足所述待判定矩阵的码字,将所述码字存入码字集合;

步骤B134、若满足所述待判定矩阵的码字集合中码字的数目满足编码M位信息的数目,则执行步骤B135;否则将待判定矩阵从矩阵集合中删除,返回步骤B131;

步骤B135、将所述待判定矩阵作为一致性校验矩阵,将所述码字集合作为最优码字集合,并输出所述最优码字集合。

所述步骤B3包括下列步骤:

步骤B31、根据一致性校验矩阵生成对应得校验矩阵单元的电路;

步骤B32、设计能够输出纠错信号的差错译码单元的电路;

步骤B33、设计能够输出纠正SCAC码字中的错误的差错译码单元的电路。所述步骤C包括下列步骤:

步骤C1、将负载译码成SCAC编码,头包译码成海明编码,形成改进的SCAC编码电路和SCAC译码电路,将所述SCAC编码电路和SCAC译码电路设置在与所述路由器的Local端口相对应的网络接口上;

步骤C2、修改所述SCAC纠错电路,在所述SCAC纠错电路中添加一控制信号h,形成改进的SCAC纠错电路,使得当系统传输头包时,所述改进的SCAC纠错电路不工作,并在所述I/O端口的每个端口的输出端口添加所述改进的SCAC纠错电路;

步骤C3、将与所述缓存单元中的握手状态机和交换控制单元中的仲裁状态机相关的寄存器进行三模冗余,并且在交换控制单元中添加海明纠错电路用于头包纠错;

步骤C4、实例化所述路由器的软核,得到高可靠片上网络路由器系统。

所述步骤C3包括下列步骤:

步骤C31、将所述握手状态机中包括的状态寄存器本身,first和last指针寄存器,数量寄存器,以及输出握手信号寄存器,进行三模冗余;

步骤C32、将所述仲裁状态机中包括的两个状态寄存器,相应的端口选择指针,端口源目标寄存器,以及输出信号寄存器,进行三模冗余;

步骤C33、根据海明校验的原理,设计海明编码的纠错电路,并且将海明编码的纠错电路加入到所述交换控制单元,用于纠正头包中的软错误。

所述步骤D包括下列步骤:

步骤D1、编写验证文件,设置头包使得所述I/O端口的每个端口都在工作,验证所述高可靠片上网络路由器系统的功能;

步骤D2、采用SMIC130nm的工艺库,综合所述高可靠片上网络路由器系统,得到所述高可靠片上网络路由器系统面积开销的报告和标准时延文件;

步骤D3、利用所述验证文件和所述标准时延文件对综合后的所述高可靠片上网络路由器系统进行仿真,验证所述高可靠片上网络路由器系统的功能,并且得到值变转储文件;

步骤D4、将所述值变转储文件,所述标准时延文件和综合后的所述高可靠片上网络路由器系统加载到功耗评估工具中,评估它的实际功耗。

本发明还提供一种高可靠片上网络路由器系统,所述系统包括:路由器、SCAC编码电路模块、SCAC译码电路模块以及验证评估模块,其中:

所述路由器,包括:I/O端口、交换控制单元和SCAC纠错电路模块,其中:

所述I/O端口,包括:Local端口、East端口,South端口,West端口和North端口;

所述Local端口,用于本地核和所述路由器之间通信;

所述East端口,South端口,West端口和North端口,用于所述路由器和相邻路由器之间通信;

所述交换控制单元,用于根据所述I/O端口的请求,为所述I/O端口分配通信通道;

所述SCAC纠错电路模块,与所述I/O端口的每个端口的输出端连接,用于找到并纠正编码在传输中的错误;

所述SCAC编码电路模块,与所述Local端口的输入端连接,用于将输入的编码编码成SCAC编码;

所述SCAC译码电路模块,与所述SCAC纠错电路连接,用于将所述SCAC纠错单元输出的编码翻译输出;

所述验证评估模块,用于验证所述高可靠片上网络路由器系统的功能,并评估所述高可靠片上网络路由器系统的性能。

所述SCAC纠错电路模块,包括:校验矩阵单元、差错译码单元和纠正单元,其中:

所述校验矩阵单元,用于将总线输出码字与对应的校验矩阵再次运算,得到的结果输入到差错译码单元;

所述差错译码单元,用于根据输入的运算结果判定是否有错误,并将纠错信息输入到纠正单元;

所述纠正单元,用于根据纠错信息,纠正码字相应位的错误。

所述SCAC编码电路模块和SCAC译码电路模块,位于与所述Local端口相对应的网络接口上。

所述交换控制单元,包括海明纠错电路。

所述I/O端口的每个端口的输入端口包含一个缓存单元,用于缓存输入数据,以及用于与其它单元进行握手。

本发明的有益效果在于:

1.本发明可以减少片上网络的面积和功耗开销,更加适用于未来的容错多核处理器设计;

2.本发明在通道的输入端,通过编码的方法避免导致较大时延的信号跳变出现在通道上,使得信号可以在普通信号跳变的信号到达时间之前被输出端接受,更加适用于高时钟频率和先进工艺下的电路;

3.采用本方案的路由器可以确保系统不发生包路由错误,负载错误,以及路由崩溃错误,可以确保片上网络可靠地传输数据。

附图说明

图1是TS-HC-TMR容错设计方案图;

图2是本发明一种高可靠片上网络路由器系统的设计方法的实施例流程图;

图3是本发明一种高可靠片上网络路由器软核的实施例的框架图;

图4是本发明中缓存单元与交换控制单元的握手状态机图;

图5是本发明中交换控制单元的仲裁状态机图;

图6是设计SCAC编码电路和SCAC译码电路、SCAC纠错电路的流程图;

图7是本发明中确定具备纠错能力的串扰避免编码码字集合算法流程图;

图8是本发明中码字选择规则的一实施例;

图9是本发明中设计SCAC编码电路的一实施例的流程图;

图10是本发明中SCAC编码的纠错电路的一实施例图;

图11是本发明一种高可靠片上网络路由器的Local输入端口图;

图12是本发明一种高可靠片上网络路由器系统的结构示意图;

图13是原始路由器,TS-HC-TMR路由器(不包括新的时钟生成电路)和基于SCAC-TMR的高可靠片上网络路由器系统的面积和功耗开销对比图;

图14是采用TS-HC-TMR容错方案时的输出端时延图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明的一种高可靠片上网络路由器系统及其设计方法进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

本发明是一种基于选择串扰避免编码(Selected Crosstalk AvoidanceCode,SCAC)-三模冗余(Triple Modular Redundancy,TMR)方案的高可靠片上网络(Network-On-Chip,NOC)路由器(Router)系统及其设计方法,包括采用包传输片上网络路由器的软核,SCAC编码电路、SCAC译码电路和SCAC纠错电路,以及高可靠路由器系统的容错方案和评测单元确保片上网络能够可靠的传输数据。

在片上网络中,引入基于码字选择的串扰避免编码(SCAC)的设计方法,使得通道上不会出现引起较大时延的向量对,可以从通道的输入端去除串扰效应,特别适用于串扰效应显著的高速电路;同时,根据片上网络中路由器系统的结构设计一种SCAC-TMR容错方案。这种方案要求将在片上网络中的数据编码成SCAC编码,这种编码可以容忍路由器通道的串扰效应和存储单元的软错误;还要求对路由器中的控制和状态寄存器进行三模冗余(TMR),使它免受软错误的影响。采用这种容错方案可以避免在片上网络中出现由串扰和软错误导致头包路由错误、负载错误和路由器崩溃错误,其中路由器崩溃错误是由于状态和控制寄存器出现故障,导致系统出现不可恢复的错误。最后,优化设计方案使得路由器的面积和功耗开销尽可能小。

图2是本发明一种高可靠片上网络路由器系统的设计方法的一实施例的流程图,参照图2,本发明一种高可靠片上网络路由器系统的设计方法,包括下列步骤:

步骤S100,设计基于虫洞路由交换方式和轮换路由选择方式的采用Verilog硬件语言编写的路由器的软核;

所述路由器的软核是采用Verilog硬件语言编写的路由器。

图3是本发明一种高可靠片上网络路由器的一实施例框架图。

根据国际上常用的基于虫洞路由交换方式和轮换路由选择方式,通过握手状态机和仲裁状态机,设计通道带宽和数据缓存深度可变的路由器。如图3所示,这种路由器包含五个I/O端口和一个交换控制(Switch Control)单元。其中,一个I/O端口是用于本地核(Local Core)和路由器(Router)之间通信的,叫做Local端口。而另外四个是用于路由器和相邻路由器之间通信,分别称为East端口,South端口,West端口和North端口。在每个I/O端口中,仅输入端口包含一个缓存单元,负责缓存输入数据。同时,缓存单元还同时负责与其它单元进行握手。当缓存单元不满时,只要输入端接受到输入请求,就向请求输入的核发出响应。缓存单元的输出端需要与交换控制单元进行握手,请求相应的输出通道。

所述本地核可以是处理器或者是存储单元。

所述虫洞路由交换方式是指数据被分成许多小流量控制单位(flit),在网络中以流水方式传送。不必为被传送的数据包分配与其大小相同的缓冲区空间。

所述轮换路由选择方式是指交换控制单元按照East端口-South端口-West端口-North端口-Local端口-East端口这种轮换的方式选择待处理的输入通道,进行仲裁。例如,当5个输入端口同时出现端口请求,如果上一个处理端口是East端口,那么本次将处理South端口的请求。

所述握手状态机负责控制缓存单元与交换控制单元和交换控制单元与数据包的接收端之间的通信。首先,握手状态机控制缓存单元与交换控制单元的握手,获得相应的输出通道,并且传输包头;然后,握手状态机控制缓存单元与数据包接收端进行握手,将负载传输到相应的接收端。

图4是缓存单元与交换控制单元的握手状态机图。它包括五个状态,S0,S1,S2,S3和S4。当Reset=1时,握手状态机返回S0。当缓存的first和last指针不同时,握手状态机进入S1状态,将头包请求信号h置为1。当收到ack_h响应信号时,握手状态机进入S2状态。当缓存非空时,发出数据请求信号。收到数据响应,握手状态机进入S3,进行数据传输。直到计数器等于1时,握手状态机进入S4状态。最后,握手状态机返回S0状态。

所述仲裁状态机负责仲裁输入端口的通道请求信号,并且为它们分配相应的通道。它的主要操作是:按轮换的方式选择处理某个输入端口的请求信号,根据输入端口包头的目的地址决定输出端口,最后按照输出端口是否空闲决定响应输入请求。

交换控制单元通过仲裁状态机实现仲裁各I/O端口的请求信号,图5是交换控制单元的仲裁状态机图。当Reset=1时,仲裁状态机返回状态S0,在下一个时钟边沿,仲裁状态机进入状态S1。当有头包请求信号时,仲裁状态机进入状态S2。在状态S2中,完成选择等待处理的端口后,仲裁状态机进入状态S3。如果目标的位置等于本地Router,仲裁状态机进入状态S4;当X方向不相等时,仲裁状态机进入状态S5;当X相等而Y不相等时,仲裁状态机进入状态S6。状态S4,S5和S6收到相应的响应ack_h时,仲裁状态机返回S7,最后仲裁状态机返回状态S1。

步骤S200,对指定宽度的数据设计相应的SCAC编码电路和SCAC译码电路、SCAC纠错电路,并将所述SCAC纠错电路加入所述路由器,将所述SCAC编码电路和SCAC译码电路与所述路由器连接,形成路由器系统的框架;

步骤S210,对指定宽度的数据,利用SCAC码字选择算法,得到最优码字集合和一致性校验矩阵;

图6是设计SCAC编码电路和SCAC译码电路、SCAC纠错电路的流程图。参照图6,对于M位的输入信息,首先根据串扰避免编码(CAC)的规则,生成N位CAC码字集合。然后,判断满足要求的校验矩阵是否已经进行判定。如果全部都被判定过了,说明当前的N位CAC码字集合中的码字的位数不够编码M位的输入信息,则将N加上1,重新生成N+1位CAC码字集合;否则利用校验矩阵从CAC码字集合中,选出码距等于3的容错子集合。接着,判定编码本中的码字数目是否足够编码M位信息。如果码字数目足够,则输出该码字集合作为最优码字集合;否则,变换校验矩阵,返回第二步重新判定校验矩阵。程序直到找到合适校验矩阵和最优码字集合结束。

进一步地,所述步骤S210,包括下列步骤:

步骤S211,对于M位的输入信息,根据串扰避免编码(CrosstalkAvoidance Code,CAC)的规则,生成N(N=M+1)位CAC码字集合;

所述串扰避免编码可以分为加速编码(Delay=1+λ)、常用编码(Delay=1+2λ)和避免最大时延编码(Delay=1+3λ)。其中常用编码又分为两类,即禁止跳变编码(Forbidden Transition Code,FTC)和禁止向量编码(Forbidden PatternCode,FPC)。在本发明中,串扰避免编码采用禁止向量编码FPC,即从N位的码字全集中去除含有“010”或“101”子向量的码字,形成CAC码字集合。

例如,假设输入信息为3位,那么首先确定4(3+1)位码字的码字全集,即0000,0010,0100,1000,0110,1010,1100,1110,0001,0011,0111,1111,0101,1001,1011,1101,然后从中去掉包含“010”或“101”的子向量,最终得到禁止向量编码0000,0001,1000,0110,1100,1110,0011,0111,1111,1001,即CAC码字集合。用于供下面的步骤进行选择。

步骤S212,根据要求,推导校验矩阵的属性,得出满足该属性的所有校验矩阵;

步骤S2121,从所述CAC码字集合中选出码距等于3的容错子集合;

Ham(X,Y)表示Cn中的两码字的海明距离,其中X,Y表示两个任意码字。最小的非零海明距离叫做Cn的码距。

步骤S2122,根据码距等于3,推导校验矩阵的属性,以得出满足该属性的所有校验矩阵;

推论1当且仅当生成矩阵中相加等于0T的列向量组,它们的最小列向量数目等于a,则群码的码距等于a。

同时,矩阵列向量的维数m必须不小于log2(n+1),其中n是码字的位数。

符合如上要求的矩阵有很多,较佳地,本发明通过选择列向量和列向量重排列,得到所有满足要求的矩阵,供步骤S2123进行优化。

作为一种可实施方式,假设参考设计说明书要求电路具有纠正单个错误的能力,根据推论1的推导,因为码距等于3,它的校验矩阵中最少有3个列向量相加等于0T。因此,相应校验矩阵必须满足如下两个属性:

1校验矩阵没有相同的列向量,也没有向量0T。

2校验矩阵存在由3个列向量组成的向量组,它们的和等于0T。

同时,矩阵列向量的维数m必须不小于log2(n+1),其中n是码字的位数。

步骤S213,对满足属性的所有校验矩阵进行优化,获得一致性校验矩阵,进而产生具备纠错能力的串扰避免编码最优码字集合;

图7是本发明中确定具备纠错能力的串扰避免编码码字集合算法流程图;图8是本发明中码字选择规则的一实施例;参见图7和图8,所述步骤S213,包括下列步骤:

步骤S2131,判断满足属性的所有校验矩阵是否已经进行判定,如果已经全部进行判定,则执行步骤S2132;否则执行步骤S2133;

步骤S2132,将N加上1,重新生成CAC码字集合,返回步骤S211;

由于满足N位属性的所有校验矩阵已经全部进行判定,仍然找不到符合要求的码字的数目满足编码M位信息的数目,说明当前的N位编码不够,所以需要以N+1位重新生成CAC码字集合。

步骤S2133,从满足所述属性的所有校验矩阵中,选取一个校验矩阵作为待判定矩阵,从N位CAC码字集合中,选择满足所述待判定矩阵的码字,将所述码字存入码字集合;

在选择码字的过程中,如果N位CAC码字集合中的码字满足待判定矩阵构成的校验方程,将该码字添加到符合要求的码字集合中;反之,该码字被删除。

定义1如果群码Cn={X|H·XT=0T},其中乘操作·是按位与运算符,X群码的任意码字,T表示转置,H是群码的生成矩阵(一致性校验矩阵),则方程{X|H·XT=0T}是群码Cn的生成方程(一致性校验方程),所有码字都是通过方程生成。

作为一种可实施方式,图8是5位编码的码字选择的一实施例。子图(a)是根据FPC规则,从5位的码字全集中去除包含“101”或“010”的码字,剩余的16个码字就是FPC码字集合。子图(b)是码距等于3的群码的校验矩阵H,FPC的码字需要通过它构成的校验方程{X|H·XT=0T}判定。如果码字符合校验方程,则码字属于具有纠错能力的群码。例如,FPC的码字“00111”代入校验方程运算。首先乘操作,矩阵H的列向量(h3,h4,h5)被选中;然后加操作,列向量(h3,h4,h5)的和等于0T,所以码字“00111”符合校验方程,它属于群码。当FPC的码字“10011”代入校验方程运算,乘运算时列向量(h1,h4,h5)被选中,加运算时列向量的和等于(1,1,0)T,则码字“10011”不属于群码。子图(c)是选择得到的SFPC集合(Selected FPC),它包含4个码字,码距等于3。如果用用该码字集合编码2位输入信息,则片上总线可以同时避免串扰时延和提供纠错能力。

步骤S2134,若满足所述待判定矩阵的码字集合中码字的数目满足编码M位信息的数目,则执行步骤S2135;否则将待判定矩阵从矩阵集合中删除,返回步骤S2131;

步骤S2135,将所述待判定矩阵作为一致性校验矩阵,将所述码字集合作为最优码字集合,并输出所述最优码字集合。

步骤S220,从最优码字集合中选择一定数目的码字与原始数据形成编译码本,利用逻辑优化工具SIS将编译码本转化成相应的SCAC编码电路和SCAC译码电路;

从步骤S210得到的足够编码M位信息的SCAC码字集合(即最优码字集合)中,选择出2M个SCAC码字,并且与信息建立合适(合适是指使编码电路和译码电路的逻辑更加简单)的映射关系。这种映射关系可以使得编译码逻辑尽量小,而且所有编译码器输出端的时延尽量相等。最后,利用逻辑优化工具SIS,优化编译码逻辑,并利用电路实现。图9是本发明中设计SCAC编码器的一实施例的流程图,如图9所示,通过步骤S210从CAC码字中选择出容错码字集合,在步骤S220中,形成编码逻辑,最后实现SCAC编码电路和SCAC译码电路。

利用逻辑优化工具SIS将编译码本转化成相应的SCAC编码电路和SCAC译码电路,是一种现有技术,在此不再一一赘述。

步骤S230,根据一致性校验矩阵生成对应的SCAC纠错电路;

所述SCAC纠错电路由校验矩阵单元、差错译码单元和纠错单元构成。

进一步地,所述步骤S230,包括下列步骤:

步骤S231、根据一致性校验矩阵生成对应得校验矩阵单元的电路;

利用定义1,将一致性校验矩阵的一致性校验方程转化成校验矩阵单元的电路,使得校验矩阵单元实现将输入校验矩阵单元的SCAC码字与一致性校验矩阵再次运算的功能。

步骤S232、设计能够输出纠错信号的差错译码单元的电路;

所述差错译码单元能够实现将校验矩阵单元的运算结果译码成纠错信号的功能。

步骤S233、设计能够输出纠正SCAC码字中的错误的差错译码单元的电路;

所述纠错单元能够实现根据纠错信号纠正SCAC码字中的错误的功能。

步骤S300,对所述路由器系统的框架设计SCAC-TMR容错方案,并实现基于SCAC-TMR方案的高可靠片上网络路由器系统;

步骤S310,将负载译码成SCAC编码,而头包译码成海明编码,形成改进的SCAC编码电路和SCAC译码电路,将SCAC编码电路和SCAC译码电路设置在与Local端口对应的网络接口(Network Interface,NI)上。

由于基于片上网络的头包是在头包握手和负载握手之间传输,而在握手过程中数据总线通常处于高阻状态下,不会对以后的向量产生串扰影响,因此头包不会出现串扰效应。因此,只需将负载译码成SCAC编码,而头包译码成海明编码。

所述头包握手是指缓冲单元的输出端与交换控制单元进行握手,向交换控制单元请求输出通道。交换控制单元根据包头的目的地址分配通道之后,缓冲单元将包头发送到数据包接收端。

所述负载握手是指在传输包头之后,缓冲单元的输出端与数据包的接收端进行握手,得到响应之后,缓冲单元将负载发送到数据包接收端。

将改进的SCAC编码电路和改进的SCAC译码电路设置在与路由器的Local端口对应的网络接口上,使得信息在本地核与所述路由器之间传输时避免串扰。

步骤S320,修改所述SCAC纠错电路,在所述SCAC纠错电路中添加一控制信号h,形成改进的SCAC纠错电路,使得当系统传输头包时,所述改进的SCAC纠错电路不工作,并在所述I/O端口的每个端口的输出端口添加所述改进的SCAC纠错电路;

其中,所述控制信号h是与输出端口对应的输入端口中的包头请求信号h;

在数据传输请求有效时,控制信号h=1时,表示系统传输头包;控制信号h=0时,表示系统传输负载。

步骤S330,将与缓存单元中的握手状态机和交换控制单元中的仲裁状态机相关的寄存器进行三模冗余,并且在交换控制单元中添加海明纠错电路用于头包纠错。

所述海明纠错电路是一种现有技术,在此不再一一赘述。

为了Router的控制部分可以容忍软错误,使得Router不发生由软错误导致的崩溃故障。本方案需要将与缓存单元中的握手状态机和交换控制单元中的仲裁状态机相关的寄存器进行三模冗余。

步骤S331,将缓存单元中的握手状态机中包括的状态寄存器本身,first和last指针寄存器,数量寄存器,以及输出握手信号寄存器,进行三模冗余;

步骤S332,将交换控制单元中的仲裁状态机中包括的两个状态寄存器,相应的端口选择指针,端口源目标寄存器,以及输出信号寄存器,进行三模冗余;

所述三模冗余是一种现有技术,本发明不再一一赘述。

步骤S333,根据海明校验的原理(编码中特定位进行异或,形成一组可以指示出错位的查错信息),设计海明编码的纠错电路,并且将它加入到交换控制单元,用于纠正头包中的软错误。

步骤S340,实例化所述路由器的软核,得到高可靠片上网络路由器系统;

图11是本发明路由器的Local输入端口图。图12是本发明一种高可靠片上网络路由器系统的结构示意图。

作为一种可实施方式,假定片上网络传输长度等于7的头包,其中4位用作选址,3位用作记录负载的个数,并且缓存的深度等于4。这样当头包被编码成海明码后,它的长度等于11,所以通道的宽度应该等于11。同时,负载部分被划分成5位宽的包,这些包被转化成11位基于码字选择的禁止跳变编码(Selected Forbidden Pattern Code,SFPC)。所以,需要将步骤S310得到的编译码器,如图11所示,添加到路由器Local端的NI上。其中,h=1表示系统传输头包,则NI选通海明编码器HC(7,11),将输入的7位头包翻译成11位的海明编码,输入到片上网络中;h=0表示系统传输负载,则NI选通编码器SFPC(5,11)(SCAC编码的一种),5位的数据包被翻译成11位SFPC编码传输到片上网络中。同时,需要将步骤S320得到的经过修改的SCAC纠错电路添加到路由器的5个输出端口,如图12所示。接着,5个缓存单元中和交换控制单元中的控制和状态寄存器都进行三模冗余。最后,海明纠错电路HC(7,11)添加到交换控制单元中,用于纠正头包的软错误。

步骤S400,验证基于SCAC-TMR方案的高可靠片上网络路由器系统的功能,并评估其性能。

步骤S410,编写验证文件test bench,设置合适的头包使得所述I/O端口每一个端口都在工作,验证高可靠片上网络路由器系统的功能。

编写验证文件test bench的原则,是在East端口的输入端载入目的地址是South端口的头包;在South端口的输入端载入目的地址是West端口的头包;在West端口的输入端载入目的地址是North端口的头包;在North端口的输入端载入目的地址是Local端口的头包;在Local端口的输入端载入目的地址是East端口的头包。这样的设置可以保证每一个端口都在工作,方便验证高可靠片上网络路由器系统的功能和功耗。

步骤S420,采用SMIC130nm的工艺库,综合所述高可靠片上网络路由器系统,得到高可靠片上网络路由器系统面积开销的报告和标准时延文件(Standard Delay File,SDF)。

步骤S430,利用test bench文件和标准时延文件对综合后的高可靠片上网络路由器系统进行仿真,验证高可靠片上网络路由器系统的功能,并且得到值变转储文件(Value Change Document,VCD)。

步骤S440,将值变转储文件,标准时延文件和综合后的高可靠片上网络路由器系统加载到功耗评估工具PrimePower中,评估它的实际功耗。

步骤S420-S440中所述的方法均为现有技术,在此不再一一赘述。

图13是原始路由器,TS-HC-TMR方案路由器(不包括新的时钟生成电路)和基于SCAC-TMR方案的高可靠片上网络路由器系统的面积和功耗开销对比图。其中还列出了各种容错电路的面积和功耗开销。与TS-HC-TMR方案相比,SCAC-TMR方案可以节省3337.09um2的面积开销,相当于原始路由器面积开销的18%;可以节省0.39mw的功耗,相当于原始路由器功耗的31%。因此,本发明可以减少片上网络的面积和功耗开销,更加适用于未来的容错多核处理器设计。

相应于一种高可靠片上网络路由器系统的设计方法,本发明还提供一种高可靠片上网络路由器系统,包括:路由器、SCAC编码电络模块和SCAC译码电路模块、以及验证评估模块。

所述路由器包括:I/O端口、交换控制单元、SCAC纠错电路模块。

所述I/O端口,包括:Local端口、East端口,South端口,West端口和North端口。

所述Local端口,用于本地核和路由器之间通信;

所述East端口,South端口,West端口和North端口,用于路由器和相邻路由器之间通信。

所述交换控制单元,用于负责根据所述I/O端口的请求为所述I/O端口天分配通信通道。

所述交换控制单元,包括海明纠错电路。

所述I/O端口的每个端口中,仅输入端口包含一个缓存单元,负责缓存输入数据。同时,缓存单元还同时负责与其它单元进行握手。当缓存单元不满时,只要输入端接受到输入请求,就向请求输入的核发出响应。缓存单元的输出端需要与所述交换控制单元进行握手,请求相应的输出通道。

所述SCAC纠错电路模块,位于所述I/O端口中每个端口的输出端,用于找到并纠正编码在传输中的错误。

所述SCAC纠错电路模块,包括:

校验矩阵单元:将总线输出码字与对应的校验矩阵再次运算,得到的结果输入到差错译码单元;

差错译码单元:根据输入的运算结果判定是否有错误,并将纠错信息输入到纠正单元;

纠正单元:根据纠错信息,纠正码字相应位的错误;

校验矩阵单元将总线系统单元输出码字与对应的校验矩阵再次运算,得到的结果输入到差错译码单元;差错译码单元根据输入的运算结果判定是否有错误,并将纠错信息输入到纠正单元,如果输出结果等于0T,则码字传输没有错误,所有输出保持为0;否则,从校验矩阵中找出与输出结果相等的列向量,并且将与该列向量位置相同的输出设置成1作为纠错信息。纠正单元根据纠错信息,纠正码字相应位的错误,当纠错信息输入0时,表示码字中相应位没有错误,保持不变;当纠错信息输入1时,表示码字中相应位出现错误,信号翻转。

作为一种可实施方式,图10是本发明中SCAC编码的纠错电路的一实施例。参照图10,一个5位SCAC编码的纠错电路,校验矩阵单元将输入码字与所述一致性校验矩阵进行运算,产生判定结果。差错译码单元负责将判定结果译码成码字对应信息位的纠错信号。如果判定结果是000,则表示码字没有错误。如果判定结果同一致性校验矩阵的某个列向量相等,则表示码字对应信息位发生错误,需要进行纠错。纠正单元根据纠错信息,纠正码字相应位的错误。当判定结果为110,与一致性校验矩阵的第一个列向量相同,则一定是码字的第一位发生改变,致使判定结果不等于零向量,码字的第一位需要被翻转。

所述SCAC编码电路模块,与所述Local端口的输入端连接,用于将输入的编码编码成基于选择串扰避免编码。

图14是采用TS-HC-TMR容错方案时的输出端时延图。采用TS-HC-TMR容错方案时,延时采样寄存器TS需要以d为时间间隔在1个周期内采样3次,则采样时间间隔d不能超过1/3个时钟周期。如图14所示,在130nm工艺和1GHZ的时钟频率下1mm长的三根导线构成的总线系统中,最好的信号跳变,普通的信号跳变和最糟糕的信号跳变在第二根导线上信号到达时间分别是0.75,0.99和1.3ns(其中信号的阈值电平等于0.5v)。假设普通信号跳变下信号的到达时间是采样时间。当总线上出现最糟糕的信号跳变时,接收端要在近1/3个时钟周期(0.31ns)之后才能接收到信号。这样TS-HC-TMR即使延时采样2次,表决的结果可能依然是错误的。在先进工艺和高时钟频率的电路中,串扰导致的时延通常较大,因此在总线的输入端处理串扰效应比在输出端处理更加可取。本发明在通道的输入端,通过编码的方法避免导致较大时延的信号跳变出现在通道上,使得信号可以在普通信号跳变的信号到达时间之前被输出端接受,更加适用于高时钟频率和先进工艺下的电路。

所述SCAC译码电路模块,与所述SCAC纠错电路连接,用于将所述SCAC纠错单元输出的编码翻译输出。

所述SCAC编码电路模块和SCAC译码电路模块,位于与所述Local端口对应的网络接口(Network Interface,NI)上。

所述验证评估模块,用于验证所述高可靠片上网络路由器系统的功能,并评估该高可靠片上网络路由器系统的性能。

本发明的有益效果在于:

1.本发明可以减少片上网络的面积和功耗开销,更加适用于未来的容错多核处理器设计;

2.本发明在通道的输入端,通过编码的方法避免导致较大时延的信号跳变出现在通道上,使得信号可以在普通信号跳变的信号到达时间之前被输出端接受,更加适用于高时钟频率和先进工艺下的电路;

3.采用本方案的路由器系统可以确保系统不发生包路由错误,负载错误,以及路由崩溃错误,可以确保片上网络可靠地传输数据。

通过结合附图对本发明具体实施例的描述,本发明的其它方面及特征对本领域的技术人员而言是显而易见的。

以上对本发明的具体实施例进行了描述和说明,这些实施例应被认为其只是示例性的,并不用于对本发明进行限制,本发明应根据所附的权利要求进行解释。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号