Dvb系统中csa3解扰算法模块的低功耗实现方法

文档序号:7801342阅读:537来源:国知局
专利名称:Dvb系统中csa3解扰算法模块的低功耗实现方法
DVB系统中CSA3解扰算法模块的低功耗实现方法技术领域
本发明属于数字电视条件接收领域,特别涉及DVB系统中CSA3解扰算法模块的低功耗实现方法。
背景技术
数字传输技术的迅速发展和广泛应用,互联网、电脑等新兴的传输方式和多媒体终端大大拓展了广播影视内容的传播范围,同时也带来了广播影视节目内容易盗版、易保留、易复制等一系列问题,大大降低了商业性再利用的价值,造成内容提供者的权益屡屡被侵害,严重挫伤其推广数字电视的积极性,进而损害了观众欣赏优质节目的权益,影响当前数字电视整体转换的健康发展。
数字化广播影视内容的盗版和侵权问题已经引起全世界的关注。欧洲数字电视采用DVB标准来解决数字电视版权保护问题。DVB组织要求数字电视内容在前端发送时需要采用通用加扰算法(又称为条件接收系统,Conditional Access System, CSA)进行加扰,在接收终端利用CSA算法对接收到数字电视内容进行解扰。接收终端解扰用的控制字,通过条件接收系统获得。数字电视的版权保护依赖条件接收系统的安全性。
DVB组织先后对CSA算法进行了升级,目前DVB支持的CSA算法包括CSAl、CSA2和 CSA3三种算法及各条件接收供应商在这三种算法基础上衍生出的变种算法。
图I是CSA3算法的基本结构。CSA3算法的基本结构由3层分组密码算法组成,其中头尾两层是同一种AES变种算法,而中间一层是称为XRC (extended emulation Resistant Cipher)的分组密码算法。CSA3算法的初始工作密钥长度固定为128_bit,其后两层分组密码算法的输入密钥是以初始工作密钥为初始自变量通过一种单向函数获得的。
CSA3算法中最复杂的模块是XRC分组算法模块。XRC的输入分组数据、工作密钥以及输出分组数据的长度都是128-bit。一次XRC运算需要进行22轮迭代运算。
XRC是一个Feistel分组加密结构的密码算法模块,图2是其Feistel结构。其中,一个称作CKR (Combine Key RightPart)的不可逆函数,会将100-bit当前轮的轮密钥RKi和64-bit当前轮分组数据的右半部分Ri作为输入,经过各种组合逻辑运算获得 64-bit 输出;一个称作 CLR (Combine LeftPart RightPart)的可逆函数(其逆称作 ICLR), 会将64-bit当前轮CKR的输出和64-bit当前轮分组数据的左半部分Li作为输入,经过各种组合逻辑运算获得64-bit输出作为下一轮运算的分组数据的右半部分Ri+1。其中会出现两次非线性的延迟逻辑(Logic Deceleration)1.作为XRC轮运算CKR中MCF函数的一部分;2.用于XRC轮密钥生成的密钥更新函数中;前者把100-bit输入压缩为64-bit,而后者把128-bit输入压缩为100-bit,但它们均交替使用了输入输出同为128-bit的两个延迟A和B运算核(尽管还是叫deceleration logic,但这两个运算核完成的不是压缩任务,而是一种复杂的非压缩组合逻辑),该结构会消耗大量的逻辑布线资源。
如果XRC的迭代轮数是从0到21,则偶数轮迭代时,数据在该结构中计算路径是延迟逻辑Ad收缩函数Dd扩展函数Ed延迟逻辑Bd收缩函数C,奇数轮迭代时,数据在该结构中计算路径是延迟逻辑Bd收缩函数Dd扩展函数Ed延迟逻辑Ad收缩函数C。很明显,A、B 两个deceleration logic在迭代过程中交替使用。由于两个延迟逻辑是非常复杂的组合逻辑,在目前的实现方案中,多采用图3的方式对两个延迟逻辑A、B进行交替复用,以达到节约面积的效果。
这样的结构尽管实现了两个延迟逻辑A和B的交替复用,但依然存在如下的问题I、无论是偶数轮迭代的计算路径,还是奇数轮迭代的计算路径,都存在路径延迟大的问题。
2、两个延迟逻辑A和B由于算法的复杂性,本身就存在布线紧张的问题。布线和时序两个问题交织在一起,更增加了解决问题的难度,可能导致布线资源太大,布线面积急剧增加的情况,甚至可能导致布线不通的后果。
3、在图2的结构中,存在时序环路,降低了电路的测试覆盖率。
4、在图2的计算路径中,由于数据路径太长,组合逻辑在工作中存在很多信号翻转,A、B两个模块的输入端稳定需要较长的时间,这样A、B两个模块的输入端会出现很多无效的信号翻转。这种无效的信号翻转大大增加了 A、B两个模块的功耗。在“延迟逻辑Ad收缩函数Dd扩展函数Ed延迟逻辑Bd收缩函数C”的计算路径中,逻辑延迟B将因为运算过程中信号翻转太多而导致功耗急剧增加;在“延迟逻辑Bd收缩函数Dd扩展函数Ed延迟逻辑Ad收缩函数C”的计算路径中,逻辑延迟A将因为运算过程中信号翻转太多而导致功耗急剧增加。而且,两个逻辑延迟A和B两个模块的功耗可能因为功耗重叠导致峰值功耗加倍。
5、在有些特殊的应用环境中,比如同时解扰两路不同的数字电视节目流,可能需要两个CSA3模块同时工作。在这种情况下,二者的峰值功耗如果正好重合叠加,会带来更加严重的功耗问题,导致系统无法正常工作。
因此,有必要找到一种方法来降低CSA3解扰算法硬件实现时的功耗,解决其时序和布线瓶颈,这样才能将采用了 CSA3解扰算法的条件接收终端应用到更多的场合。本发明将提供一种DVB系统中CSA3解扰算法模块的低功耗实现方法,尤其是要解决两个CSA3模块同时工作时可能出现的峰值功耗叠加的问题。发明内容
本发明提出一种DVB系统中CSA3解扰算法模块的低功耗实现方法,通过在两个延迟逻辑之前分别插入隔离寄存器,使两个逻辑延迟被隔离至两个多周期路径内,两个逻辑延迟块同时工作时功耗交错而实现低功耗。
本发明采用如下技术方案实现一种DVB系统中CSA3解扰算法模块的低功耗实现方法,其包括步骤在CSA3解扰算法模块中两个延迟逻辑的输入端分别设置寄存器;将隔离后的两个延迟逻辑的计算路径设置为多周期路径,使两个延迟逻辑被隔离至两个不同的多周期路径中。
其中,每个多周期路径在N个时钟周期内完成运算,N为大于1的自然数。其中,每个多周期路的运算过程中,延迟逻辑产生的功耗峰值出现在输入跳变的 第1个时钟周期内,之后的N-I个时钟内的功耗随着输入的稳定逐渐衰减。其中,当DVB系统中具有主CSA3和优先级低于主CSA3的从CSA3这两个CSA3解 扰算法模块同时工作吋,每个CSA3解扰算法模块根据对方的工作状态,自动调节自己的エ 作状态机完成自身运算的暂停与启动,使两个CSA3解扰算法模块的功耗峰值错开。其中,主CSA3/从CSA3在收到XRC启动信号前一直处于空闲状态。其中,主CSA3/从CSA3—旦检测到XRC启动信号有效,则进入仲裁状态;主CSA3/ 从CSA3会根据从CSA3/主CSA3下一个时钟周期内的功耗分布,决定是立即启动XRC运算 还是延迟ー个时钟周期启动XRC运算以使两个CSA3解扰算法模块的功耗峰值错开。其中,当主CSA3处于仲裁状态,若从CSA3下一个时钟周期将处于功耗峰值,则主 CSA3进入延迟状态;当从CSA3处于仲裁状态,若主CSA3下一个时钟周期将处于功耗峰值, 或者主CSA3正好也受到XRC启动信号处于仲裁状态,则从CSA3进入延迟状态。其中,在延迟状态,滞后一个时钟周期后发出XRC启动信号。其中,当主CSA3/从CSA3处于仲裁状态,且从CSA3/主CSA3下一个时钟周期将不 处于功耗峰值,则主CSA3/从CSA3由XRC启动信号触发进入启动状态;或者当主CSA3/从 CSA3处于延迟状态吋,由滞后一个时钟周期的XRC启动信号触发进入启动状态。其中,在启动状态,启动的XRC运算不被中断;在XRC运算完成前,主CSA3/从CSA3 会一直处于结束状态;一旦XRC运算完成,主CSA3/从CSA3进入空闲状态。与现有技术相比,本发明具有如下有益效果
本发明的好处是双CSA3系统的峰值功耗仅为系统中单CSA3的峰值功耗,而严重影响 单CSA3峰值功耗的两个逻辑延迟也被隔离至两个多周期路径内,又能显著地降低单CSA3 的峰值功耗,进ー步缓解了双CSA3系统存在的功耗问题,更有效解决了 CSA3解扰算法模块 硬件实现时存在时序和布线的难题。


