首页> 中国专利> 支持数据解扰的访存控制器及访存控制器解扰方法

支持数据解扰的访存控制器及访存控制器解扰方法

摘要

本发明公开一种支持数据解扰的访存控制器,至少设有一个带有数据解扰功能的解扰通道,以及至少一个对数据进行判断选择的仲裁器。一种访存控制器解扰方法,包括以下步骤:从数据源中得到操作数据,并发出控制指令;根据控制指令对操作数据在访存控制器内的解扰通道中进行数据解扰;解扰完成输出解扰后的数据并存储。本发明通过在访存控制器内设置带有解扰功能的解扰通道,通过解扰通道与访存控制器中的其他元件共同作用,既能在完成数据传输,又能同时完成数据解扰处理,以此提高了访存控制器的数据处理能力;规定多个解扰通道,对不同的数据信号进行有选择的独立完成解扰,而且每个解扰通道均支持解扰序列的沿用方式。

著录项

  • 公开/公告号CN102866972A

    专利类型发明专利

  • 公开/公告日2013-01-09

    原文格式PDF

  • 申请/专利权人 北京中科晶上科技有限公司;

    申请/专利号CN201210315237.X

  • 申请日2012-08-30

  • 分类号G06F13/30(20060101);

  • 代理机构11325 北京中伟智信专利商标代理事务所;

  • 代理人张岱

  • 地址 100190 北京市海淀区中关村科学院南路6号科研综合楼七层734房间

  • 入库时间 2024-02-19 16:35:27

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-12-20

    专利权人的姓名或者名称、地址的变更 IPC(主分类):G06F13/30 变更前: 变更后: 申请日:20120830

    专利权人的姓名或者名称、地址的变更

  • 2016-05-18

    授权

    授权

  • 2013-02-20

    实质审查的生效 IPC(主分类):G06F13/30 申请日:20120830

    实质审查的生效

  • 2013-01-09

    公开

    公开

说明书

技术领域

本发明涉及访存控制技术领域,尤其涉及一种支持数据解扰的访存控制器及访存控制器解扰方法。 

背景技术

目前对批量数据(数据流)进行处理,主要的访存控制机制是DMA(Direct Memory Access,直接存储器访问)技术,DMA技术适用于批量数据处理的访存控制技术。一般处理器(或其他控制器)将批量数据的访存任务下交DMA后,DMA接受任务并进行访存操作,任务完成之后向处理器(或其他控制器)返回任务完成控制信号。 

现有的访存控制DMA技术,仅实现数据传输控制,数据处理是在数据传输后由软件或者硬件单独完成。而在众多数据处理方式中,数据解扰是很多应用必须实现的一种数据处理功能。因此,数据解扰的处理尤为重要。如果使用单独的硬件去实现数据解扰功能,不仅额外增加了芯片面积,而且还增加了控制难度(尤其对具有实时性数据流)。另外,现有的硬件实现上,串行解扰方法简单,效率低下;采取并行解扰方法,也只有很小的并行度,不便于大规模数据处理;如果使用软件方法去实现数据解扰的功能,又会占用宝贵的处理器资源。因此,如何找到一个在有效的数据解扰处理方法,显得尤为重要。 

发明内容

针对上述问题,本发明的目的在于提供一种支持数据解扰的访存控制器及访存控制器解扰方法,实现了在使用DMA控制访存过程中传输数据的同时对数据流进行快速解扰处理。 

为达到上述目的,本发明所述一种支持数据解扰的访存控制器,所述访存 控制器至少设有一个带有数据解扰功能的解扰通道。 

优选地,所述访存控制器内还设有至少一个仲裁器。 

优选地,所述访存控制器内设有多个解扰通道和一个仲裁器,其中; 

解扰通道,每个解扰通道按照访存控制器的控制指令对不同类型的源数据做出相应解扰; 

仲裁器,对解扰后得到的数据进行判断,以做出相应数据的输出。 

优选地,所述访存控制器内设有多个解扰通道、一个直接通道和三个仲裁器,其中; 

