一种应用于片上网络的低功耗联合的编解码电路及其编解码方法

文档序号:10690729阅读:276来源:国知局
一种应用于片上网络的低功耗联合的编解码电路及其编解码方法
【专利摘要】本发明公开了一种应用于片上网络的低功耗联合的编解码电路及其编解码方法,其特征是,在源节点的输入端设置有编码电路,在目的节点的输出端设置有解码电路;编码电路包括:编码判断拆分模块、四个汉明距离计算模块、四个数据翻转模块、格雷码编码模块、数据编码打包模块;解码电路包括:解码判断拆分模块、四个数据反翻转模块、格雷码解码模块、数据解码打包模块。本发明能降低传输数据的翻转率,从而降低整个片上网络的功耗,并保证数据传输的正确性。
【专利说明】
-种应用于片上网络的低功耗联合的编解码电路及其编解码 方法
技术领域
[0001] 本发明属于集成电路片上网络的通信技术领域,尤其设及一种应用于片上网络的 分组反转编码和格雷码编码低功耗联合的编解码电路及其编解码方法。
【背景技术】
[0002] 随着集成电路特征尺寸缩小,时钟频率增大,单个忍片上集成的晶体管数量超过 10亿数量级,互连线密度不断提高,能量消耗已逐渐成为忍片设计的主要瓶颈;由此可见, 片上网络(Network化化ip,NoC)的功耗成为影响忍片性能的关键因素;NoC的动态功耗主 要包括节点功耗和网络功耗,节点功耗是路由节点内部操作产生的功耗,网络功耗是数据 在网络中从源节点向目的节点传输时在互连网络上产生的功耗;当大量数据在NoC中从源 节点向目的节点传输时,相邻传输数据之间高的翻转率,导致NoC产生很大的互连线网络功 耗。
[0003] 现有技术中,分组总线反转(Bus Inved,BI)编码是常用于数据总线的低功耗编 码方法,格雷码编码是常用于地址总线的低功耗编码方法,它们都是用于总线低功耗编码 而不是NoC低功耗设计中;BI码适用于随机数据,本身需要增加额外的冗余标志位,并且效 果随着数据位宽的增加而减小,对连续数据有很大的局限性,格雷码适用于连续数据,对随 机数据有很大的局限性;针对现有的NoC平台,传输的数据既有随机数据,又有连续数据,单 独使用BI码或单独使用格雷码,NoC的功耗都只能降低很小一部分,再加上编码电路自身的 面积开销,降低功耗的整体效果非常不明显,目前,没有发现BI码和格雷码联合应用于NoC 的低功耗设计。

【发明内容】