图1是CSA3算法的基本结构图。图2是图1中XRC算法中Feistel结构图。图3是本发明单CSA3解扰算法模块的低功耗实现结构图。图4是以3个时钟周期为例的单CSA3低功耗实现时序图。图5是主CSA3低功耗实现状态转移图。图6是从CSA3低功耗实现状态转移图。图7是双CSA3功耗交错示例时序图。
具体实施例方式在不改变CSA3算法的前提上,提出了如图3所示的单CSA3解扰算法模块的低功 耗实现结构图。在两个延迟逻辑(deceleration logic)A和B的输入端插入寄存器31;将 隔离后的两个延迟逻辑A和B的计算路径设置为多周期路径。考虑在两个延迟逻辑A和B的输入端插入寄存器31,一方面能将偶数轮路径“延迟逻辑M收缩函数Dd扩展函数Ed延迟逻辑Bd收缩函数C”和奇数轮路径“延迟逻辑Bd 收缩函数Dd扩展函数Ed延迟逻辑Ad收缩函数C” 一分为二,有效地缓解单个路径延时大的问题,同时也能打断时序环路,提高电路的测试覆盖率;另一方面还能将两个延迟逻辑A 和B的功耗隔离,避免两个延迟逻辑A和B的无谓翻转产生相互影响。
而为了解决两个延迟逻辑A和B的布线问题,就必须给两个延迟逻辑A和B的计算路径留有足够的时序裕量,考虑将两个延迟逻辑A和B的计算路径设计为多周期路径,时钟周期的多少O 2)取决于系统对CSA3模块吞吐率的要求。
如图4所示,以3个时钟周期为例,给出了单CSA3低功耗的实现时序。当偶数轮迭代时,之前的(如图2所示)单周期路径“延迟逻辑Ad收缩函数Dd扩展函数Ed延迟逻辑 Ba收缩函数C”被寄存器31隔离为延迟逻辑A 202a收缩函数D 203a乘法器2046MCF 2056扩展函数E 206和延迟逻辑B 2076收缩函数C 208aICLR 209 ;当奇数轮迭代时,之前的单周期路径“延迟逻辑Bd收缩函数Dd扩展函数Ed延迟逻辑Ad收缩函数C”被寄存器 31隔离为延迟逻辑B 2076收缩函数D 2036乘法器204MCF 2056扩展函数E 206和延迟逻辑A 202a收缩函数C 208aICLR 209。
隔离后的每条路径上都只会存在延迟逻辑A或延迟逻辑B,避免了延迟逻辑A和B 彼此影响对方的时序和功耗。隔离后的每条路径都是时钟周期为3的多周期路径,这样就能将原本聚集在一个时钟周期内完成的运算分散到了三个时钟周期内完成。每条路径的功耗峰值都会出现在输入跳变的第一个时钟周期内,之后的两个时钟随着输入的稳定,功耗也会逐渐衰减,为错开功耗峰值提供空间。
在一些高级的条件接收系统中,往往存在两个CSA3模块,假设每个CSA3都采用图 4提出的低功耗实现方法,虽然可以解决各自的功耗问题,而且彼此独立互不干预,不会出现某个CSA3恶化另一个CSA3功耗的情况,但如果两个CSA3的功耗峰值正好重叠,也会导致系统峰值功耗加倍,影响系统的正常工作。
根据实际应用场景中算法使用的优先级,可将两个CSA3分为主CSA3和从CSA3,其中主CSA3的优先级高于从CSA3。图5和图6分别给出了主CSA3和从CSA3的低功耗实现状态转移图。
对于主CSA3,具体包括以下状态空闲状态SOM :主CSA3在收到XRC启动信号前,会一直处于空闲状态S0M。
仲裁状态SlM :主CSA3—旦检测到XRC启动信号有效,进入仲裁状态S1M。在仲裁状态SAl,主CSA3会根据从CSA3下一个时钟周期内的功耗分布,决定是立即启动XRC运算还是延迟一个时钟周期启动XRC运算以错开二者的功耗峰值。
延迟状态S2M :当主CSA3处于仲裁状态SlM时,从CSA3下一个时钟周期将处于功耗峰值,也就是图3中多周期路径的第一个时钟周期内,主CSA3进入延迟状态S2M。在延迟状态S2M,XRC启动信号会被滞后一个时钟周期。
启动状态S3M :当主CSA3处于仲裁状态SlM时,从CSA3下一个时钟周期将不处于功耗峰值,也就是图3中除多周期路径的第一个时钟周期外的其它时钟周期内,主CSA3由原始XRC启动信号触发进入启动状态S3M ;或者当主CSA3处于延迟状态S2M时,由滞后一个时钟周期的XRC启动信号触发进入启动状态S3M。在启动状态S3M,启动XRC运算且不被中断。
结束状态S4M :在XRC运算完成前,主CSA3会一直处于结束状态S4M。一旦XRC运算完成,主CSA3进入空闲状态S0M,等待新一轮运算。
对于从CSA3,具体包括以下状态空闲状态SOS :从CSA3在没收到XRC启动信号前,会一直处于空闲状态S0S。
仲裁状态SlS :从CSA3—旦检测到XRC启动信号有效,进入仲裁状态SIS。在仲裁状态SlS,从CSA3会根据主CSA3下一个时钟周期内的功耗分布,决定是立即启动XRC运算还是延迟一个时钟周期启动XRC运算以错开二者的功耗峰值。
延迟状态S2S :当从CSA3处于仲裁状态SlS时,主CSA3下一个时钟周期将处于功耗峰值,也就是图3中多周期路径的第一个时钟周期内,或者主CSA3正好也收到XRC启动信号处于仲裁状态SlM时,从CSA3进入延迟状态S2S。在延迟状态S2S,XRC启动信号会被滞后一个时钟周期。
启动状态S3S :当从CSA3处于仲裁状态SlS时,主CSA3下一个时钟周期将不处于功耗峰值,也就是图3中除多周期路径的第一个时钟周期外的其它时钟周期内,同时主 CSA3也未收到XRC启动信号不在仲裁状态SlM时,从CSA3由原始XRC启动信号触发进入启动状态S3S ;或者当从CSA3处于延迟状态S2S时,由滞后一个时钟周期的XRC启动信号触发进入启动状态S3S。在启动状态S3S,启动XRC运算且不被中断。
结束状态S4S :在XRC运算完成前,从CSA3会一直处于结束状态S4S。一旦XRC运算完成,从CSA3进入空闲状态S0S,等待新一轮运算。
如图7所示,这是一个典型的双CSA3功耗交错的示例时序。假设主CSA3先启动 XRC运算,在运算过程中,从CSA3也启动XRC运算,并且启动信号正好处于主CSA3某条多周期路径的最后一个时钟周期,也就是说下一个时钟周期主CSA3将处于功耗峰值。从CSA3 此时若直接由启动信号触发进入启动状态S3S,将会导致下一个时钟周期内主、从CSA3都处于功耗峰值,造成系统峰值功耗的加倍。而当从CSA3采用图6所示的状态转移来设计, 就会将启动信号滞后一个时钟周期,下一个时钟周期内就只会出现主CSA3处于功耗峰值, 从CSA3的功耗峰值会被滞后一个时钟周期出现,也就是图4中多周期路径的第二个时钟周期。
本发明的好处是双CSA3系统的峰值功耗仅为系统中单CSA3的峰值功耗,而严重影响单CSA3峰值功耗的两个逻辑延迟也被隔离至两个多周期路径内,又能显著地降低单 CSA3的峰值功耗,进一步缓解了双CSA3系统存在的功耗问题。
综上所述,本发明提供的DVB系统中CSA3解扰算法模块的低功耗实现方法,不仅显著降低了单个CSA3模块的峰值功耗,还能有效解决两个CSA3模块同时工作时可能出现的峰值功耗叠加的问题。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种DVB系统中CSA3解扰算法模块的低功耗实现方法,其特征在于,所述方法包括步骤在CSA3解扰算法模块中两个延迟逻辑的输入端分别设置寄存器;将隔离后的两个延迟逻辑的计算路径设置为多周期路径,使两个延迟逻辑被隔离至两个不同的多周期路径中。
2.根据权利要求I所述DVB系统中CSA3解扰算法模块的低功耗实现方法,其特征在于,每个多周期路径在N个时钟周期内完成运算,N为大于I的自然数。
3.根据权利要求I所述DVB系统中CSA3解扰算法模块的低功耗实现方法,其特征在于,每个周期路的运算过程中,延迟逻辑产生的功耗峰值出现在输入跳变的第I个时钟周期内,之后的N-I个时钟内的功耗随着输入的稳定逐渐衰减。
4.根据权利要求1-3任何一项所述DVB系统中CSA3解扰算法模块的低功耗实现方法, 其特征在于,当DVB系统中具有主CSA3和优先级低于主CSA3的从CSA3这两个CSA3解扰算法模块同时工作时,每个CSA3解扰算法模块根据对方的工作状态,自动调节自己的工作状态机完成自身运算的暂停与启动,使两个CSA3解扰算法模块的功耗峰值错开。
5.根据权利要求4所述DVB系统中CSA3解扰算法模块的低功耗实现方法,其特征在于,主CSA3/从CSA3在收到XRC启动信号前一直处于空闲状态。
6.根据权利要求4所述DVB系统中CSA3解扰算法模块的低功耗实现方法,其特征在于,主CSA3/从CSA3 —旦检测到XRC启动信号有效,则进入仲裁状态;主CSA3/从CSA3会根据从CSA3/主CSA3下一个时钟周期内的功耗分布,决定是立即启动XRC运算还是延迟一个时钟周期启动XRC运算以使两个CSA3解扰算法模块的功耗峰值错开。
7.根据权利要求4所述DVB系统中CSA3解扰算法模块的低功耗实现方法,其特征在于,当主CSA3处于仲裁状态,若从CSA3下一个时钟周期将处于功耗峰值,则主CSA3进入延迟状态;当从CSA3处于仲裁状态,若主CSA3下一个时钟周期将处于功耗峰值,或者主CSA3 正好也收到XRC启动信号处于仲裁状态,则从CSA3进入延迟状态。
8.根据权利要求4所述DVB系统中CSA3解扰算法模块的低功耗实现方法,其特征在于,在延迟状态下,滞后一个或多个时钟周期后发出XRC启动信号。
9.根据权利要求4所述DVB系统中CSA3解扰算法模块的低功耗实现方法,其特征在于,当主CSA3/从CSA3处于仲裁状态,且从CSA3/主CSA3下一个时钟周期将不处于功耗峰值,则主CSA3/从CSA3由XRC启动信号触发进入启动状态;或者当主CSA3/从CSA3处于延迟状态时,由滞后一个时钟周期的XRC启动信号触发进入启动状态。
10.根据权利要求4所述DVB系统中CSA3解扰算法模块的低功耗实现方法,其特征在于,在启动状态,启动的XRC运算不被中断;在XRC运算完成前,主CSA3/从CSA3会一直处于结束状态;一旦XRC运算完成,主CSA3/从CSA3进入空闲状态。
全文摘要
本发明公开一种DVB系统中CSA3解扰算法模块的低功耗实现方法,其包括步骤在CSA3解扰算法模块中两个延迟逻辑的输入端分别设置寄存器;将隔离后的两个延迟逻辑的计算路径设置为多周期路径,使两个延迟逻辑被隔离至两个不同的多周期路径中;当DVB系统中具有主CSA3和优先级低于主CSA3的从CSA3这两个CSA3解扰算法模块同时工作时,每个CSA3解扰算法模块根据对方的工作状态,自动调节自己的工作状态机完成自身运算的暂停与启动,使两个CSA3解扰算法模块的功耗峰值错开。本发明将两个逻辑延迟隔离至两个多周期路径内,降低了CSA3解扰算法模块的功耗,且有效解决了CSA3解扰算法模块由硬件实现时存在时序和布线的难题。
文档编号H04N21/4405GK102547451SQ201110445930
公开日2012年7月4日 申请日期2011年12月28日 优先权日2011年12月28日
发明者王良清, 赵尧 申请人:深圳国微技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1