解扰通道,每个解扰通道按照访存控制器的控制指令对不同类型的源数据做出相应解扰; 

三个仲裁器包括第一仲裁器,第二仲裁器和第三仲裁器,其中; 

第一仲裁器,按照访存控制器的控制指令对源数据进行判断,以区分解扰数据和非解扰数据; 

第二仲裁器,按照访存控制器的控制指令对需解扰数据进行判断,以区分不同类型数据分配各个解扰通道进行解扰; 

第三仲裁器,按照访存控制器的控制指令对解扰后得到的数据和非解扰数据进行判断,以做出相应数据的输出; 

直接通道,输送非解扰数据。 

优选地,所述解扰通道内设有扰码序列沿用单元和重新计算扰码序列单元,其中; 

扰码序列沿用单元,在上次解扰序列的基础上直接计算扰码序列; 

重新计算扰码序列单元,再次重新计算解扰序列的准备序列,在新准备序列的基础上计算得到扰码序列。 

为达到上述目的,本发明所述一种访存控制器解扰方法,包括以下步骤: 

从数据源中得到操作数据; 

根据预设的控制指令对操作数据在访存控制器内的解扰通道中进行数据解扰; 

解扰完成输出解扰后的数据并存储。 

优选地,所述解扰通道至少为一个。 

优选地,在数据解扰过程中,对相同类型数据在同一解扰通道内解扰时,后一组数据解扰所需的扰码序列可沿用上一组数据解扰得到的扰码序列。 

优选地,在数据解扰过程中,对不同类型数据在同一解扰通道内解扰时,后一组数据解扰所需的扰码序列需重新计算得出。 

本发明的有益效果为: 

1、本发明通过在访存控制器内设置带有解扰功能的解扰通道,通过解扰通道与访存控制器中的其他元件共同作用,既能在完成数据传输的过程中,又能同时完成数据解扰处理,以此提高了访存控制器的数据处理能力; 

2、本发明通过设置多个解扰通道,对不同的数据信号进行有选择的独立完成解扰,而且每个解扰通道均支持解扰序列的沿用方式,以满足各种数据处理的需求。 

附图说明

图1是本发明实施例1所述支持数据解扰的访存控制器的结构简图; 

图2是本发明实施例2所述支持数据解扰的访存控制器的结构简图; 

图3是串行的扰码序列产生电路; 

图4是8bit并行产生扰码序列的电路; 

图5是本发明实施例解扰准备序列X1计算图; 

图6是本发明实施例解扰准备序列X2计算图。 

图7是解扰通道内扰码序列沿用和重新计算扰码序列的过程示意图。 

具体实施方式

下面结合说明书附图对本发明做进一步的描述。 

为了实现了在使用DMA控制访存过程中传输数据的同时对数据流进行快速解扰处理,本发明实施例所述一种支持数据解扰的访存控制器,所述访存控制器至少设有一个带有数据解扰功能的解扰通道。对于目前访存控制器(DMA)来说,其主要功能是传输数据,传输后的数据需要经过单独的解扰装置进行解扰,以此达到最终所需要的数据,完成工作的进展。因此,在本发明的方案中,其主要思想是将数据解扰功能融合在访存控制器内,使最终使访存控制器具有数据解扰功能。从而,只需在访存控制器内植入解扰通道即可。 

数据流为多种类型数据集合而成,那么,对于只有一个解扰通道时,经加扰后的数据流在解扰作用以后还是为多种类型数据的集合体,因此,数据流如何在解扰后得到相应的应用,需要一个起判断作用的器件。因此,可以在所述访存控制器内还设有至少一个仲裁器。在一般设计理念上,需在数据解扰处理之后进行判断仲裁处理,因此,在访存控制器内解扰通道之后加设仲裁器,对解扰后的数据提供有效应用。 

对于一个解扰通道的情况,在这里做简单说明: 

