利用ram仿真移位寄存器的方法

文档序号:6415878阅读:833来源:国知局
专利名称:利用ram仿真移位寄存器的方法
技术领域
本发明涉及数字计算,具体涉及一种用随机存取寄存器(RAM)和一个短移位寄存器仿真一个非常长的移位寄存器的方法。
在许多应用中需要实时处理一个输入比特流。例如,可能需要为一个输入比特流提供一个有限脉冲响应滤波器,它的每一位系数是一个单独的位。滤波器的K系数表示为{Ck}(k=0~K-1),输入比特流(不定长度)的位表示为{Xn},这意味着滤波器的输出是一个{Yn}的集合,如下式所示Yn=Σk=0K-1CkXn-k]]>表示的运算是XOR运算。
实现这个滤波器直接的方法是提供一个K位长的寄存器存储系数{Ck},一个K位长的移位寄存器存储输入比特序列{Xk}。当每一个新的比特位到达,移位寄存器的内容移动一位以接受新的输入位。注意这里自动地删除了新输入位之前K位的旧的输入位。在各新的输入位到达之间,对系数寄存器和移位寄存器中的内容进行内部乘积运算,以便得到最后的滤波输出。
这种直接的方法缺陷在于对于可用长度的滤波器(例如,K=1024),在处理器芯片中构造一个相应长度的移位寄存器过于昂贵而不可行。因此,普遍认为需要一种使用廉价存储器如RAM仿真移位寄存器的方法,而且将会带来巨大的好处。
根据本发明,提供了一种处理连续输入比特的方法,包括步骤(a)提供(ⅰ)一个具有多个寄存器的RAM,每一个寄存器存储一个字,所有的字等长,(ⅱ)一个至少等长于几个字的移位寄存器,(ⅲ)一个指针;(b)将指针初始化指向RAM中的一个寄存器;(c)对于每个j位输入组(ⅰ)将存入指针所指的寄存器的字写入移位寄存器,(ⅱ)将字在移位寄存器中移动j位,(ⅲ)将j位输入组写入移位寄存器,由此产生一个位于移位寄存器的更新的字(ⅳ)将更新后的字存入指针所指的寄存器。(ⅴ)递增指针。
RAM由一组可独立编址的寄存器组成,每一个寄存器有不同的地址,其中存储并随后搜索特定长度(特别如8,16,32或64位)的字。本发明的关键在于使用一个按字寻址的存储器以便连续独立的输入比特到达时实现高效存储。这一点也通过提供一个相对短(一个字长)的移位寄存器和一个对RAM寄存器地址编码的指针实现。指针被初始化指向一个RAM寄存器。当每个输入位到达时,存储在由指针所指的RAM寄存器中的字被写入移位寄存器,移动一位为新来的输入位让出位置,并且写回到它被搜索的RAM寄存器。指针递增以指向下一个RAM寄存器。注意指针的“递增“在此循环地定义对一个指向最后一个RAM寄存器的指针递增将使得指针指向第一个RAM寄存器。注意输入比特逆序存储在RAM中,如下文详述。
本发明在此以实例的方式,参考附图描述,如图所示FIG.1说明处于一个输入比特存储周期的开始处的RAM;FIG.2A和2B说明一个N-位移位寄存器处于输入比特存储周期的两个不同的阶段。
FIG.3说明处于输入比特存储周期的结束阶段的RAM。
本发明是一种用RAM仿真一个非常长的移位寄存器的方法。特别地,本发明可用于对一序列比特提供一个有限脉冲响应滤波,并且颠倒序列比特的顺序。
参考附图和相应的描述,可能更易于理解本发明的移位寄存器仿真的原理及操作。
参见图示,

