專利名稱:利用ram仿真移位寄存器的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)字計算,具體涉及一種用隨機(jī)存取寄存器(RAM)和一個短移位寄存器仿真一個非常長的移位寄存器的方法。
在許多應(yīng)用中需要實(shí)時處理一個輸入比特流。例如,可能需要為一個輸入比特流提供一個有限脈沖響應(yīng)濾波器,它的每一位系數(shù)是一個單獨(dú)的位。濾波器的K系數(shù)表示為{Ck}(k=0~K-1),輸入比特流(不定長度)的位表示為{Xn},這意味著濾波器的輸出是一個{Yn}的集合,如下式所示Yn=Σk=0K-1CkXn-k]]>表示的運(yùn)算是XOR運(yùn)算。
實(shí)現(xiàn)這個濾波器直接的方法是提供一個K位長的寄存器存儲系數(shù){Ck},一個K位長的移位寄存器存儲輸入比特序列{Xk}。當(dāng)每一個新的比特位到達(dá),移位寄存器的內(nèi)容移動一位以接受新的輸入位。注意這里自動地刪除了新輸入位之前K位的舊的輸入位。在各新的輸入位到達(dá)之間,對系數(shù)寄存器和移位寄存器中的內(nèi)容進(jìn)行內(nèi)部乘積運(yùn)算,以便得到最后的濾波輸出。
這種直接的方法缺陷在于對于可用長度的濾波器(例如,K=1024),在處理器芯片中構(gòu)造一個相應(yīng)長度的移位寄存器過于昂貴而不可行。因此,普遍認(rèn)為需要一種使用廉價存儲器如RAM仿真移位寄存器的方法,而且將會帶來巨大的好處。
根據(jù)本發(fā)明,提供了一種處理連續(xù)輸入比特的方法,包括步驟(a)提供(ⅰ)一個具有多個寄存器的RAM,每一個寄存器存儲一個字,所有的字等長,(ⅱ)一個至少等長于幾個字的移位寄存器,(ⅲ)一個指針;(b)將指針初始化指向RAM中的一個寄存器;(c)對于每個j位輸入組(ⅰ)將存入指針?biāo)傅募拇嫫鞯淖謱懭胍莆患拇嫫鳎?ⅱ)將字在移位寄存器中移動j位,(ⅲ)將j位輸入組寫入移位寄存器,由此產(chǎn)生一個位于移位寄存器的更新的字(ⅳ)將更新后的字存入指針?biāo)傅募拇嫫鳌?ⅴ)遞增指針。
RAM由一組可獨(dú)立編址的寄存器組成,每一個寄存器有不同的地址,其中存儲并隨后搜索特定長度(特別如8,16,32或64位)的字。本發(fā)明的關(guān)鍵在于使用一個按字尋址的存儲器以便連續(xù)獨(dú)立的輸入比特到達(dá)時實(shí)現(xiàn)高效存儲。這一點(diǎn)也通過提供一個相對短(一個字長)的移位寄存器和一個對RAM寄存器地址編碼的指針實(shí)現(xiàn)。指針被初始化指向一個RAM寄存器。當(dāng)每個輸入位到達(dá)時,存儲在由指針?biāo)傅腞AM寄存器中的字被寫入移位寄存器,移動一位為新來的輸入位讓出位置,并且寫回到它被搜索的RAM寄存器。指針遞增以指向下一個RAM寄存器。注意指針的“遞增“在此循環(huán)地定義對一個指向最后一個RAM寄存器的指針遞增將使得指針指向第一個RAM寄存器。注意輸入比特逆序存儲在RAM中,如下文詳述。
本發(fā)明在此以實(shí)例的方式,參考附圖描述,如圖所示FIG.1說明處于一個輸入比特存儲周期的開始處的RAM;FIG.2A和2B說明一個N-位移位寄存器處于輸入比特存儲周期的兩個不同的階段。
FIG.3說明處于輸入比特存儲周期的結(jié)束階段的RAM。
本發(fā)明是一種用RAM仿真一個非常長的移位寄存器的方法。特別地,本發(fā)明可用于對一序列比特提供一個有限脈沖響應(yīng)濾波,并且顛倒序列比特的順序。
參考附圖和相應(yīng)的描述,可能更易于理解本發(fā)明的移位寄存器仿真的原理及操作。
參見圖示,
圖1表示一個有M個RAM寄存器的RAM10,從R0到RM-1,每一個可存儲N位,總?cè)萘繛镹M位,此時NM位Xn到Xn- NM+1的輸入比特流已經(jīng)按照本發(fā)明被存儲。早一些到達(dá)的輸入比特,Xn-NM-1被存儲在RAM寄存器R0的第(N-1)位置,接下來到達(dá)的輸入比特Xn-NM+2被存儲在RAM寄存器R1的第(N-1)位置,以此類推。最新到達(dá)的比特Xn,被存儲在RAM寄存器RM-1的第0位置。指針P指向RAM寄存器R0,其中在第(N-1)位置存儲著最早到達(dá)并被存儲的輸入比特Xn-NM+1。
下一個輸入比特Xn+1到達(dá),開始下一個輸入比特存儲周期。第一步是將由指針P所指的RAM寄存器R0的內(nèi)容寫入N-位移位寄存器20。圖2A表示N-位移位寄存器20在這步結(jié)束時的狀態(tài)。第二步是將N-位移位寄存器20的比特移動一位,刪除位Xn-NM+1,為新的輸入比特Xn+1空出N-位移位寄存器20的第0位置。第三步是將位于第0位置的新的輸入比特Xn+1存入N-位移位寄存器20。圖2B表示本步結(jié)束時N-位移位寄存器20的狀態(tài)。第四步是將N-位移位寄存器20的內(nèi)容寫入由指針P所指的RAM寄存器R0中。最后,遞增指針P,指向RAM寄存器R1,R1此時將它的第(N-1)位置存儲最早到達(dá)的輸入比特Xn- NM+2。圖3表示本步結(jié)束時RAM的狀態(tài)。
在輸入比特存儲周期期間,RAM10的內(nèi)容可以以常規(guī)的方式被讀取和操作。例如,為了產(chǎn)生上文所述的有限輸入響應(yīng)濾波器(假設(shè)K=NM)的下一個輸出Yn+1,被存儲在RAM10中的M個字被連續(xù)讀取,并與系數(shù){Ck}相異(XOR),系數(shù){Ck}也被存儲在不同的存儲單元中的M個字中。注意為了正確地起作用,系數(shù){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}使用本發(fā)明的方法,將比特{Ck}作為輸入比特串產(chǎn)生的。
M和N的典型取值分別是32和32。
指針P周期的遞增。因此,在輸入比特存儲周期里,指針P初始指向最高標(biāo)注的寄存器RM-1,“遞增”指針P意味著將指針P值改變以指向最低標(biāo)注的寄存器R0。
本發(fā)明的原理也可應(yīng)用于在同一時間處理一個輸入比特流而不是一位。例如,使用長度為3的倍數(shù)的RAM寄存器,輸入比特流在同一時間可以被處理三位比特,在每一個輸入3比特存儲周期將移位寄存器的內(nèi)容移動3位。移位寄存器必須至少和RAM寄存器一樣長度;如果移位寄存器僅僅用于卸載和裝載RAM寄存器,而移位寄存器的輸出不再用于其他處理,則移位寄存器的長度不必是3的倍數(shù)位。唯一的實(shí)際的限制是如果比特以j組的方式處理,而j是一個常規(guī)RAM(例如8,16或32)的典型的字長度,那么處理過程將以字而不是比特為單位,例如在Dixon等人的美國專利No.5,568,443中現(xiàn)有技術(shù)所述。
盡管本發(fā)明以有限數(shù)目的實(shí)施方式描述的,它的變化,修改的其他應(yīng)用也將使本發(fā)明更具價值。
權(quán)利要求
1.一種處理連續(xù)輸入比特的方法。系統(tǒng)包括(a)提供(ⅰ)一個包含多個寄存器的RAM,每一個所述的寄存器存儲一個字,所有的字等長,(ⅱ)一個至少等長于幾個所述的字的移位寄存器,(ⅲ)一個指針;(b)將所述的指針初始化指向RAM中的一個所述的寄存器;并且(c)對于每個j位輸入組(ⅰ)將存入所述的指針?biāo)傅乃龅囊莆患拇嫫髦械淖謱懭胨鲆莆患拇嫫鳎?ⅱ)將所述的字在所述的移位寄存器中移動j位,(ⅲ)將所述的j位輸入組寫入所述的移位寄存器,由此產(chǎn)生一個位于所述的移位寄存器的更新的字,(ⅳ)將所述的更新后的字存入所述的指針?biāo)傅乃龅募拇嫫鳎?ⅴ)遞增所述的指針。
2.根據(jù)權(quán)利要求1的方法,其中j等于1。
3.根據(jù)權(quán)利要求1,其中所有的RAM中的寄存器與所述的每個字等長。
4.根據(jù)權(quán)利要求1,其中所述的移位寄存器與所述的每個字等長。
5.根據(jù)權(quán)利要求1,還包括步驟(d)連續(xù)地讀取和處理存儲在所述的RAM的所述的寄存器中的至少一些所述的字。
6.根據(jù)權(quán)利要求5,其中所有的被存儲在所述RAM的寄存器中的所述的字被連續(xù)讀取和處理。
全文摘要
一種利用RAM(10)和短移位寄存器(20)仿真一個長移位寄存器以存儲一個輸入位流的方法。一個指針指向RAM寄存器中的一個。為了存儲輸入位,指針?biāo)赶虻腞AM寄存器中的內(nèi)容被寫到移位寄存器(20)中并被移動一位,輸入位被存儲在移位寄存器(20)中由移位操作所空出的位置,移位寄存器(20)的更新的內(nèi)容重寫回指針?biāo)赶虻腞AM寄存器,并且指針遞增。
文檔編號G06F5/10GK1281559SQ9881066
公開日2001年1月24日 申請日期1998年9月18日 優(yōu)先權(quán)日1997年10月9日
發(fā)明者阿卡迪·摩勒夫-施特伊曼 申請人:英芬能技術(shù)公司