数字处理器(dsp)中循环数据的架构及其计算方法

文档序号:6369875阅读:198来源:国知局
专利名称:数字处理器(dsp)中循环数据的架构及其计算方法
技术领域
本发明涉及一种用于数字处理器(DSP)中循环数据(Circle Buffer)的架构和计算的实现方法。
目前,应用于数字处理器(DSP)中的循环数据区域是从基本数据区域底部开始的,规定长度的数据空间。数据循环方式有递加和递减两种方式,但不管怎样,循环数据区域在基本数据区域的位置不随循环方式而变化。基本数据区域是一个二进制整数区间,从底部开始,往往不能到达顶部,容易浪费记忆体空间。另外,在数据循环过程中,计算数据地址是否超出循环数据区域,一般采取边界比较的方法,即,如果地址是递加的,新地址减循环数据顶部边界地址如果大于等于零,则地址所对应的数据超出循环数据区域;如果地址是递减的,循环数据底部边界地址减新地址如果大于零,则地址所对应的数据超出循环数据区域。这种方法要在数字处理器(DSP)中作两种减法运算,计算相对困难,电路相对较大。
为了克服上述浪费记忆体空间和计算困难的问题,本发明首先根据数据循环方式改变循环数据区域在基本数据区域的位置,如果数据循环方式是递加的,则利用基本数据区域底部区间;如果数据循环方式是递减的,则利用基本数据区域顶部区间。其次,用一种等效逻辑和结构使电路中关于数据是否超出循环数据区域的计算不需要进行加减运算。实际上是首先判断新数据地址和原来数据的地址每一位的变化,再根据各位变化对数据是否超出循环数据区域的贡献,来确定数据是否超出循环数据区域。
采用上述架构和计算方法的优点是
1.循环数据地址递加时,使用基本数据区域的底部,循环数据地址递减时,使用基本数据区域的顶部,这样能有效地充分利用存储单元的每一部分空间。
2.是否超出循环数据区域的计算,不须进行复杂的边界比较,只须进行相对算术运算更为简便的逻辑运算,这有利于节省数字处理器(DSP)的成本。


图1、图2和图3是根据本发明的两个实施例的示意图。其中图1是指当M大于0时数据的地址空间,图2是指当M小于0时数据的地址空间,图1和图2中的(6)指的是循环数据区域,(7)指的是基本数据区域。图3中(1)指的是进行相加运算,(2)指的是M>0相减,否则相加,(3)指的是根据B=2n且2n-1<L≤2n求B,(4)指的是做(IY)与B的逻辑运算,(5)指的是T=0选Y,T≠0选X。
从记忆体存取数据,首先要产生这个数据的地址,数字处理器(DSP)的I寄存器提供了数据的地址,在数据获取完成后还须根据L寄存器和M寄存器更新I寄存器值作为下一次获取数据的对应地址。L寄存器又称长度寄存器,它限定循环数据区的大小,循环数据区(又称有效数据区)内的数据个数为L。I寄存器又称索引寄存器,I寄存器存储的是数据的地址。I寄存器和L寄存器存储的二进制数为正数。M寄存器又称步长寄存器,M寄存器存储一个二进制补码,可以是正数也可以是负数。M寄存器决定I寄存器变化的幅度,M为正,表示地址在不超出循环数据区域地址的情况下I是递增的,M为负,表示地址在不超出循环数据区域地址的情况下I是递减的。
见图1和图2,循环数据区(亦称有效数据区)为不断循环使用的数据区域。存储数据时,当M为正数时,地址从循环数据区某点递增,每次增加幅度为M,到达循环数据区域顶部后返回到循环数据区域底部重新增加,不断循环。当M为负数时,地址从循环数据区某点递减,每次减少幅度为M的绝对值。根据L的值,利用2n-1<L≤2n求出n,知道L的长度不超过2n;循环数据区一定包含在K*2n到K*2n+1的基本数据区域内,即基本数据区域地址A有K*2n<A≤K*2n+1。I的值一定落在基本数据区内,I’的值一定落在循环数据区内。根据I的值可求出K。我们定义,M大于0时,循环数据区域占据基本数据区域底部,M小于0时,循环数据区域占据基本数据区域的顶部。
数字处理器(DSP)内I寄存器值的计算要求确保循环存取数据时,数据按顺序从图1和图2中循环数据区域存取,每次地址变化量为M,变化范围为L。
图3是实现I值变化的电路框图。(1)部分将I和M相加得到X;(2)部分当M>0用X减去L,当M≤0用X加上L得到Y。如果X未超出循环数据区域边界则通过(5)部分选X作为I’,如果X超出循环数据区域边界则通过(5)部分选Y作为I’。是否超出边界的判断是通过(3)部分和(4)部分的运算确定的。首先通过(3)部分根据L求B,满足B=2n且2n-1<L≤2n。再通过(4)作(IY)与B的逻辑运算得到T,T=0代表Y值没有越界,应选用Y值作为I’的值,否则,代表Y已越界而X没有越界,可选用X值作为I’的值。
本发明提供了一种在数字处理器(DSP)中根据数据循环方式改变循环数据区域在基本数据区域的位置的架构和确定数据是否超出循环数据区域的计算方法,可以克服对记忆体空间的浪费,使计算更为简单,节省了数字处理器(DSP)的成本。
权利要求
1.一种用于数字处理器(DSP)中循环数据(Circle Buffer)的架构和计算的实现方法,其特征在于,根据数据循环方式改变循环数据区域在基本数据区域的位置,即如果循环数据地址是递加的,循环数据区在基本数据区域的底部,而如果循环数据地址是递减的,循环数据区在基本数据区域的顶部。
2.根据权利要求1的架构,用以判断数据地址是否超出循环数据区域并取得新的循环数据地址的方法,其特征是,原有地址I加步长M得到X,如果M为正数,X减循环数据区域长度L得到Y,如果M为负数,X加循环数据区域长度L得到Y;根据2n-1<L≤2n和B=2n求出B,I异或Y再或B得到T,如果T等于0则因地址X超出循环数据区域选Y,如果T不等于0则因X地址未超出循环数据区域选X。
全文摘要
一种用于数字处理器(DSP)中循环数据(CircleBuffer)的架构和计算的实现方法,首先是循环数据区域的划分,如果循环数据地址是递加的,循环数据区在基本数据区域的底部,而如果循环数据地址是递减的,循环数据区在基本数据区域的顶部。其次是新的循环数据区域地址的确定,判断地址是否超出循环数据区域并取得新的循环数据地址的方法是原有地址I加步长M得到X,如果M为正数,X减循环数据区域长度L得到Y,如果M为负数,X加循环数据区域长度L得到Y;循环数据区域长度为L,根据文档编号G06F7/38GK1567176SQ03145660
公开日2005年1月19日 申请日期2003年7月4日 优先权日2003年7月4日
发明者陈传著 申请人:珠海炬力集成电路设计有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1