当传输的是一种类型的数据时,可设计一个解扰通道,所述访存控制器便可以对数据进行解扰并输送。当传输的是多种类型的数据时,也可以设计为一个解扰通道,而且还需在解扰通道后加设一个其判断选择作用的仲裁器。当传输的数据流中存在需要解扰的数据和不需要解扰的数据时,该解扰通道可通过不需要解扰的通道,还可加设一个直接通道,以便不需要解扰的数据通过。这种情况下,需要一个仲裁器进行判断选择一下。 

对于多解扰通道的情况,下面以具体实施例做出解释说明: 

实施例1: 

如图1所示,所述访存控制器内设有三个解扰通道和一个仲裁器,所述仲裁器位于三个解扰通道之后。其中;所述三个解扰通道按照访存控制器的控制指令对不同类型的源数据做出相应解扰;所述仲裁器对解扰后得到的数据进行判断,以做出相应数据的输出。 

执行过程为:访存控制器内的状态控制器发出数据传输启动命令时,会自动从存储器获得待解扰的有效数据,并传送到三个解扰通道内,然后在解扰通道内根据DMA寄存器组内存储的DMA信息,以及数据解扰寄存器组内存储的控制信息对待解扰的有效数据进行解扰处理。当有效数据解扰后,经仲裁器的判断选择作用,然后输出存储到目的存储器。 

另外,为了更好的方便完成解扰通道内的数据解扰工作。所述解扰通道内设有扰码序列沿用单元和重新计算扰码序列单元,其中;扰码序列沿用单元对进入解扰通道内的数据进行判断,以确定其在解扰过程中是否沿用上次扰码序列;重新计算扰码序列单元对进入解扰通道内的数据进行判断,以确定其在解扰过程中是否重新计算得到新的扰码序列。 

比如存在三类数据,分别为a、b、c,假设解扰数据流为a、c、b、a,如果只使用一个通道进行解扰,那么最后再需要传送a的数据时,解扰通道中保存的是b的解扰信息,就不能实现扰码序列的沿用功能,需要重新计算新的扰码序列。如果是三个解扰通道的话,三类数据分别进入各自的解扰通道进行解扰,那么第二批的a数据进行解扰时,则直接沿用扰码序列。 

实施例2: 

如图2所示,所述访存控制器内设有三个解扰通道、一个直接通道和三个仲裁器,其中;三个解扰通道按照访存控制器的控制指令对不同类型的源数据做出相应解扰;直接通道,输送非解扰数据;三个仲裁器包括第一仲裁器,第二仲裁器和第三仲裁器,其中; 

第一仲裁器,按照访存控制器的控制指令对源数据进行判断,以区分解扰 数据和非解扰数据; 

第二仲裁器,按照访存控制器的控制指令对需解扰数据进行判断,以区分不同类型数据分配各个解扰通道进行解扰; 

第三仲裁器,按照访存控制器的控制指令对解扰后得到的数据和非解扰数据进行判断,以做出相应数据的输出。 

执行过程为:访存控制器内的状态控制器发出数据传输启动命令时,会自动从存储器获得有效数据,接着通过第一仲裁器的判断选择出需要解扰的有效数据和不需要解扰的有效数据,需要解扰的有效数据传送到三个解扰通道内,不需要解扰的有效数据传送到直接通道内。然后需要解扰的数据通过第二仲裁器的判断选择出不同类型的有效数据,分别进入各自的解扰通道内。最后在解扰通道内根据DMA寄存器组内存储的DMA信息,以及数据解扰寄存器组内存储的控制信息对待解扰的有效数据进行解扰处理。当有效数据解扰后,经第三仲裁器的判断选择作用,然后输出存储到目的存储器。 

另外,为了更好的方便完成解扰通道内的数据解扰工作。所述解扰通道内设有扰码序列沿用单元和重新计算扰码序列单元,其中;扰码序列沿用单元对进入解扰通道内的数据进行判断,以确定其在解扰过程中是否沿用上次扰码序列;重新计算扰码序列单元对进入解扰通道内的数据进行判断,以确定其在解扰过程中是否重新计算得到新的扰码序列。 