[0004] 本发明为克服现有NoC平台大量随机数据和连续数据传输的功耗问题,提出了一 种应用于片上网络的低功耗联合的编解码电路及其编解码方法,旨在降低NoC中传输数据 的翻转率,从而降低整个NoC的功耗,并保证数据传输的正确性。
[0005] 本发明为达到上述目的所采用的技术方案是:
[0006] 本发明一种应用于片上网络的低功耗联合的编解码电路,所述片上网络为MXN的 二维网络;并用于传输外部的数据包;定义接收到所述数据包的路由节点为源节点,输出所 述数据包的路由节点为目的节点;所述数据包是由η个微片组成,分别是1个头微片,n-2个 体微片和1个尾微片;每个微片包含微片头、二进制微片计数器、二进制包计数器、低位数 据;其特点是:
[0007] 在所述源节点的输入端设置有编码电路,在所述目的节点的输出端设置有解码电 路;
[000引所述编码电路包括:编码判断拆分模块、四个汉明距离计算模块、四个数据翻转模 块、格雷码编码模块、数据编码打包模块;
[0009] 所述编码判断拆分模块接收任意一个微片,并判断是否为头微片,若为头微片,贝u 将头微片中的微片头和低位数据都发送给所述数据编码打包模块、并将头微片中的二进制 微片计数器、二进制包计数器发送给所述格雷码编码模块;否则,将所接收的微片中的微片 头发送给所述数据编码打包模块、并将所接收的微片中的二进制微片计数器、二进制包计 数器发送给所述格雷码编码模块、并将所接收的微片中的低位数据进行拆分,得到低八位 数据、次低八位数据、次高八位数据和高八位数据后依次发送给所述四个汉明距离计算模 块;
[0010] 所述四个汉明距离计算模块分别接收所述低八位数据、次低八位数据、次高八位 数据和高八位数据后进行计算,得到低位汉明距离、次低位汉明距离、次高位汉明距离和高 位汉明距离,并发送给所述四个数据翻转模块;
[0011] 所述四个数据翻转模块根据所接到的低位汉明距离、次低位汉明距离、次高位汉 明距离和高位汉明距离分别判断是否大于所设定的阔值,若大于,则将相应的低八位数据、 次低八位数据、次高八位数据或高八位数据进行按位取反操作,并设定相应的翻转标识,否 贝1J,保持相应的低八位数据、次低八位数据、次高八位数据或高八位数据不变,并设定相应 的翻转标识,并将所有的翻转标志放在相应微片中微片计数器的冗余位上,从而获得翻转 结果发送给所述数据编码打包模块,W及四个汉明距离计算模块用于下一个微片的计算;
[0012] 所述格雷码编码模块将所接收到的微片中的二进制微片计数器、二进制包计数器 转换为格雷码计数器并发送给所述数据编码打包模块;
[0013] 所述数据编码打包模块将所接到的微片中的微片头和低位数据、格雷码计数器一 起打包为编码微片并发送给所述源节点;或将所接到的微片中的微片头、四个数据翻转模 块的翻转结果W及翻转标识、格雷码计数器一起打包为编码微片并发送给所述源节点;
[0014] 所述解码电路包括:解码判断拆分模块、四个数据反翻转模块、格雷码解码模块、 数据解码打包模块;
[0015] 所述解码判断拆分模块接收到所述目的节点输出的编码微片,并判断是否为头微 片,若为头微片,则将头微片中的微片头和低位数据都发送给所述数据解码打包模块、将头 微片中的雷码计数器发送给所述格雷码解码模块;否则,将所述编码微片中的微片头发送 给所述数据解码打包模块、将所述编码微片中的雷码计数器发送给所述格雷码解码模块; 并将四个数据翻转模块的翻转结果进行拆分,得到编码结果的低八位数据、次低八位数据、 次高八位数据和高八位数据并分别发送给所述四个数据反翻转模块;
[0016] 所述四个数据反翻转模块分别根据相应的翻转标识将所述编码结果的低八位数 据、次低八位数据、次高八位数据和高八位数据进行处理,得到解码结果的低八位数据、次 低八位数据、次高八位数据和高八位数据后发送给所述数据解码打包模块;
[0017] 所述格雷码解码模块将所接收到编码微片中的雷码计数器转换为二进制微片计 数器、二进制包计数器后,发送给所述数据解码打包模块;
[0018] 所述数据解码打包模块将所接到的头微片中的微片头和低位数据、格雷码解码模 块的结果一起打包为解码微片并进行本地存储;或将所接到的解码微片中的微片头、四个 数据反翻转模块的解码结果、格雷码解码模块的结果一起打包为解码微片并进行本地存 储。
[0019] 本发明一种应用于片上网络的低功耗联合的编解码方法,所述片上网络为MXN的 二维网络;并用于传输外部的数据包;定义接收到所述数据包的路由节点为源节点,输出所 述数据包的路由节点为目的节点;所述数据包是由5个微片组成,分别是1个头微片,3个体 微片和1个尾微片;每个微片包含微片头、二进制微片计数器、二进制包计数器、低位数据; 其特点是所述编解码方法是按如下步骤进行:
[0020] 步骤1、对所述数据包中任意一个微片判断是否为头微片,若为头微片,则将头微 片中的二进制微片计数器、二进制包计数器转换为格雷码计数器;并将头微片中的微片头 和低位数据W及所述格雷码计数器一起打包为编码微片并发送给所述源节点;否则,将所 述微片中除去冗余位后的二进制微片计数器、二进制包计数器转换为格雷码计数器、将所 述微片中的低位数据进行拆分,得到低八位数据、次低八位数据、次高八位数据和高八位数 据;
[0021] 步骤2、所述低八位数据、次低八位数据、次高八位数据和高八位数据进行计算得 到低位汉明距离、次低位汉明距离、次高位汉明距离和高位汉明距离;
[0022] 步骤3、根据所述低位汉明距离、次低位汉明距离、次高位汉明距离分别判断是否 大于所设定的阔值,若大于,则将相应的低八位数据、次低八位数据、次高八位数据或高八 位数据进行按位取反操作,并设定相应的翻转标识,否则,保持相应的低八位数据、次低八 位数据、次高八位数据或高八位数据不变,并设定相应的翻转标识,并将所有翻转标志放在 相应微片中微片计数器的冗余位上,从而获得翻转结果;
[0023] 步骤4、将所述微片中的微片头、格雷码计数器、翻转结果、翻转标识一起打包为编 码微片并发送给所述源节点;
[0024] 步骤5、所述源节点将编码微片经过所述片上网络进行传输后到达目的节点;
[0025] 步骤6、对所述目的节点所输出的编码微片判断是否为头微片,若为头微片,则将 头微片中的雷码计数器转换为二进制微片计数器、二进制包计数器后,并将二进制微片计 数器、二进制包计数器W及头微片中的微片头和低位数据一起打包为解码微片并进行本地 存储;否则,将所述编码微片中的雷码计数器转换为二进制微片计数器、二进制包计数器, 将翻转结果进行拆分,得到编码结果的低八位数据、次低八位数据、次高八位数据和高八位 数据;
[0026] 步骤7、根据相应的翻转标识将所述编码结果的低八位数据、次低八位数据、次高 八位数据和高八位数据进行处理,得到解码结果的低八位数据、次低八位数据、次高八位数 据和高八位数据;
[0027] 步骤8、将所接到的解码微片中的微片头、解码结果的低八位数据、次低八位数据、 次高八位数据和高八位数据、二进制微片计数器、二进制包计数器一起打包为解码微片并 进行本地存储。
[0028] 与现有技术相比,本发明的有益技术效果体现在:
[0029] 1、本发明提出的应用于NoC的低功耗联合的编解码电路及其编解码方法,应用于 实际的NoC,通过降低传输数据的翻转率,从而有效降低了 NoC的整体功耗,并保证了数据传 输的正确性。
[0030] 2、本发明提出的应用于NoC的低功耗分组BI编解码方法,BI码是常用于随机数据 的低功耗编码方法,它能降低NoC平台中随机数据的翻转率,从而有效降低了 NoC中随机数 据的传输功耗。
[0031] 3、本发明提出的应用于NoC的低功耗分组BI编解码方法,BI码低功耗编码方法本 身要增加额外的翻转标志位,针对特定的NoC平台,每个微片中微片计数器是8位,而微片数 为5,微片计数器只需要3为就可W,所W把微片计数器的高四位用于存放BI编码的翻转标 志,不添加额外冗余标志,克服了 BI编码本身要增加翻转标志的缺陷,从而克服了额外添加 标志位增加的自身面积开销。
[0032] 4、本发明提出的应用于NoC的低功耗格雷码编解码方法,NoC平台中连续数据的数 据相关性大,而相邻格雷码之间只有1位数字发生变化,其动态功耗小,格雷码编解码方法 能降低NoC平台中连续数据数据的翻转率,从而有效降低了 NoC中连续数据的传输功耗。
[0033] 5、本发明提出的应用于NoC的低功耗联合编解码设计方法,将分组BI编解码和格 雷码编解码联合,针对特定的NoC平台,既有连续数据,又有随机数据,克服了单独使用BI编 解码对连续数据的局限性和单独使用格雷码编解码对随机数据的局限性。
【附图说明】
[0034] 图1为本发明片上网络一次编码一次解码的方式挂载图;
[0035] 图2为本发明编码电路整体结构图;
[0036] 图3为本发明编码电路中的汉明距离计算电路图;
[0037] 图4为本发明编码电路中的数据翻转电路图;
[0038] 图5为本发明编码电路中的格雷码编码电路图;
[0039] 图6为本发明解码电路整体结构图;
[0040] 图7为本发明解码电路中的数据反翻转电路图;
[0041 ]图8为本发明解码电路中的格雷码解码电路图;
[0042] 图9为本发明挂载编解码模块和不挂载编解码总功耗对比图;
[0043] 图10为本发明挂载编解码模块和不挂载编解码总面积对比图。
【具体实施方式】
[0044] 本实施例中,片上网络为MXN=2X2的最小二维网络;并用于传输外部的数据包; 定义接收到数据包的路由节点为源节点,输出数据包的路由节点为目的节点;数据包是由η =5个微片组成,分别是1个头微片,η-2 = 3个体微片和1个尾微片;每个微片包含微片头、二 进制微片计数器、二进制包计数器、低位数据;Μ和Ν为大于或等于2的整数;η为大于或等于3 的整数;
[0045] 如图1所示,节点1为源节点,节点4为目的节点,一种应用于片上网络的低功耗联 合的编解码电路,是在源节点的输入端设置有编码电路,在目的节点的输出端设置有解码 电路;
[0046] 如图2所示,编码电路包括:编码判断拆分模块、四个汉明距离计算模块、四个数据 翻转模块、格雷码编码模块、数据编码打包模块;
[0047] 编码判断拆分模块根据接收的数据是否为0,判断是否有数据输入,若接收的数据 不为0,则产生数据变化信号data_change后发送给总控逻辑,总控逻辑接收到data_change 信号启动编码电路,编码判断拆分模块接收任意一个微片,并判断是否为头微片,若为头微 片,则将头微片中的微片头和低位数据都发送给数据编码打包模块、并将头微片中的二进 制微片计数器、二进制包计数器发送给格雷码编码模块;否则,将所接收的微片中的微片头 发送给数据编码打包模块、并将所接收的微片中除去冗余位后的二进制微片计数器低四 位、二进制包计数器发送给格雷码编码模块、并将所接收的微片中的低位数据进行拆分,得 到低八位数据、次低八位数据、次高八位数据和高八位数据后依次发送给四个汉明距离计 算模块;
[0048] 四个汉明距离计算模块分别接收低八位数据、次低八位数据、次高八位数据和高 八位数据后并与上次编码结果进行对比和计算,得到低位汉明距离、次低位汉明距离、次高 位汉明距离和高位汉明距离,并发送给四个数据翻转模块;
[0049] 四个数据翻转模块根据所接到的低位汉明距离、次低位汉明距离、次高位汉明距 离和高位汉明距离分别判断是否大于所设定的阔值,若大于,则将相应的低八位数据、次低 八位数据、次高八位数据或高八位数据进行按位取反操作作为翻转结果,并设定相应的翻 转标识,此时,翻转标志为1,否则,保持相应的低八位数据、次低八位数据、次高八位数据或 高八位数据不变直接作为翻转结果,并设定相应的翻转标识,此时,翻转标志为0,并且所有 的四个翻转标志放在相应微片的微片计数器的高四位冗余位中,将翻转结果发送给数据编 码打包模块,W及四个汉明距离计算模块用于下一个微片的计算;
[0050] 格雷码编码模块将所接收到的微片中的二进制微片计数器、二进制包计数器转换 为格雷码计数器并发送给数据编码打包模块;
[0051] 数据编码打包模块将所接到的微片中的微片头和低位数据、格雷码计数器一起打 包为编码微片并发送给源节点;或将所接到的微片中的微片头、四个数据翻转模块的翻转 结果W及翻转标识、格雷码计数器一起打包为编码微片并发送给源节点;
[0052] 如图6所示,解码电路包括:解码判断拆分模块、四个数据反翻转模块、格雷码解码 模块、数据解码打包模块;
[0053] 解码判断拆分模块接收到目的节点输出的编码微片,并判断是否为头微片,若为 头微片,则将头微片中的微片头和低位数据都发送给数据解码打包模块、将头微片中的雷 码计数器发送给格雷码解码模块;否则,将编码微片中的微片头发送给数据解码打包模块、 将编码微片中的雷码计数器发送给格雷码解码模块;并将四个数据翻转模块的翻转结果进 行拆分,得到编码结果的低八位数据、次低八位数据、次高八位数据和高八位数据并分别发 送给四个数据反翻转模块;
[0054] 四个数据反翻转模块分别根据相应的翻转标识将编码结果的低八位数据、次低八 位数据、次高八位数据和高八位数据进行处理,若翻转标志为1,则将相应的数据按位取反 的得到解码结果,否则直接输出作为解码结果,并将解码结果的低八位数据、次低八位数 据、次高八位数据和高八位数据发送给数据解码打包模块;
[0055] 格雷码解码模块将所接收到编码微片中的雷码计数器转换为二进制微片计数器、 二进制包计数器后,发送给数据解码打包模块;
[0056] 数据解码打包模块将所接到的头微片中的微片头和低位数据、格雷码解码模块的 结果一起打包为解码微片并进行本地存储;或将所接到的解码微片中的微片头、四个数据 反翻转模块的解码结果、格雷码解码模块的结果一起打包为解码微片并进行本地存储。
[0057] 在本实施例中,如表1所示,数据包是由5个微片组成,分别是1个头微片,3个体微 片和1个尾微片;每个微片包含微片头、二进制微片计数器、二进制包计数器、低位数据;
[005引表1为NoC特定的数据包格式 [0化9]
[0060]
[0061] -种应用于片上网络的低功耗联合的编解码方法是按如下步骤进行:
[0062] 步骤1、为方便叙述,W传输一个数据包为例,定义D_i[53:0]、D_o[53:0]代表一个 微片分别作为编码的输入数据和编码的输出数据,定义D_ii[53:0]、D_oo[53:0]代表一个 微片分别作为解码的输入数据和解码的输出数据,并在传输过程中不断更新;编码输入数 据用D_i[53:0]可W表示为:
[0063] 0_1[53:0] = {0_1[53:52],0_1[51:44],0_1[43:32],0_1[31:0]},具体数据如下:
[0064] ①头微片 〇1_〇〇〇〇〇〇〇1_〇〇〇〇〇〇〇〇_〇〇〇1_〇〇〇〇〇〇1〇_〇〇〇〇〇〇1〇_〇〇〇〇〇〇〇1_〇〇〇〇〇〇〇1 [00化]②体微片 11_〇〇〇〇〇〇1〇_〇〇〇〇〇〇〇〇_〇〇〇1_1111111〇_1〇1〇1〇〇1_〇〇11〇〇1〇_11〇〇1〇〇1
[0066] ③体微片 11_〇〇〇〇〇〇11_〇〇〇〇〇〇〇〇_〇〇〇1_1〇〇〇〇1〇1_〇1〇1111〇_1〇1〇1〇1〇_1〇1〇111〇
[0067] ④体微片 11_〇〇〇〇〇1〇〇_〇〇〇〇〇〇〇〇_〇〇〇1_11〇〇〇111_1〇〇〇〇1〇1_〇1〇1〇〇1〇_〇〇〇1〇〇1〇
[0068] ⑤尾微片 1〇_〇〇〇〇〇1〇1_〇〇〇〇〇〇〇〇_〇〇〇1_111〇〇〇1〇_1111〇〇1〇1_〇〇〇〇1〇〇1_ 10111100
[0069] 若接收的数据不为0,则产生数据变化信号data_change,编码电路启动,对数据包 中任意一个微片判断是否为头微片,若为头微片,设定头微片标志为1,并将头微 片中的二进制微片计数器、二进制包计数器按图5所示的格雷码编码步骤转换为格雷码计 数器;并将头微片中的微片头和低位数据W及格雷码计数器一起打包为编码微片并发送给 源节点;否则,将微片中的二进制微片计数器低四位、二进制包计数器转换为格雷码计数 器、将微片中的低位数据进行拆分,得到低八位数据、次低八位数据、次高八位数据和高八 位数据;
[0070] 步骤2、如图3所示,定义周期T,第一个体微片到来,没有上次的翻转结果数据与之 进行对比,所W不计算汉明距离,直接把低八位数据、次低八位数据、次高八位数据和高八 位数据寄存在相应的寄存器组化、〇2、化、Q4中,T+1周期,第二个体微片到来,首先将第二个 体微片低八位数据、次低八位数据、次高八位数据和高八位数据寄存在相应的寄存器组化、 化、Q?、舶中,把寄存器组化、化、跑、Q4和寄存器组化、舶、Q?、舶中的低八位数据、次低八位数据、 次高八位数据和高八位数据分别按位取出发送给相应的异或计算器,异或计算器计算得出 每一位的异或值发送给加法器,由加法器计算得到最终的低位汉明距离6、次低位汉明距离 7、次高位汉明距离3和高位汉明距离5,在T+2、T+3周期,重复执行步骤2;
[0071] 步骤3、T+1周期,根据低位汉明距离6、次低位汉明距离7、次高位汉明距离3和高位 汉明距离5分别判断是否大于所设定的阔值4,若大于,则将相应的低八位数据、次低八位数 据、次高八位数据或高八位数据进行按位取反操作,并设定相应的翻转标识,否则,保持相 应的低八位数据、次低八位数据、次高八位数据或高八位数据不变,并设定相应的翻转标 识,所有翻转标志放置在相应微片的微片计数器的高四位中,从而获得翻转结果,如图4所 示,本例中低位汉明距离6、次低位汉明距离7和高位汉明距离5都大于阔值4,所W对低八位 数据、次低八位数据和高八位数据按位取反作为翻转结果,并设置相应的翻转标志为1,次 高八位数据的次高位汉明距离3小于阔值4,所W次高八位数据直接作为翻转结果,翻转标 志为0,在T+2、T+3周期,重复执行步骤3;
[0072] 步骤4、将微片中的微片头、格雷码计数器、翻转结果、翻转标志一起打包为编码微 片并发送给源节点,编码微片的数据格式为:
[0073] D_o[53:0]={D_o[53:52],inv3,inv2,invl,inv0,D_o[47:44],D_o[43:32],D_o [31:24],D_〇[23:16],D_〇[15:8],D_〇[7:0]}
[0074] 本实施例中,5个编码微片分别为:
[00 巧]①头微片 〇1_〇〇〇〇_〇〇〇1_〇〇〇〇〇〇〇〇_〇〇〇1_〇〇〇〇〇〇1〇_〇〇〇〇〇〇1〇_〇〇〇〇〇〇〇1_ 00000001
[0076] ②体微片 11_〇〇〇〇_〇〇11_〇〇〇〇〇〇〇〇_〇〇〇1_1111111〇_1〇1〇1〇〇1_〇〇11〇〇1〇_ 11001001
[0077] ③体微片 11_11〇1_〇〇1〇_〇〇〇〇〇〇〇〇_〇〇〇1_〇1111〇1〇_1〇1〇〇〇〇1_1〇1〇1〇1〇_ 01010001
[007引 ④体微片 11_1010_0110_00000000_0001_00111000_10000101_10101101_ 00010010
[00 巧]⑤尾微片 1〇_1〇〇1_〇111_〇〇〇〇〇〇〇〇_〇〇〇1_〇〇〇111〇1_1111〇〇1〇1_〇〇〇〇1〇〇1_ 01000011;
[0080] 步骤5、源节点将编码微片经过片上网络进行传输后到达目的节点;
[0081] 步骤6、对目的节点所输出的编码微片判断是否为头微片,若为头微片,则将头微 片中的雷码计数器按图8所示的格雷码解码步骤转换为二进制微片计数器、二进制包计数 器后,并将二进制微片计数器、二进制包计数器W及头微片中的微片头和低位数据一起打 包为解码微片并进行本地存储;否则,将编码微片中的雷码计数器转换为二进制微片计数 器、二进制包计数器,将翻转结果进行拆分,得到编码结果的低八位数据、次低八位数据、次 高八位数据和高八位数据;
[0082] 步骤7、根据相应的翻转标识将编码结果的低八位数据、次低八位数据、次高八位 数据和高八位数据进行处理,得到解码结果的低八位数据、次低八位数据、次高八位数据和 高八位数据,如图7所示,本例中T+1周期,编码结果的低八位数据、次低八位数据和高八位 数据对应的翻转标志为1,对编码结果的低八位数据、次低八位数据、次高八位数据和高八 位数据按位取反作为解码结果,编码结果的次高八位数据对应的翻转标志为0,编码结果的 次高八位数据直接输出作为编码结果的次高八位数据,Τ+2、Τ+3周期,重复执行步骤7;
[0083] 步骤8、将所接到的解码微片中的微片头、解码结果的低八位数据、次低八位数据、 次高八位数据和高八位数据、二进制微片计数器、二进制包计数器一起打包为解码微片并 进行本地存储,本实施例中,5个解码微片和原始的5个微片一样,分别为:
[0084] ①头微片 〇1_〇〇〇〇〇〇〇1_〇〇〇〇〇〇〇〇_〇〇〇1_〇〇〇〇〇〇1〇_〇〇〇〇〇〇1〇_〇〇〇〇〇〇〇1_〇〇〇〇〇〇〇1
[00 化]②体微片 11_〇〇〇〇〇〇1〇_〇〇〇〇〇〇〇〇_〇〇〇1_1111111〇_1〇1〇1〇〇1_〇〇11〇〇1〇_11〇〇1〇〇1 [00 化]③体微片 11_〇〇〇〇〇〇11_〇〇〇〇〇〇〇〇_〇〇〇1_1〇〇〇〇1〇1_〇1〇1111〇_1〇1〇1〇1〇_1〇1〇111〇
[0087] ④体微片 11_〇〇〇〇〇1〇〇_〇〇〇〇〇〇〇〇_〇〇〇1_11〇〇〇111_1〇〇〇〇1〇1_〇1〇1〇〇1〇_〇〇〇1〇〇1〇
[0088] ⑤尾微片 1〇_〇〇〇〇〇1〇1_〇〇〇〇〇〇〇〇_〇〇〇1_111〇〇〇1〇_1111〇〇1〇1_〇〇〇〇1〇〇1_ 10111100。
[0089] 在2x2的最小NoC上实验得到,发包量为1000个微片时,现有NoC平台总功耗为 0.2426W、0.2424W,总面积为 45:345556.039258皿2、45:345555.489579皿2,挂载了联合编码电 路后的总功耗为 0.2132W、0.2122W,面积为47906903.531432um2、47906901.987846um 2。本发 明与现有的NoC平台相比总功耗降低12.1%,总面积增加5.6%,总功耗和总面积对比图分 别如图9和图10所示,如果片上网络的规模扩大,发包量更大时,整个编解码电路降低功耗 的效果会更加明显。
【主权项】
1. 一种应用于片上网络的低功耗联合的编解码电路,所述片上网络为MXN的二维网 络;并用于传输外部的数据包;定义接收到所述数据包的路由节点为源节点,输出所述数据 包的路由节点为目的节点;所述数据包是由η个微片组成,分别是1个头微片,n-2个体微片 和1个尾微片;每个微片包含微片头、二进制微片计数器、二进制包计数器、低位数据;其特 征是: 在所述源节点的输入端设置有编码电路,在所述目的节点的输出端设置有解码电路; 所述编码电路包括:编码判断拆分模块、四个汉明距离计算模块、四个数据翻转模块、 格雷码编码模块、数据编码打包模块; 所述编码判断拆分模块接收任意一个微片,并判断是否为头微片,若为头微片,则将头 微片中的微片头和低位数据都发送给所述数据编码打包模块、并将头微片中的二进制微片 计数器、二进制包计数器发送给所述格雷码编码模块;否则,将所接收的微片中的微片头发 送给所述数据编码打包模块、并将所接收的微片中的二进制微片计数器、二进制包计数器 发送给所述格雷码编码模块、并将所接收的微片中的低位数据进行拆分,得到低八位数据、 次低八位数据、次高八位数据和高八位数据后依次发送给所述四个汉明距离计算模块; 所述四个汉明距离计算模块分别接收所述低八位数据、次低八位数据、次高八位数据 和高八位数据后进行计算,得到低位汉明距离、次低位汉明距离、次高位汉明距离和高位汉 明距离,并发送给所述四个数据翻转模块; 所述四个数据翻转模块根据所接到的低位汉明距离、次低位汉明距离、次高位汉明距 离和高位汉明距离分别判断是否大于所设定的阈值,若大于,则将相应的低八位数据、次低 八位数据、次高八位数据或高八位数据进行按位取反操作,并设定相应的翻转标识,否则, 保持相应的低八位数据、次低八位数据、次高八位数据或高八位数据不变,并设定相应的翻 转标识,并将所有的翻转标志放在相应微片中微片计数器的冗余位上,从而获得翻转结果 发送给所述数据编码打包模块,以及四个汉明距离计算模块用于下一个微片的计算; 所述格雷码编码模块将所接收到的微片中的二进制微片计数器、二进制包计数器转换 为格雷码计数器并发送给所述数据编码打包模块; 所述数据编码打包模块将所接到的微片中的微片头和低位数据、格雷码计数器一起打 包为编码微片并发送给所述源节点;或将所接到的微片中的微片头、四个数据翻转模块的 翻转结果以及翻转标识、格雷码计数器一起打包为编码微片并发送给所述源节点; 所述解码电路包括:解码判断拆分模块、四个数据反翻转模块、格雷码解码模块、数据 解码打包模块; 所述解码判断拆分模块接收到所述目的节点输出的编码微片,并判断是否为头微片, 若为头微片,则将头微片中的微片头和低位数据都发送给所述数据解码打包模块、将头微 片中的雷码计数器发送给所述格雷码解码模块;否则,将所述编码微片中的微片头发送给 所述数据解码打包模块、将所述编码微片中的雷码计数器发送给所述格雷码解码模块;并 将四个数据翻转模块的翻转结果进行拆分,得到编码结果的低八位数据、次低八位数据、次 高八位数据和高八位数据并分别发送给所述四个数据反翻转模块; 所述四个数据反翻转模块分别根据相应的翻转标识将所述编码结果的低八位数据、次 低八位数据、次高八位数据和高八位数据进行处理,得到解码结果的低八位数据、次低八位 数据、次高八位数据和高八位数据后发送给所述数据解码打包模块; 所述格雷码解码模块将所接收到编码微片中的雷码计数器转换为二进制微片计数器、 二进制包计数器后,发送给所述数据解码打包模块; 所述数据解码打包模块将所接到的头微片中的微片头和低位数据、格雷码解码模块的 结果一起打包为解码微片并进行本地存储;或将所接到的解码微片中的微片头、四个数据 反翻转模块的解码结果、格雷码解码模块的结果一起打包为解码微片并进行本地存储。2.-种应用于片上网络的低功耗联合的编解码方法,所述片上网络为MXN的二维网 络;并用于传输外部的数据包;定义接收到所述数据包的路由节点为源节点,输出所述数据 包的路由节点为目的节点;所述数据包是由5个微片组成,分别是1个头微片,3个体微片和1 个尾微片;每个微片包含微片头、二进制微片计数器、二进制包计数器、低位数据;其特征是 所述编解码方法是按如下步骤进行: 步骤1、对所述数据包中任意一个微片判断是否为头微片,若为头微片,则将头微片中 的二进制微片计数器、二进制包计数器转换为格雷码计数器;并将头微片中的微片头和低 位数据以及所述格雷码计数器一起打包为编码微片并发送给所述源节点;否则,将所述微 片中除去冗余位后的二进制微片计数器、二进制包计数器转换为格雷码计数器、将所述微 片中的低位数据进行拆分,得到低八位数据、次低八位数据、次高八位数据和高八位数据; 步骤2、所述低八位数据、次低八位数据、次高八位数据和高八位数据进行计算得到低 位汉明距离、次低位汉明距离、次高位汉明距离和高位汉明距离; 步骤3、根据所述低位汉明距离、次低位汉明距离、次高位汉明距离分别判断是否大于 所设定的阈值,若大于,则将相应的低八位数据、次低八位数据、次高八位数据或高八位数 据进行按位取反操作,并设定相应的翻转标识,否则,保持相应的低八位数据、次低八位数 据、次高八位数据或高八位数据不变,并设定相应的翻转标识,并将所有翻转标志放在相应 微片中微片计数器的冗余位上,从而获得翻转结果; 步骤4、将所述微片中的微片头、格雷码计数器、翻转结果、翻转标识一起打包为编码微 片并发送给所述源节点; 步骤5、所述源节点将编码微片经过所述片上网络进行传输后到达目的节点; 步骤6、对所述目的节点所输出的编码微片判断是否为头微片,若为头微片,则将头微 片中的雷码计数器转换为二进制微片计数器、二进制包计数器后,并将二进制微片计数器、 二进制包计数器以及头微片中的微片头和低位数据一起打包为解码微片并进行本地存储; 否则,将所述编码微片中的雷码计数器转换为二进制微片计数器、二进制包计数器,将翻转 结果进行拆分,得到编码结果的低八位数据、次低八位数据、次高八位数据和高八位数据; 步骤7、根据相应的翻转标识将所述编码结果的低八位数据、次低八位数据、次高八位 数据和高八位数据进行处理,得到解码结果的低八位数据、次低八位数据、次高八位数据和 高八位数据; 步骤8、将所接到的解码微片中的微片头、解码结果的低八位数据、次低八位数据、次高 八位数据和高八位数据、二进制微片计数器、二进制包计数器一起打包为解码微片并进行 本地存储。
【文档编号】H03M7/26GK106059592SQ201610347303
【公开日】2016年10月26日
【申请日】2016年5月19日
【发明人】杜高明, 马世碧, 张多利, 宋宇鲲, 李向阳, 尹勇生
【申请人】合肥工业大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1