CN106059592A - 一种应用于片上网络的低功耗联合的编解码电路及其编解码方法 - Google Patents
一种应用于片上网络的低功耗联合的编解码电路及其编解码方法 Download PDFInfo
- Publication number
- CN106059592A CN106059592A CN201610347303.XA CN201610347303A CN106059592A CN 106059592 A CN106059592 A CN 106059592A CN 201610347303 A CN201610347303 A CN 201610347303A CN 106059592 A CN106059592 A CN 106059592A
- Authority
- CN
- China
- Prior art keywords
- microplate
- bit data
- data
- low
- module
- 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
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/14—Conversion to or from non-weighted codes
- H03M7/16—Conversion to or from unit-distance codes, e.g. Gray code, reflected binary code
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/26—Conversion to or from stochastic codes
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Error Detection And Correction (AREA)
Abstract
本发明公开了一种应用于片上网络的低功耗联合的编解码电路及其编解码方法,其特征是,在源节点的输入端设置有编码电路,在目的节点的输出端设置有解码电路;编码电路包括:编码判断拆分模块、四个汉明距离计算模块、四个数据翻转模块、格雷码编码模块、数据编码打包模块;解码电路包括:解码判断拆分模块、四个数据反翻转模块、格雷码解码模块、数据解码打包模块。本发明能降低传输数据的翻转率,从而降低整个片上网络的功耗,并保证数据传输的正确性。
Description
技术领域
本发明属于集成电路片上网络的通信技术领域,尤其涉及一种应用于片上网络的分组反转编码和格雷码编码低功耗联合的编解码电路及其编解码方法。
背景技术
随着集成电路特征尺寸缩小,时钟频率增大,单个芯片上集成的晶体管数量超过10亿数量级,互连线密度不断提高,能量消耗已逐渐成为芯片设计的主要瓶颈;由此可见,片上网络(Network On Chip,NoC)的功耗成为影响芯片性能的关键因素;NoC的动态功耗主要包括节点功耗和网络功耗,节点功耗是路由节点内部操作产生的功耗,网络功耗是数据在网络中从源节点向目的节点传输时在互连网络上产生的功耗;当大量数据在NoC中从源节点向目的节点传输时,相邻传输数据之间高的翻转率,导致NoC产生很大的互连线网络功耗。
现有技术中,分组总线反转(Bus Invert,BI)编码是常用于数据总线的低功耗编码方法,格雷码编码是常用于地址总线的低功耗编码方法,它们都是用于总线低功耗编码而不是NoC低功耗设计中;BI码适用于随机数据,本身需要增加额外的冗余标志位,并且效果随着数据位宽的增加而减小,对连续数据有很大的局限性,格雷码适用于连续数据,对随机数据有很大的局限性;针对现有的NoC平台,传输的数据既有随机数据,又有连续数据,单独使用BI码或单独使用格雷码,NoC的功耗都只能降低很小一部分,再加上编码电路自身的面积开销,降低功耗的整体效果非常不明显,目前,没有发现BI码和格雷码联合应用于NoC的低功耗设计。
发明内容
本发明为克服现有NoC平台大量随机数据和连续数据传输的功耗问题,提出了一种应用于片上网络的低功耗联合的编解码电路及其编解码方法,旨在降低NoC中传输数据的翻转率,从而降低整个NoC的功耗,并保证数据传输的正确性。
本发明为达到上述目的所采用的技术方案是:
本发明一种应用于片上网络的低功耗联合的编解码电路,所述片上网络为M×N的二维网络;并用于传输外部的数据包;定义接收到所述数据包的路由节点为源节点,输出所述数据包的路由节点为目的节点;所述数据包是由n个微片组成,分别是1个头微片,n-2个体微片和1个尾微片;每个微片包含微片头、二进制微片计数器、二进制包计数器、低位数据;其特点是:
在所述源节点的输入端设置有编码电路,在所述目的节点的输出端设置有解码电路;
所述编码电路包括:编码判断拆分模块、四个汉明距离计算模块、四个数据翻转模块、格雷码编码模块、数据编码打包模块;
所述编码判断拆分模块接收任意一个微片,并判断是否为头微片,若为头微片,则将头微片中的微片头和低位数据都发送给所述数据编码打包模块、并将头微片中的二进制微片计数器、二进制包计数器发送给所述格雷码编码模块;否则,将所接收的微片中的微片头发送给所述数据编码打包模块、并将所接收的微片中的二进制微片计数器、二进制包计数器发送给所述格雷码编码模块、并将所接收的微片中的低位数据进行拆分,得到低八位数据、次低八位数据、次高八位数据和高八位数据后依次发送给所述四个汉明距离计算模块;
所述四个汉明距离计算模块分别接收所述低八位数据、次低八位数据、次高八位数据和高八位数据后进行计算,得到低位汉明距离、次低位汉明距离、次高位汉明距离和高位汉明距离,并发送给所述四个数据翻转模块;
所述四个数据翻转模块根据所接到的低位汉明距离、次低位汉明距离、次高位汉明距离和高位汉明距离分别判断是否大于所设定的阈值,若大于,则将相应的低八位数据、次低八位数据、次高八位数据或高八位数据进行按位取反操作,并设定相应的翻转标识,否则,保持相应的低八位数据、次低八位数据、次高八位数据或高八位数据不变,并设定相应的翻转标识,并将所有的翻转标志放在相应微片中微片计数器的冗余位上,从而获得翻转结果发送给所述数据编码打包模块,以及四个汉明距离计算模块用于下一个微片的计算;
所述格雷码编码模块将所接收到的微片中的二进制微片计数器、二进制包计数器转换为格雷码计数器并发送给所述数据编码打包模块;
所述数据编码打包模块将所接到的微片中的微片头和低位数据、格雷码计数器一起打包为编码微片并发送给所述源节点;或将所接到的微片中的微片头、四个数据翻转模块的翻转结果以及翻转标识、格雷码计数器一起打包为编码微片并发送给所述源节点;
所述解码电路包括:解码判断拆分模块、四个数据反翻转模块、格雷码解码模块、数据解码打包模块;
所述解码判断拆分模块接收到所述目的节点输出的编码微片,并判断是否为头微片,若为头微片,则将头微片中的微片头和低位数据都发送给所述数据解码打包模块、将头微片中的雷码计数器发送给所述格雷码解码模块;否则,将所述编码微片中的微片头发送给所述数据解码打包模块、将所述编码微片中的雷码计数器发送给所述格雷码解码模块;并将四个数据翻转模块的翻转结果进行拆分,得到编码结果的低八位数据、次低八位数据、次高八位数据和高八位数据并分别发送给所述四个数据反翻转模块;
所述四个数据反翻转模块分别根据相应的翻转标识将所述编码结果的低八位数据、次低八位数据、次高八位数据和高八位数据进行处理,得到解码结果的低八位数据、次低八位数据、次高八位数据和高八位数据后发送给所述数据解码打包模块;
所述格雷码解码模块将所接收到编码微片中的雷码计数器转换为二进制微片计数器、二进制包计数器后,发送给所述数据解码打包模块;
所述数据解码打包模块将所接到的头微片中的微片头和低位数据、格雷码解码模块的结果一起打包为解码微片并进行本地存储;或将所接到的解码微片中的微片头、四个数据反翻转模块的解码结果、格雷码解码模块的结果一起打包为解码微片并进行本地存储。
本发明一种应用于片上网络的低功耗联合的编解码方法,所述片上网络为M×N的二维网络;并用于传输外部的数据包;定义接收到所述数据包的路由节点为源节点,输出所述数据包的路由节点为目的节点;所述数据包是由5个微片组成,分别是1个头微片,3个体微片和1个尾微片;每个微片包含微片头、二进制微片计数器、二进制包计数器、低位数据;其特点是所述编解码方法是按如下步骤进行:
步骤1、对所述数据包中任意一个微片判断是否为头微片,若为头微片,则将头微片中的二进制微片计数器、二进制包计数器转换为格雷码计数器;并将头微片中的微片头和低位数据以及所述格雷码计数器一起打包为编码微片并发送给所述源节点;否则,将所述微片中除去冗余位后的二进制微片计数器、二进制包计数器转换为格雷码计数器、将所述微片中的低位数据进行拆分,得到低八位数据、次低八位数据、次高八位数据和高八位数据;
步骤2、所述低八位数据、次低八位数据、次高八位数据和高八位数据进行计算得到低位汉明距离、次低位汉明距离、次高位汉明距离和高位汉明距离;
步骤3、根据所述低位汉明距离、次低位汉明距离、次高位汉明距离分别判断是否大于所设定的阈值,若大于,则将相应的低八位数据、次低八位数据、次高八位数据或高八位数据进行按位取反操作,并设定相应的翻转标识,否则,保持相应的低八位数据、次低八位数据、次高八位数据或高八位数据不变,并设定相应的翻转标识,并将所有翻转标志放在相应微片中微片计数器的冗余位上,从而获得翻转结果;
步骤4、将所述微片中的微片头、格雷码计数器、翻转结果、翻转标识一起打包为编码微片并发送给所述源节点;
步骤5、所述源节点将编码微片经过所述片上网络进行传输后到达目的节点;
步骤6、对所述目的节点所输出的编码微片判断是否为头微片,若为头微片,则将头微片中的雷码计数器转换为二进制微片计数器、二进制包计数器后,并将二进制微片计数器、二进制包计数器以及头微片中的微片头和低位数据一起打包为解码微片并进行本地存储;否则,将所述编码微片中的雷码计数器转换为二进制微片计数器、二进制包计数器,将翻转结果进行拆分,得到编码结果的低八位数据、次低八位数据、次高八位数据和高八位数据;
步骤7、根据相应的翻转标识将所述编码结果的低八位数据、次低八位数据、次高八位数据和高八位数据进行处理,得到解码结果的低八位数据、次低八位数据、次高八位数据和高八位数据;
步骤8、将所接到的解码微片中的微片头、解码结果的低八位数据、次低八位数据、次高八位数据和高八位数据、二进制微片计数器、二进制包计数器一起打包为解码微片并进行本地存储。
与现有技术相比,本发明的有益技术效果体现在:
1、本发明提出的应用于NoC的低功耗联合的编解码电路及其编解码方法,应用于实际的NoC,通过降低传输数据的翻转率,从而有效降低了NoC的整体功耗,并保证了数据传输的正确性。
2、本发明提出的应用于NoC的低功耗分组BI编解码方法,BI码是常用于随机数据的低功耗编码方法,它能降低NoC平台中随机数据的翻转率,从而有效降低了NoC中随机数据的传输功耗。
3、本发明提出的应用于NoC的低功耗分组BI编解码方法,BI码低功耗编码方法本身要增加额外的翻转标志位,针对特定的NoC平台,每个微片中微片计数器是8位,而微片数为5,微片计数器只需要3为就可以,所以把微片计数器的高四位用于存放BI编码的翻转标志,不添加额外冗余标志,克服了BI编码本身要增加翻转标志的缺陷,从而克服了额外添加标志位增加的自身面积开销。
4、本发明提出的应用于NoC的低功耗格雷码编解码方法,NoC平台中连续数据的数据相关性大,而相邻格雷码之间只有1位数字发生变化,其动态功耗小,格雷码编解码方法能降低NoC平台中连续数据数据的翻转率,从而有效降低了NoC中连续数据的传输功耗。
5、本发明提出的应用于NoC的低功耗联合编解码设计方法,将分组BI编解码和格雷码编解码联合,针对特定的NoC平台,既有连续数据,又有随机数据,克服了单独使用BI编解码对连续数据的局限性和单独使用格雷码编解码对随机数据的局限性。
附图说明
图1为本发明片上网络一次编码一次解码的方式挂载图;
图2为本发明编码电路整体结构图;
图3为本发明编码电路中的汉明距离计算电路图;
图4为本发明编码电路中的数据翻转电路图;
图5为本发明编码电路中的格雷码编码电路图;
图6为本发明解码电路整体结构图;
图7为本发明解码电路中的数据反翻转电路图;
图8为本发明解码电路中的格雷码解码电路图;
图9为本发明挂载编解码模块和不挂载编解码总功耗对比图;
图10为本发明挂载编解码模块和不挂载编解码总面积对比图。
具体实施方式
本实施例中,片上网络为M×N=2×2的最小二维网络;并用于传输外部的数据包;定义接收到数据包的路由节点为源节点,输出数据包的路由节点为目的节点;数据包是由n=5个微片组成,分别是1个头微片,n-2=3个体微片和1个尾微片;每个微片包含微片头、二进制微片计数器、二进制包计数器、低位数据;M和N为大于或等于2的整数;n为大于或等于3的整数;
如图1所示,节点1为源节点,节点4为目的节点,一种应用于片上网络的低功耗联合的编解码电路,是在源节点的输入端设置有编码电路,在目的节点的输出端设置有解码电路;
如图2所示,编码电路包括:编码判断拆分模块、四个汉明距离计算模块、四个数据翻转模块、格雷码编码模块、数据编码打包模块;
编码判断拆分模块根据接收的数据是否为0,判断是否有数据输入,若接收的数据不为0,则产生数据变化信号data_change后发送给总控逻辑,总控逻辑接收到data_change信号启动编码电路,编码判断拆分模块接收任意一个微片,并判断是否为头微片,若为头微片,则将头微片中的微片头和低位数据都发送给数据编码打包模块、并将头微片中的二进制微片计数器、二进制包计数器发送给格雷码编码模块;否则,将所接收的微片中的微片头发送给数据编码打包模块、并将所接收的微片中除去冗余位后的二进制微片计数器低四位、二进制包计数器发送给格雷码编码模块、并将所接收的微片中的低位数据进行拆分,得到低八位数据、次低八位数据、次高八位数据和高八位数据后依次发送给四个汉明距离计算模块;
四个汉明距离计算模块分别接收低八位数据、次低八位数据、次高八位数据和高八位数据后并与上次编码结果进行对比和计算,得到低位汉明距离、次低位汉明距离、次高位汉明距离和高位汉明距离,并发送给四个数据翻转模块;
四个数据翻转模块根据所接到的低位汉明距离、次低位汉明距离、次高位汉明距离和高位汉明距离分别判断是否大于所设定的阈值,若大于,则将相应的低八位数据、次低八位数据、次高八位数据或高八位数据进行按位取反操作作为翻转结果,并设定相应的翻转标识,此时,翻转标志为1,否则,保持相应的低八位数据、次低八位数据、次高八位数据或高八位数据不变直接作为翻转结果,并设定相应的翻转标识,此时,翻转标志为0,并且所有的四个翻转标志放在相应微片的微片计数器的高四位冗余位中,将翻转结果发送给数据编码打包模块,以及四个汉明距离计算模块用于下一个微片的计算;
格雷码编码模块将所接收到的微片中的二进制微片计数器、二进制包计数器转换为格雷码计数器并发送给数据编码打包模块;
数据编码打包模块将所接到的微片中的微片头和低位数据、格雷码计数器一起打包为编码微片并发送给源节点;或将所接到的微片中的微片头、四个数据翻转模块的翻转结果以及翻转标识、格雷码计数器一起打包为编码微片并发送给源节点;
如图6所示,解码电路包括:解码判断拆分模块、四个数据反翻转模块、格雷码解码模块、数据解码打包模块;
解码判断拆分模块接收到目的节点输出的编码微片,并判断是否为头微片,若为头微片,则将头微片中的微片头和低位数据都发送给数据解码打包模块、将头微片中的雷码计数器发送给格雷码解码模块;否则,将编码微片中的微片头发送给数据解码打包模块、将编码微片中的雷码计数器发送给格雷码解码模块;并将四个数据翻转模块的翻转结果进行拆分,得到编码结果的低八位数据、次低八位数据、次高八位数据和高八位数据并分别发送给四个数据反翻转模块;
四个数据反翻转模块分别根据相应的翻转标识将编码结果的低八位数据、次低八位数据、次高八位数据和高八位数据进行处理,若翻转标志为1,则将相应的数据按位取反的得到解码结果,否则直接输出作为解码结果,并将解码结果的低八位数据、次低八位数据、次高八位数据和高八位数据发送给数据解码打包模块;
格雷码解码模块将所接收到编码微片中的雷码计数器转换为二进制微片计数器、二进制包计数器后,发送给数据解码打包模块;
数据解码打包模块将所接到的头微片中的微片头和低位数据、格雷码解码模块的结果一起打包为解码微片并进行本地存储;或将所接到的解码微片中的微片头、四个数据反翻转模块的解码结果、格雷码解码模块的结果一起打包为解码微片并进行本地存储。
在本实施例中,如表1所示,数据包是由5个微片组成,分别是1个头微片,3个体微片和1个尾微片;每个微片包含微片头、二进制微片计数器、二进制包计数器、低位数据;
表1为NoC特定的数据包格式
一种应用于片上网络的低功耗联合的编解码方法是按如下步骤进行:
步骤1、为方便叙述,以传输一个数据包为例,定义D_i[53:0]、D_o[53:0]代表一个微片分别作为编码的输入数据和编码的输出数据,定义D_ii[53:0]、D_oo[53:0]代表一个微片分别作为解码的输入数据和解码的输出数据,并在传输过程中不断更新;编码输入数据用D_i[53:0]可以表示为:
D_i[53:0]={D_i[53:52],D_i[51:44],D_i[43:32],D_i[31:0]},具体数据如下:
①头微片01_00000001_00000000_0001_00000010_00000010_00000001_00000001
②体微片11_00000010_00000000_0001_11111110_10101001_00110010_11001001
③体微片11_00000011_00000000_0001_10000101_01011110_10101010_10101110
④体微片11_00000100_00000000_0001_11000111_10000101_01010010_00010010
⑤尾微片10_00000101_00000000_0001_11100010_111100101_00001001_10111100
若接收的数据不为0,则产生数据变化信号data_change,编码电路启动,对数据包中任意一个微片判断是否为头微片,若为头微片,设定头微片标志is_first为1,并将头微片中的二进制微片计数器、二进制包计数器按图5所示的格雷码编码步骤转换为格雷码计数器;并将头微片中的微片头和低位数据以及格雷码计数器一起打包为编码微片并发送给源节点;否则,将微片中的二进制微片计数器低四位、二进制包计数器转换为格雷码计数器、将微片中的低位数据进行拆分,得到低八位数据、次低八位数据、次高八位数据和高八位数据;
步骤2、如图3所示,定义周期T,第一个体微片到来,没有上次的翻转结果数据与之进行对比,所以不计算汉明距离,直接把低八位数据、次低八位数据、次高八位数据和高八位数据寄存在相应的寄存器组Q1、Q2、Q3、Q4中,T+1周期,第二个体微片到来,首先将第二个体微片低八位数据、次低八位数据、次高八位数据和高八位数据寄存在相应的寄存器组Q5、Q6、Q7、Q8中,把寄存器组Q1、Q2、Q3、Q4和寄存器组Q5、Q6、Q7、Q8中的低八位数据、次低八位数据、次高八位数据和高八位数据分别按位取出发送给相应的异或计算器,异或计算器计算得出每一位的异或值发送给加法器,由加法器计算得到最终的低位汉明距离6、次低位汉明距离7、次高位汉明距离3和高位汉明距离5,在T+2、T+3周期,重复执行步骤2;
步骤3、T+1周期,根据低位汉明距离6、次低位汉明距离7、次高位汉明距离3和高位汉明距离5分别判断是否大于所设定的阈值4,若大于,则将相应的低八位数据、次低八位数据、次高八位数据或高八位数据进行按位取反操作,并设定相应的翻转标识,否则,保持相应的低八位数据、次低八位数据、次高八位数据或高八位数据不变,并设定相应的翻转标识,所有翻转标志放置在相应微片的微片计数器的高四位中,从而获得翻转结果,如图4所示,本例中低位汉明距离6、次低位汉明距离7和高位汉明距离5都大于阈值4,所以对低八位数据、次低八位数据和高八位数据按位取反作为翻转结果,并设置相应的翻转标志为1,次高八位数据的次高位汉明距离3小于阈值4,所以次高八位数据直接作为翻转结果,翻转标志为0,在T+2、T+3周期,重复执行步骤3;
步骤4、将微片中的微片头、格雷码计数器、翻转结果、翻转标志一起打包为编码微片并发送给源节点,编码微片的数据格式为:
D_o[53:0]={D_o[53:52],inv3,inv2,inv1,inv0,D_o[47:44],D_o[43:32],D_o[31:24],D_o[23:16],D_o[15:8],D_o[7:0]}
本实施例中,5个编码微片分别为:
①头微片01_0000_0001_00000000_0001_00000010_00000010_00000001_00000001
②体微片11_0000_0011_00000000_0001_11111110_10101001_00110010_11001001
③体微片11_1101_0010_00000000_0001_01111010_10100001_10101010_01010001
④体微片11_1010_0110_00000000_0001_00111000_10000101_10101101_00010010
⑤尾微片10_1001_0111_00000000_0001_00011101_111100101_00001001_01000011;
步骤5、源节点将编码微片经过片上网络进行传输后到达目的节点;
步骤6、对目的节点所输出的编码微片判断是否为头微片,若为头微片,则将头微片中的雷码计数器按图8所示的格雷码解码步骤转换为二进制微片计数器、二进制包计数器后,并将二进制微片计数器、二进制包计数器以及头微片中的微片头和低位数据一起打包为解码微片并进行本地存储;否则,将编码微片中的雷码计数器转换为二进制微片计数器、二进制包计数器,将翻转结果进行拆分,得到编码结果的低八位数据、次低八位数据、次高八位数据和高八位数据;
步骤7、根据相应的翻转标识将编码结果的低八位数据、次低八位数据、次高八位数据和高八位数据进行处理,得到解码结果的低八位数据、次低八位数据、次高八位数据和高八位数据,如图7所示,本例中T+1周期,编码结果的低八位数据、次低八位数据和高八位数据对应的翻转标志为1,对编码结果的低八位数据、次低八位数据、次高八位数据和高八位数据按位取反作为解码结果,编码结果的次高八位数据对应的翻转标志为0,编码结果的次高八位数据直接输出作为编码结果的次高八位数据,T+2、T+3周期,重复执行步骤7;
步骤8、将所接到的解码微片中的微片头、解码结果的低八位数据、次低八位数据、次高八位数据和高八位数据、二进制微片计数器、二进制包计数器一起打包为解码微片并进行本地存储,本实施例中,5个解码微片和原始的5个微片一样,分别为:
①头微片01_00000001_00000000_0001_00000010_00000010_00000001_00000001
②体微片11_00000010_00000000_0001_11111110_10101001_00110010_11001001
③体微片11_00000011_00000000_0001_10000101_01011110_10101010_10101110
④体微片11_00000100_00000000_0001_11000111_10000101_01010010_00010010
⑤尾微片10_00000101_00000000_0001_11100010_111100101_00001001_10111100。
在2x2的最小NoC上实验得到,发包量为1000个微片时,现有NoC平台总功耗为0.2426W、0.2424W,总面积为45345556.039258um2、45345555.489579um2,挂载了联合编码电路后的总功耗为0.2132W、0.2122W,面积为47906903.531432um2、47906901.987846um2。本发明与现有的NoC平台相比总功耗降低12.1%,总面积增加5.6%,总功耗和总面积对比图分别如图9和图10所示,如果片上网络的规模扩大,发包量更大时,整个编解码电路降低功耗的效果会更加明显。
Claims (2)
1.一种应用于片上网络的低功耗联合的编解码电路,所述片上网络为M×N的二维网络;并用于传输外部的数据包;定义接收到所述数据包的路由节点为源节点,输出所述数据包的路由节点为目的节点;所述数据包是由n个微片组成,分别是1个头微片,n-2个体微片和1个尾微片;每个微片包含微片头、二进制微片计数器、二进制包计数器、低位数据;其特征是:
在所述源节点的输入端设置有编码电路,在所述目的节点的输出端设置有解码电路;
所述编码电路包括:编码判断拆分模块、四个汉明距离计算模块、四个数据翻转模块、格雷码编码模块、数据编码打包模块;
所述编码判断拆分模块接收任意一个微片,并判断是否为头微片,若为头微片,则将头微片中的微片头和低位数据都发送给所述数据编码打包模块、并将头微片中的二进制微片计数器、二进制包计数器发送给所述格雷码编码模块;否则,将所接收的微片中的微片头发送给所述数据编码打包模块、并将所接收的微片中的二进制微片计数器、二进制包计数器发送给所述格雷码编码模块、并将所接收的微片中的低位数据进行拆分,得到低八位数据、次低八位数据、次高八位数据和高八位数据后依次发送给所述四个汉明距离计算模块;
所述四个汉明距离计算模块分别接收所述低八位数据、次低八位数据、次高八位数据和高八位数据后进行计算,得到低位汉明距离、次低位汉明距离、次高位汉明距离和高位汉明距离,并发送给所述四个数据翻转模块;
所述四个数据翻转模块根据所接到的低位汉明距离、次低位汉明距离、次高位汉明距离和高位汉明距离分别判断是否大于所设定的阈值,若大于,则将相应的低八位数据、次低八位数据、次高八位数据或高八位数据进行按位取反操作,并设定相应的翻转标识,否则,保持相应的低八位数据、次低八位数据、次高八位数据或高八位数据不变,并设定相应的翻转标识,并将所有的翻转标志放在相应微片中微片计数器的冗余位上,从而获得翻转结果发送给所述数据编码打包模块,以及四个汉明距离计算模块用于下一个微片的计算;
所述格雷码编码模块将所接收到的微片中的二进制微片计数器、二进制包计数器转换为格雷码计数器并发送给所述数据编码打包模块;
所述数据编码打包模块将所接到的微片中的微片头和低位数据、格雷码计数器一起打包为编码微片并发送给所述源节点;或将所接到的微片中的微片头、四个数据翻转模块的翻转结果以及翻转标识、格雷码计数器一起打包为编码微片并发送给所述源节点;
所述解码电路包括:解码判断拆分模块、四个数据反翻转模块、格雷码解码模块、数据解码打包模块;
所述解码判断拆分模块接收到所述目的节点输出的编码微片,并判断是否为头微片,若为头微片,则将头微片中的微片头和低位数据都发送给所述数据解码打包模块、将头微片中的雷码计数器发送给所述格雷码解码模块;否则,将所述编码微片中的微片头发送给所述数据解码打包模块、将所述编码微片中的雷码计数器发送给所述格雷码解码模块;并将四个数据翻转模块的翻转结果进行拆分,得到编码结果的低八位数据、次低八位数据、次高八位数据和高八位数据并分别发送给所述四个数据反翻转模块;
所述四个数据反翻转模块分别根据相应的翻转标识将所述编码结果的低八位数据、次低八位数据、次高八位数据和高八位数据进行处理,得到解码结果的低八位数据、次低八位数据、次高八位数据和高八位数据后发送给所述数据解码打包模块;
所述格雷码解码模块将所接收到编码微片中的雷码计数器转换为二进制微片计数器、二进制包计数器后,发送给所述数据解码打包模块;
所述数据解码打包模块将所接到的头微片中的微片头和低位数据、格雷码解码模块的结果一起打包为解码微片并进行本地存储;或将所接到的解码微片中的微片头、四个数据反翻转模块的解码结果、格雷码解码模块的结果一起打包为解码微片并进行本地存储。
2.一种应用于片上网络的低功耗联合的编解码方法,所述片上网络为M×N的二维网络;并用于传输外部的数据包;定义接收到所述数据包的路由节点为源节点,输出所述数据包的路由节点为目的节点;所述数据包是由5个微片组成,分别是1个头微片,3个体微片和1个尾微片;每个微片包含微片头、二进制微片计数器、二进制包计数器、低位数据;其特征是所述编解码方法是按如下步骤进行:
步骤1、对所述数据包中任意一个微片判断是否为头微片,若为头微片,则将头微片中的二进制微片计数器、二进制包计数器转换为格雷码计数器;并将头微片中的微片头和低位数据以及所述格雷码计数器一起打包为编码微片并发送给所述源节点;否则,将所述微片中除去冗余位后的二进制微片计数器、二进制包计数器转换为格雷码计数器、将所述微片中的低位数据进行拆分,得到低八位数据、次低八位数据、次高八位数据和高八位数据;
步骤2、所述低八位数据、次低八位数据、次高八位数据和高八位数据进行计算得到低位汉明距离、次低位汉明距离、次高位汉明距离和高位汉明距离;
步骤3、根据所述低位汉明距离、次低位汉明距离、次高位汉明距离分别判断是否大于所设定的阈值,若大于,则将相应的低八位数据、次低八位数据、次高八位数据或高八位数据进行按位取反操作,并设定相应的翻转标识,否则,保持相应的低八位数据、次低八位数据、次高八位数据或高八位数据不变,并设定相应的翻转标识,并将所有翻转标志放在相应微片中微片计数器的冗余位上,从而获得翻转结果;
步骤4、将所述微片中的微片头、格雷码计数器、翻转结果、翻转标识一起打包为编码微片并发送给所述源节点;
步骤5、所述源节点将编码微片经过所述片上网络进行传输后到达目的节点;
步骤6、对所述目的节点所输出的编码微片判断是否为头微片,若为头微片,则将头微片中的雷码计数器转换为二进制微片计数器、二进制包计数器后,并将二进制微片计数器、二进制包计数器以及头微片中的微片头和低位数据一起打包为解码微片并进行本地存储;否则,将所述编码微片中的雷码计数器转换为二进制微片计数器、二进制包计数器,将翻转结果进行拆分,得到编码结果的低八位数据、次低八位数据、次高八位数据和高八位数据;
步骤7、根据相应的翻转标识将所述编码结果的低八位数据、次低八位数据、次高八位数据和高八位数据进行处理,得到解码结果的低八位数据、次低八位数据、次高八位数据和高八位数据;
步骤8、将所接到的解码微片中的微片头、解码结果的低八位数据、次低八位数据、次高八位数据和高八位数据、二进制微片计数器、二进制包计数器一起打包为解码微片并进行本地存储。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610347303.XA CN106059592B (zh) | 2016-05-19 | 2016-05-19 | 一种应用于片上网络的低功耗联合的编解码电路及其编解码方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610347303.XA CN106059592B (zh) | 2016-05-19 | 2016-05-19 | 一种应用于片上网络的低功耗联合的编解码电路及其编解码方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106059592A true CN106059592A (zh) | 2016-10-26 |
CN106059592B CN106059592B (zh) | 2019-03-08 |
Family
ID=57174317
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610347303.XA Active CN106059592B (zh) | 2016-05-19 | 2016-05-19 | 一种应用于片上网络的低功耗联合的编解码电路及其编解码方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106059592B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107682020A (zh) * | 2017-10-26 | 2018-02-09 | 北京邮电大学 | 一种基于Turbo码的编码、解码方法及装置 |
CN110688813A (zh) * | 2019-08-19 | 2020-01-14 | 上海亿算科技有限公司 | 降低芯片逻辑翻转率的方法及结构 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101488923A (zh) * | 2009-01-08 | 2009-07-22 | 浙江大学 | 一种片上网络数据包编码优化的实现方法 |
CN102130691A (zh) * | 2010-01-13 | 2011-07-20 | 电子科技大学 | 一种联合不等能力保护和串扰避免的片上总线编码 |
US20140229720A1 (en) * | 2013-02-08 | 2014-08-14 | International Business Machines Corporation | Branch prediction with power usage prediction and control |
-
2016
- 2016-05-19 CN CN201610347303.XA patent/CN106059592B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101488923A (zh) * | 2009-01-08 | 2009-07-22 | 浙江大学 | 一种片上网络数据包编码优化的实现方法 |
CN102130691A (zh) * | 2010-01-13 | 2011-07-20 | 电子科技大学 | 一种联合不等能力保护和串扰避免的片上总线编码 |
US20140229720A1 (en) * | 2013-02-08 | 2014-08-14 | International Business Machines Corporation | Branch prediction with power usage prediction and control |
Non-Patent Citations (1)
Title |
---|
谢国梁: "NoC总线编码技术研究", 《中国优秀硕士学位论文全文数据库信息科技辑》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107682020A (zh) * | 2017-10-26 | 2018-02-09 | 北京邮电大学 | 一种基于Turbo码的编码、解码方法及装置 |
CN107682020B (zh) * | 2017-10-26 | 2020-09-04 | 北京邮电大学 | 一种基于Turbo码的编码、解码方法及装置 |
CN110688813A (zh) * | 2019-08-19 | 2020-01-14 | 上海亿算科技有限公司 | 降低芯片逻辑翻转率的方法及结构 |
CN110688813B (zh) * | 2019-08-19 | 2023-04-25 | 青芯半导体科技(上海)有限公司 | 降低芯片逻辑翻转率的方法及结构 |
Also Published As
Publication number | Publication date |
---|---|
CN106059592B (zh) | 2019-03-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100531386C (zh) | 一种上下文自适应二进制算术编码器及其方法 | |
Murmann et al. | Mixed-signal circuits for embedded machine-learning applications | |
CN107633298B (zh) | 一种基于模型压缩的递归神经网络加速器的硬件架构 | |
CN101951516B (zh) | 基于h.264/avc中cabac的并行编码实现电路及编码方法 | |
CN109409518A (zh) | 神经网络模型处理方法、装置及终端 | |
US9430600B2 (en) | Cell library and method for designing an asynchronous integrated circuit | |
WO2010135942A1 (zh) | 快速循环冗余校验编码方法及装置 | |
CN103929642A (zh) | 一种hevc变换系数的熵编码上下文模型偏移值快速计算方法 | |
JP2012074051A (ja) | 任意のアルゴリズムを並列計算するための再構成可能な論理回路装置 | |
CN102801974B (zh) | 基于cabac的图像压缩熵编码器 | |
CN106059592A (zh) | 一种应用于片上网络的低功耗联合的编解码电路及其编解码方法 | |
CN109587483A (zh) | 码流提取模块 | |
Ghosh et al. | Data correlation aware serial encoding for low switching power on-chip communication | |
Ratna et al. | Design and Implementation of Low Power 32-bit Comparator | |
CN108959168A (zh) | 基于片上内存的sha512全流水电路及其实现方法 | |
Prasad et al. | An energy-efficient network-on-chip-based reconfigurable Viterbi decoder architecture | |
Maragkoudaki et al. | Energy-efficient time-based adaptive encoding for off-chip communication | |
CN106921859A (zh) | 一种基于fpga的cabac熵编码方法与装置 | |
Saidi et al. | Implementation of reed solomon encoder on low-latency embedded fpga in flexible soc based on arm processor | |
CN109800872B (zh) | 一种基于分段复用和参数量化共享的神经形态处理器 | |
CN109922341A (zh) | Avs2高级熵编码器实现方法及装置 | |
CN112883982B (zh) | 一种面向神经网络稀疏特征的数据去零编码及封装方法 | |
US7057546B1 (en) | Binary priority encoder | |
CN105302764B (zh) | 模式选择平衡编码互连 | |
CN104252560A (zh) | 基于现场可编程门阵列的集中缓存式装置及设计方法 |
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 | ||
TR01 | Transfer of patent right |
Effective date of registration: 20210107 Address after: 245000 No.50, Meilin Avenue, Huangshan Economic Development Zone, Huangshan City, Anhui Province Patentee after: Huangshan Development Investment Group Co.,Ltd. Address before: Tunxi road in Baohe District of Hefei city of Anhui Province, No. 193 230009 Patentee before: Hefei University of Technology |
|
TR01 | Transfer of patent right |