比如存在三类数据,分别为a、b、c,假设解扰数据流为a、c、b、a,如果只使用一个通道进行解扰,那么最后再需要传送a的数据时,解扰通道中保存的是b的解扰信息,就不能实现扰码序列的沿用功能,需要重新计算新的扰码序列。如果是三个解扰通道的话,三类数据分别进入各自的解扰通道进行解扰,那么第二批的a数据进行解扰时,则直接沿用扰码序列。 

为达到上述目的,本发明所述一种访存控制器解扰方法,包括以下步骤: 

从数据源中得到操作数据; 

根据预设的控制指令对操作数据在访存控制器内的至少为一个解扰通道中进行数据解扰; 

解扰完成输出解扰后的数据并存储。 

其中,在数据解扰过程中,对相同类型数据在同一解扰通道内解扰时,后一组数据解扰所需的扰码序列可沿用上一组数据解扰得到的扰码序列。在数据解扰过程中,对不同类型数据在同一解扰通道内解扰时,后一组数据解扰所需的扰码序列需重新计算得出。 

数据解扰过程中,采用解扰算法获取解扰码序列,解扰算法有多种,基本的思想都是采用伪随机序列作为扰码序列,可以是M序列,Gold序列,GMW序列,KasaMi序列,Bent序列,No序列等。直接使用M序列作为扰码进行加扰和解扰操作,M序列的产生(即扰码序列的产生)基本上采用线性移位寄存器。 

实施例3:针对扰码生成多项式x15+x14+1,具体生产过程为:DMA搬数且同时进行数据解扰过程中,扰码序列可以按照如图3所示的循环移位寄存器产生。 

1、初始化控制字,包括如图所示的16位寄存器初始值(X),扰码准备序列的计算长度等。 

2、启动DMA从数据源获得数据, 

3、使用产生的扰码序列对数据进行解扰处理, 

4、处理完的数据存储到存储单元。 

扰码产生方式如下: 

X[1]<=X[0]; 

X[2]<=X[1]; 

......  

X[14]<=X[13]; 

X[0]<=X[14]^X[13]. 

每个时钟周期产生一个扰码,即X[13]^X[14]的值。 

实施例4: 

如图4为8bit并行产生扰码序列的电路,上述串行的方式每个时钟周期产生一个扰码,其实可以并行化的方式使每个周期产生八个扰码。 

X[14]<=X[6] 

X[13]<=X[5]; 

……. 

X[8]<=X[0], 

X[7]<=X[14]^X[13]; 

X[6]<=X[13]^X[12]; 

…….. 

X[0]<=X[7]^X[6] 

每个时钟周期产生的8bit扰码序列为X[7-0],加速解扰的过程。 

实施例5: 

下面是一种LTE解扰算法获得解扰码序列(LTE采用这种解扰算法,不是表示这种算法只适用于LTE):其最大的特点是:1、使用两个M序列(X1和X2)的组合运算作为扰码序列。普通的仅使用一个M序列作为扰码序列,更复杂的可以使用更多的M序列产生扰码序列。2、扰码准备序列的计算,准备序列的长度任意。普通的可以没有这样的一个计算过程。 

所述解扰码序列的获取方法具体为:根据预设寄存器值得到计算序列X1和计算序列X2,再对两个计算序列进行异或运算得到解扰码序列C。其中,所述预设寄存器值即为下述计算公式中所提到的R(cinit)和R(nc)寄存器的值,这个值 是软件配置寄存器时候写入的,可以是任意值。下面实例中确实只使用了X1和X2两个序列,然后异或得到解扰码序列。然而两个序列并不是随意的值,而是根据DMA的配置信息,计算得来的。 

首先,计算序列X1: 

X1[30:0]=000 0000 0000 0000 0000 0000 0000 0001 

X1[n]=X1[n-28]^X1[n-31],n=31,32,...,M+R(nc)-1 

计算序列X2: 

X2[30:0]=R(cinit) 

X2[n]=X2[n-28]^X2[n-29]^X2[n-30]^X2[n-31],n=31,32,...,M+R(nc)-1 

其中,R(cinit)为31bit可配置寄存器,R(nc)是32bit可配置寄存器,M是继解扰数据长度。 