图1表示一个有M个RAM寄存器的RAM10,从R0到RM-1,每一个可存储N位,总容量为NM位,此时NM位Xn到Xn- NM+1的输入比特流已经按照本发明被存储。早一些到达的输入比特,Xn-NM-1被存储在RAM寄存器R0的第(N-1)位置,接下来到达的输入比特Xn-NM+2被存储在RAM寄存器R1的第(N-1)位置,以此类推。最新到达的比特Xn,被存储在RAM寄存器RM-1的第0位置。指针P指向RAM寄存器R0,其中在第(N-1)位置存储着最早到达并被存储的输入比特Xn-NM+1。
下一个输入比特Xn+1到达,开始下一个输入比特存储周期。第一步是将由指针P所指的RAM寄存器R0的内容写入N-位移位寄存器20。图2A表示N-位移位寄存器20在这步结束时的状态。第二步是将N-位移位寄存器20的比特移动一位,删除位Xn-NM+1,为新的输入比特Xn+1空出N-位移位寄存器20的第0位置。第三步是将位于第0位置的新的输入比特Xn+1存入N-位移位寄存器20。图2B表示本步结束时N-位移位寄存器20的状态。第四步是将N-位移位寄存器20的内容写入由指针P所指的RAM寄存器R0中。最后,递增指针P,指向RAM寄存器R1,R1此时将它的第(N-1)位置存储最早到达的输入比特Xn- NM+2。图3表示本步结束时RAM的状态。
在输入比特存储周期期间,RAM10的内容可以以常规的方式被读取和操作。例如,为了产生上文所述的有限输入响应滤波器(假设K=NM)的下一个输出Yn+1,被存储在RAM10中的M个字被连续读取,并与系数{Ck}相异(XOR),系数{Ck}也被存储在不同的存储单元中的M个字中。注意为了正确地起作用,系数{Ck}必须以逆序存储CK-1,CK-M-1, CK-2M-1,…C2M-1,CM-1,CK-2,CK-M-2,CK-2M-2,…C2M-2,CM-2,…CK-M-1,CK-2M+1,CK-3M+1,…CM+1,C1,CK-M,CK-2M,CK-3M,…CM,C0。这个逆序是对位{Ck}使用本发明的方法,将比特{Ck}作为输入比特串产生的。
M和N的典型取值分别是32和32。
指针P周期的递增。因此,在输入比特存储周期里,指针P初始指向最高标注的寄存器RM-1,“递增”指针P意味着将指针P值改变以指向最低标注的寄存器R0。
本发明的原理也可应用于在同一时间处理一个输入比特流而不是一位。例如,使用长度为3的倍数的RAM寄存器,输入比特流在同一时间可以被处理三位比特,在每一个输入3比特存储周期将移位寄存器的内容移动3位。移位寄存器必须至少和RAM寄存器一样长度;如果移位寄存器仅仅用于卸载和装载RAM寄存器,而移位寄存器的输出不再用于其他处理,则移位寄存器的长度不必是3的倍数位。唯一的实际的限制是如果比特以j组的方式处理,而j是一个常规RAM(例如8,16或32)的典型的字长度,那么处理过程将以字而不是比特为单位,例如在Dixon等人的美国专利No.5,568,443中现有技术所述。
尽管本发明以有限数目的实施方式描述的,它的变化,修改的其他应用也将使本发明更具价值。
权利要求
1.一种处理连续输入比特的方法。系统包括(a)提供(ⅰ)一个包含多个寄存器的RAM,每一个所述的寄存器存储一个字,所有的字等长,(ⅱ)一个至少等长于几个所述的字的移位寄存器,(ⅲ)一个指针;(b)将所述的指针初始化指向RAM中的一个所述的寄存器;并且(c)对于每个j位输入组(ⅰ)将存入所述的指针所指的所述的移位寄存器中的字写入所述移位寄存器,(ⅱ)将所述的字在所述的移位寄存器中移动j位,(ⅲ)将所述的j位输入组写入所述的移位寄存器,由此产生一个位于所述的移位寄存器的更新的字,(ⅳ)将所述的更新后的字存入所述的指针所指的所述的寄存器,(ⅴ)递增所述的指针。
2.根据权利要求1的方法,其中j等于1。
3.根据权利要求1,其中所有的RAM中的寄存器与所述的每个字等长。
4.根据权利要求1,其中所述的移位寄存器与所述的每个字等长。
5.根据权利要求1,还包括步骤(d)连续地读取和处理存储在所述的RAM的所述的寄存器中的至少一些所述的字。
6.根据权利要求5,其中所有的被存储在所述RAM的寄存器中的所述的字被连续读取和处理。
全文摘要
一种利用RAM(10)和短移位寄存器(20)仿真一个长移位寄存器以存储一个输入位流的方法。一个指针指向RAM寄存器中的一个。为了存储输入位,指针所指向的RAM寄存器中的内容被写到移位寄存器(20)中并被移动一位,输入位被存储在移位寄存器(20)中由移位操作所空出的位置,移位寄存器(20)的更新的内容重写回指针所指向的RAM寄存器,并且指针递增。
文档编号G06F5/10GK1281559SQ9881066
公开日2001年1月24日 申请日期1998年9月18日 优先权日1997年10月9日
发明者阿卡迪·摩勒夫-施特伊曼 申请人:英芬能技术公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1