解扰码序列C: 

C[n]=X1[n+R(nc)]^X2[n+R(nc)],n=0,1,...,M-1 

由公式可知:首先计算R(nc)长度的X1和X2,之后计算的解扰码序列C才用于数据解扰。 

下表为序列X1和X2的初始化情况: 

如上表所示:31+nc之后的序列为真正解扰数据的扰码序列。 

在设计实现上,表中31-30+nc之间的序列比特位的运算和解扰数据比特位的运算分作两部分,前一部分称作解扰准备序列,后一部分为解扰数据序列。 

当收到DMA启动信号,如果判定解扰码序列重新计算,就进行解扰准备序 列的计算(31-30+nc之间的序列),完成之后进入解扰数据序列的计算状态。如果判定重用解扰序列,则直接计算解扰数据序列,并等待有效的解扰数据,有效数据到达后,使用扰码解扰并送到总线。 

为了加速扰码序列的计算,使用额外附加寄存器的方法,相对于每拍计算仅一个扰码值,并行的计算扰码值不难实现,而且可以极大提高解扰效率。其中,所述额外附加寄存器为解扰通道内的资源,用来计算公式X1和X2的。 

由解扰算法X1[n]=X1[n-28]^X1[n-31] 

得到X1[n+28]=X1[n]^X1[n-4] 

其中n+28比特用到了第n个bit的值,所以一拍能得到的只能有n,n+1到n+27的比特位。最大为28个比特。所以设置寄存器位数为31+28=59个比特的移位寄存器。寄存器增加28/31,速度提高28倍。 

对于前一部分的解扰准备序列的计算,可以设置每拍计算28个比特,而对于后一部分的解扰数据序列,可以根据总线宽度,设置适当的每拍计算个数,但必须小于28个比特。 

如图5所示为前一部分解扰准备序列X1计算图解,在图中可以看出序列X1产生的步骤: 

1、计算28位新值:计算28位新值:[0]^[1]=>[30],[1]^[2]=>[31],……[28]^[29]=>[58]; 

2、循环移位操作:[28]=>[0],[29]=>[1]……[58]=>[30]; 

3、重复操作1和2步,直到计算bit位数达到可配置的值(NC)。 

如图6所示为前一部分解扰准备序列X2计算图解,在图中可以看出序列X2产生的步骤: 

1、计算28位新值[0]^[1]^[2]^[3]=>[30],[1]^[2]^[3]^[4]=>[31],……[26]^[]27^[28]^[29]=>[58]; 

2、循环移位操作:[28]=>[0],[29]=>[1]……[58]=>[30]; 

3、重复操作1和2步,直到计算bit位数达到可配置的值(NC)。 

扰码序列C只需根据X1和X2的值,进行异或即得。 

后一部分计算解扰数据序列,和准备解扰序列阶段有所不同。后一部分,要真正的对到来的数据进行解扰,并送到总线进行数据传输,每次产生的扰码序列宽度可以在1-28比特之间选择,主要是平衡控制逻辑和速度的。比方说总线宽度是8bit扰码的解扰数据,那么我们可以设置每次产生24比特扰码,这样一拍可以产生三次的总线数据传输。如果使用28比特,那么由于4比特不能作为一次数据传输,要等待下一拍的解扰数据,这种控制上就麻烦的多,但是速度并没有提高多少。后一部分的数据序列计算类似于前一部分的解扰准备序列计算,只是循环移位的间隔数目有所不同。 

如图7所示为解扰通道内扰码序列沿用和重新计算扰码序列的过程示意图。在图中,当扰码序列沿用时,上次解码后所需的各类寄存器等器件的配置信息得到沿用,然后以此基础计算准备序列X1和X2,最后通过X1和X2的异或计算得到最终的扰码序列;当重新计算扰码序列时,需重新配置各类寄存器等器件的配置信息,然后根据新的配置信息计算准备X1和X2,最后通过X1和X2的异或计算得到最终的扰码序列。 

以上,仅为本发明的较佳实施例,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求所界定的保护范围为准。 

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号