專利名稱:并行剩余運(yùn)算器和并行剩余運(yùn)算方法
技術(shù)領(lǐng)域:
本發(fā)明涉及并行剩余運(yùn)算器和并行剩余運(yùn)算方法,涉及例如并行輸入特 播解碼器等的輸出,檢測(cè)數(shù)字信息的差錯(cuò)的并行剩余運(yùn)算器和并行剩余運(yùn)算 方法。
背景技術(shù):
CRC(Cydic Redundancy Check:循環(huán)冗余校驗(yàn))代碼用于無(wú)線的分組通信 或光盤等的存儲(chǔ)盤等各種領(lǐng)域。例如,在無(wú)線通信系統(tǒng)中,通過(guò)無(wú)線線路進(jìn) 行通信,所以有可能在無(wú)線傳輸路徑上發(fā)生發(fā)送數(shù)據(jù)的差錯(cuò),因此設(shè)置使用 了CRC的糾錯(cuò)電路。在發(fā)送端,基于發(fā)送數(shù)據(jù)串生成CRC比特,并將其附 加到發(fā)送lt據(jù)串之后。利用巻積編碼或特播編碼等編碼方式對(duì)附加了 CRC比 特的比特串進(jìn)行編碼,由此獲得的編碼比特串被發(fā)送。
在非專利文獻(xiàn)1中詳細(xì)地記載了 CRC代碼的原理。
圖1是用于說(shuō)明CRC代碼的使用方法的圖。
在圖1中,通過(guò)CRC編碼單元12對(duì)來(lái)自輸入源(源)11的輸入數(shù)據(jù)串A 進(jìn)行CRC編碼,并將其作為發(fā)送數(shù)據(jù)串B通過(guò)通信路徑13發(fā)送到接收端。 通信路徑13例如為無(wú)線傳輸路徑,比特差錯(cuò)(噪聲)E被附加到發(fā)送數(shù)據(jù)。在 接收端,接收附加了比特差錯(cuò)E的發(fā)送數(shù)據(jù)串B,,通過(guò)CRC檢查單元14進(jìn) 行CRC檢查,并將基于CRC檢查的接收數(shù)據(jù)A,傳送到輸出端(sink;庫(kù))15。 在無(wú)線通信系統(tǒng)為組合了糾錯(cuò)能力高的特播編碼和ARQ(Auto Repeat reQuest;自動(dòng)重傳請(qǐng)求)的HARQ(Hybrid Auto Repeat reQuest;混合自動(dòng)重傳 請(qǐng)求)的情況下,通過(guò)CRC檢查單元14進(jìn)行CRC檢查來(lái)檢測(cè)差錯(cuò)的發(fā)生狀 況,在沒有發(fā)生差錯(cuò)時(shí),輸出數(shù)據(jù)串A的接收數(shù)據(jù)A',同時(shí)生成ACK信號(hào) 作為發(fā)送給通信對(duì)方的ACK/NACK信號(hào)。相反地,在發(fā)生差錯(cuò)時(shí),不輸出 接收數(shù)據(jù)而生成NACK信號(hào)作為發(fā)送給通信對(duì)方的ACK/NACK信號(hào)。
更一般性地進(jìn)行說(shuō)明。
假設(shè)n比特的輸入數(shù)據(jù)串為A呵aoa廣 an.2an—i]。 a0為MSB(Most SignificantBit;最高有效位)即先被發(fā)送的比特。假設(shè)ao,…A^分別為GF(2)的元素(即, 取值為0或1),如下式(l),以多項(xiàng)式表示比特串。
' =0
輸入數(shù)據(jù)串A被CRC編碼后,變成下式(2)的B。作為一般使用的CRC
編碼,通過(guò)在n比特的輸入數(shù)據(jù)串之后追加長(zhǎng)度為c的比特串來(lái)進(jìn)行。有時(shí)
將所追加的c比特稱為CRC。
B呵aoa卜.ac-2ac—iror卜.rc—2rc-i] …式(2 )
若用下式(3)表示CRC的多項(xiàng)式表現(xiàn),則可用下式(4)表示B的多項(xiàng)式表現(xiàn)。
A(£)) = |]r,£)c-'-'+r,D"…式(3 )
B(D)=A(D)DC+R(D) …式(4 )
作為CRC編碼,對(duì)應(yīng)于預(yù)定的c階的多項(xiàng)式G(D)來(lái)規(guī)定R(D),以使B(D) 能被G(D)整除。也就是說(shuō),A(D)D"余以G(D)的剩余為R(D)。 上述G(D)稱為生成多項(xiàng)式,用下式(5)表示。
G(Z)) = ZT + Ug,""-' =Z)e + g。£>c-1 + g,D" +…+ gc—3"2 + 2£> + gc—, ...式 (5 )
以下,有時(shí)將生成多項(xiàng)式的階數(shù)c稱為CRC的階數(shù)。
若匯總以上內(nèi)容,即變成下式(6)。 Q(D)為A(D)D^除以G(D)后所得的商。
B(D)=A(D)DC+R(D)=G(D)Q(D) …式(6 )
如上地進(jìn)行了 CRC編碼的n+c比特通過(guò)通信路徑13發(fā)送。在通信路徑 13上,被附加了比特差錯(cuò)(噪聲)E(D)。
作為CRC檢查,通過(guò)檢查接收值B,(D"B(D)+E(D)是否能被G(D)整除 來(lái)進(jìn)行。在接收值中不存在比特差錯(cuò)時(shí)(即在E(D)=0時(shí)),B,(D)能被G(D)整 除。在接收值中存在比特差錯(cuò)時(shí),在E(D)不能被G(D)整除的情況下,B,(D) 不能被G(D)整除。因此,能夠檢測(cè)在通信路徑上發(fā)生了比特差錯(cuò)。在E(D) 能被G(D)整除時(shí),無(wú)法通過(guò)CRC檢測(cè)存在差錯(cuò)的事實(shí)。但是,若c具有足 夠的長(zhǎng)度,則其發(fā)生率較低。作為c,常使用32至8的值。
圖2是用于說(shuō)明適用于更實(shí)際的系統(tǒng)中的CRC代碼的使用方法的圖。
在圖2中,通過(guò)CRC編碼單元22對(duì)來(lái)自信息源(source;源)21的輸入數(shù) 據(jù)A(D)進(jìn)行了 CRC編碼,并通過(guò)糾錯(cuò)編碼單元23將進(jìn)行了 CRC編碼的數(shù)據(jù)B(D)作為發(fā)送數(shù)據(jù)C(D),經(jīng)由通信路徑24發(fā)送給接收端。在發(fā)送端,在 CRC編碼后進(jìn)行糾錯(cuò)編碼。作為糾錯(cuò)編碼的方法,使用里德索羅門碼、巻積 碼和特播碼等。
有時(shí)在通信路徑24上,被附加了比特差錯(cuò)(噪聲)E。在接收端,接收附 加了比特差錯(cuò)E的發(fā)送數(shù)據(jù)串C,(D),通過(guò)糾錯(cuò)解碼單元25進(jìn)行糾錯(cuò)解碼而 輸出發(fā)送數(shù)據(jù)B,(D),通過(guò)CRC檢查單元26進(jìn)行CRC檢查,并將基于CRC 檢查的接收數(shù)據(jù)A,傳送到輸出端(sink;庫(kù))27。在接收端,對(duì)糾錯(cuò)碼進(jìn)行解碼。 由此,去除在通信路徑24上被附加的比特差錯(cuò)的大部分。通過(guò)CRC檢查單 元26的CRC檢查,檢查是否存在通過(guò)糾錯(cuò)解碼無(wú)法去除的差錯(cuò)。 (以往的例子1:逐次CRC計(jì)算電路) 圖3是表示眾所周知的逐次CRC計(jì)算電路的結(jié)構(gòu)的圖。 在圖3中,逐次CRC計(jì)算電路30由EXOR(邏輯"異或")電路31、 [ 0 ] 至[c-l]的觸發(fā)器(FF; flip-flop)32和AND電路33構(gòu)成。
圖3為使用了移位寄存器的一般結(jié)構(gòu),從輸入數(shù)據(jù)串的開頭每一時(shí)鐘周 期(clock cycle)地輸入1比特。
在逐次CRC計(jì)算電路30的CRC編碼中,對(duì)由a[t]表示的輸入端子每次 1比特地輸入ao至a。小在全部輸入后,c比特的觸發(fā)器(FF)所保持的值成為 CRC運(yùn)算結(jié)果。
在CRC檢查中,在每次1比特地輸入接收到的n+c比特的數(shù)據(jù)B,(D)后, 判定在觸發(fā)器中殘留的值是否為0?;蛘撸部奢斎隑,(D)的開頭的n比特, 判定在觸發(fā)器中殘留的值是否與B,(D)的殘留的c比特一致。
但是,在該結(jié)構(gòu)中,存在以下的問(wèn)題,即在輸入為n比特時(shí),進(jìn)行CRC 編碼至少需要n時(shí)鐘,處理延遲時(shí)間大。
(以往的例子2:計(jì)算部分CRC的方法)
在專利文獻(xiàn)1中,公開了通過(guò)計(jì)算部分CRC來(lái)縮短處理延遲時(shí)間的部分 CRC計(jì)算方法。
在專利文獻(xiàn)l中,將剩余R(D)的計(jì)算式變形為下式(7)。 = /i(£>) mod這里,預(yù)先求D"+"modG(D)(i^至n-l)的值(部分CRC),通過(guò)將輸入數(shù) 據(jù)并行地一次輸入,能夠以1時(shí)鐘周期求CRC。
圖4是表示部分CRC電路的結(jié)構(gòu)的圖,表示在上式(7)中n=16和c=24 的情況的部分CRC電路。
在圖4中,部分CRC電路40由運(yùn)算對(duì)象比特串A
A[15]輸入端子41、 取各個(gè)比特串A
A[15]與預(yù)先計(jì)算出的部分CRC之間的AND("與,,)的AND 電路42、以及匯總部分CRC的加法電路43構(gòu)成。
在AND電路42中,將預(yù)先計(jì)算出的部分CRC的各個(gè)運(yùn)算對(duì)象比特串 的有效值解碼為部分CRC代碼,而在加法電路43中,求對(duì)于運(yùn)算對(duì)象比特 串整體的CRC代碼。
但是,在專利文獻(xiàn)l所示的并行度n的結(jié)構(gòu)中,若n變大,則電路規(guī)才莫 變得很大。也考慮降低并行度而依序輸入數(shù)據(jù)的一部分,但從電路規(guī)模或處 理延遲方面考慮,難以立即計(jì)算對(duì)于i=0至n-l的任意的部分CRC。因此, 需要預(yù)先求所有的部分CRC,但在n較大時(shí),用于保持部分CRC的存儲(chǔ)器 的容量變大,造成成本的增加。
(以往的例子3:分割成子塊的方法)
另外,在專利文獻(xiàn)2和3中,公開了將數(shù)據(jù)分割成子塊而進(jìn)行并行處理 的子塊分割型并行CRC電路。在專利文獻(xiàn)2和3中,將剩余R(D)的計(jì)算式 變形為下式(8)。
i (D) = mod G(Z))
|modG(£ )
廣n-i
/7—l + C—,
廣m-l
modG(Z0十
ImodG(Z))
\,=0
modG(D)
廣m—1
modG(Z ) +
modG(£0
-(b)
...式(8 )
也就是說(shuō),將上式(8)的長(zhǎng)度n的數(shù)據(jù)分割成長(zhǎng)度m和n-m,分解為(a) 長(zhǎng)度n-m的CRC計(jì)算以及(b)長(zhǎng)度m的CRC計(jì)算。
但是,在該子塊分割方法中,需要在(a)的結(jié)果乘以DmmodG(D)后,計(jì)算 其結(jié)果除以G(D)的剩余。為了這些處理,需要追加乘法器和剩余計(jì)算器,造 成了電路規(guī)模和處理延遲的增加。
作為最一般的并行化方法,有串行并行變換型的并行CRC電路。圖5A和圖5B是表示串行并行變換型的并行CRC電路的圖。在圖5A 中,S/P變換型并行CRC電路50由S/P變換器51和并行CRC電路52構(gòu)成。
如圖5B所示,S/P變換型并行CRC電路50通過(guò)S/P變換器51對(duì)輸入 進(jìn)行串行并行變換,并由并行CRC電路52進(jìn)行并行處理的CRC計(jì)算。并行 處理例如每次lbyte(字節(jié))地進(jìn)行處理。該并行化方法無(wú)論在硬件或軟件中都 有較多的實(shí)際安裝和應(yīng)用例。
非專利文獻(xiàn)l:今井秀樹著、"符號(hào)理論"、電子信息通信學(xué)會(huì)、1990年
3月
專利文獻(xiàn)1:特開平第8-149017號(hào)公報(bào) 專利文獻(xiàn)2:特表第2003-523682號(hào)公報(bào) 專利文獻(xiàn)3:特開第2005-6188號(hào)公報(bào)
發(fā)明內(nèi)容
發(fā)明需要解決的問(wèn)題
然而,在這樣以往的CRC計(jì)算電路中,存在如下的課題。
(1) 如上所述,在逐次CRC計(jì)算電路中處理延遲時(shí)間非常大,在部分CRC 電路中用于保持部分CRC的存儲(chǔ)器的容量大,造成成本的增加。
(2) 由于以下的原因,子塊分割型并行CRC電路需求高。 因?yàn)椴⑿刑夭ソ獯a器的輸出為子塊分割型,所以有以下的優(yōu)點(diǎn),即若能
夠適用子塊分割型并行CRC電路,則能夠不通過(guò)存儲(chǔ)器而直接進(jìn)行輸入。也 就是說(shuō),因?yàn)閷⒉⑿刑夭ソ獯a器的輸出直接輸入到CRC計(jì)算電路,所以并行 CRC計(jì)算電路需要為子塊分割型(例如,將數(shù)據(jù)序列分割成長(zhǎng)度M的小塊)而 不為串行并行變換型(例如,從開頭每次lbyte地進(jìn)行處理)。因此,與使用S/P 型并行CRC電路的情況相比,子塊分割型并行CRC電路不需要作為接口的 存儲(chǔ)器,帶來(lái)處理延遲的削減以及電路規(guī)模和電流的削減。然而,在該子塊 分割型并行CRC電路中,因?yàn)榉指畛勺訅K后進(jìn)行并行處理,所以需要在進(jìn)行 并行處理的多個(gè)CRC剩余發(fā)生器的后級(jí)追加乘法器和加法器等剩余計(jì)算器, 造成電路規(guī)模和處理延遲的增加。
(3) 在串行并行變換型并行CRC電路中,需要接口存儲(chǔ)器,由此帶來(lái)處 理延遲的增加,造成起因于ACK發(fā)送的延遲和反復(fù)停止的延遲的消費(fèi)電流的 增力口。如上所迷,在子塊分割型并行CRC電路與進(jìn)行子塊分割的并行特播解碼 器組合時(shí),優(yōu)點(diǎn)較大,但以往的子塊分割型并行CRC電路的處理延遲和電路 規(guī)模較大,所以期望處理延遲和電路規(guī)模較小的CRC電路。
本發(fā)明的目的在于,提供能夠減小處理延遲,無(wú)需追加乘法電路和剩余 電路而能夠減小電路規(guī)模的并行剩余運(yùn)算器。
解決該問(wèn)題的方案
本發(fā)明的并行剩余運(yùn)算器,輸入數(shù)據(jù)被分割成多個(gè)子塊后并行輸入到該 并行剩余運(yùn)算器中,該并行剩余運(yùn)算器所采用的結(jié)構(gòu)包括初始值生成單元, 生成與所述各個(gè)子塊的開始點(diǎn)對(duì)應(yīng)的部分剩余作為初始值;部分剩余生成單
值,并基于規(guī)定的遞推公式依序生成其余的部分剩余;邏輯單元,進(jìn)行所述 輸入數(shù)據(jù)與從所述部分剩余生成單元輸出的部分剩余的值的邏輯運(yùn)算;以及 累積加法單元,將從所述邏輯單元輸出的值累積相加。
本發(fā)明的并行剩余運(yùn)算器,輸入數(shù)據(jù)被分割成多個(gè)子塊后并行輸入到該 并行剩余運(yùn)算器中,該并行剩余運(yùn)算器所采用的結(jié)構(gòu)包括初始值生成單元, 生成與所述各個(gè)子塊的最終點(diǎn)對(duì)應(yīng)的部分剩余作為初始值;逆序部分剩余生 成單元,從所述初始值生成單元接收與各個(gè)子塊的最終點(diǎn)對(duì)應(yīng)的部分剩余作 為初始值,并基于規(guī)定的遞推公式依序生成其余的部分剩余;邏輯單元,進(jìn) 行所述輸入數(shù)據(jù)與從所述逆序部分剩余生成單元輸出的逆序部分剩余的值的 邏輯運(yùn)算;以及累積加法單元,將從所述邏輯單元輸出的值累積相加。
本發(fā)明的并行剩余運(yùn)算方法,包括以下的步驟在將長(zhǎng)度n的輸入數(shù)據(jù) 分割成長(zhǎng)度n-m和長(zhǎng)度m的數(shù)據(jù)串,并將分割后的各個(gè)數(shù)據(jù)串作為子塊時(shí), 根據(jù)在最大階數(shù)c所確定的多項(xiàng)式G(D)的值,預(yù)先求各個(gè)子塊的i=0和m的 開始點(diǎn)的部分剩余即D"化modG(D)和D"+^modG(D)作為初始值;以及將所 述D"+emodG(D)和D"WmodG(D)作為初始值,依序計(jì)算與i=l至m-l和 i=m+l至n-1對(duì)應(yīng)的部分剩余。
本發(fā)明的并行剩余運(yùn)算方法,包括以下的步驟在將長(zhǎng)度n的輸入數(shù)據(jù) 分割成長(zhǎng)度n-m和長(zhǎng)度m的數(shù)據(jù)串,并將分割后的各個(gè)數(shù)據(jù)串作為子塊時(shí), 根據(jù)在最大階數(shù)c所確定的多項(xiàng)式G(D)的值,預(yù)先求各個(gè)子塊的i=m-l和n-l 的最終點(diǎn)的部分剩余即D"+c咖"modG(D)和D"扭如"modG(D)作為初始值;以 及將所述D"+c如")modG(D)和Dn-'+c余')modG(D)作為初始值,依序計(jì)算與i=m-2至0和i=n-2至m對(duì)應(yīng)的逆序部分剩余。 發(fā)明的效果
根據(jù)本發(fā)明,能夠減小處理延遲,無(wú)需存儲(chǔ)所有的部分CRC,并且無(wú)需 追加乘法電路和剩余電路而能夠減小電路規(guī)模。尤其,在與進(jìn)行子塊分割的 并行特播解碼器組合時(shí),能夠顯著地減小處理延遲。
圖1是用于說(shuō)明CRC代碼的使用方法的圖。
圖2是用于說(shuō)明適用于實(shí)際的系統(tǒng)的CRC代碼的使用方法的圖。
圖3是表示以往的CRC計(jì)算電路的結(jié)構(gòu)的圖。
圖4是表示以往的部分CRC電路的結(jié)構(gòu)的圖。
圖5B是表示以往的串行并行變換型的并行CRC電路的圖。 圖6是表示本發(fā)明實(shí)施方式1的并行剩余運(yùn)算器的整體結(jié)構(gòu)的方框圖。 圖7是表示上述實(shí)施方式1的并行剩余運(yùn)算器的數(shù)據(jù)的輸入和輸出的時(shí) 序圖。
圖8是由將上述實(shí)施方式1的并行剩余運(yùn)算器的部分CRC生成單元計(jì)算 的部分CRC匯總成表的圖。
圖9是表示上述實(shí)施方式1的并行剩余運(yùn)算器的部分CRC生成單元的電
路結(jié)構(gòu)的圖。
圖IO是表示上述實(shí)施方式1的并行剩余運(yùn)算器的部分CRC生成單元的 動(dòng)作的時(shí)序圖。
圖11是表示上述實(shí)施方式1的并行剩余運(yùn)算器的AND單元的電路結(jié)構(gòu) 的圖。
圖12是表示上述實(shí)施方式1的并行剩余運(yùn)算器的AND單元的動(dòng)作的時(shí) 序圖。
圖13是表示上述實(shí)施方式1的并行剩余運(yùn)算器的累積加法單元的電路結(jié) 構(gòu)的圖。
圖14是表示上述實(shí)施方式1的并行剩余運(yùn)算器的初始值生成單元的結(jié)構(gòu) 的方框圖。
圖15是表示上述實(shí)施方式1的并行剩余運(yùn)算器的初始值候補(bǔ)生成單元的電^各結(jié)構(gòu)的圖。
圖^是表示上述實(shí)施方式1的并行剩余運(yùn)算器的初始值生成單元的動(dòng)作 的時(shí)序圖。
圖17是表示本發(fā)明實(shí)施方式2的并行剩余運(yùn)算器的整體結(jié)構(gòu)的方框圖。
圖18是表示上述實(shí)施方式2的并行剩余運(yùn)算器的逆序部分CRC生成單 元的電路結(jié)構(gòu)的圖。
圖19是將由上述實(shí)施方式2的并行剩余運(yùn)算器的各個(gè)部分CRC生成單 元計(jì)算的部分CRC匯總為表的圖。
圖20是表示上述實(shí)施方式2的并行剩余運(yùn)算器的初始值生成單元的動(dòng)作 的時(shí)序圖。
具體實(shí)施例方式
以下,參照附圖詳細(xì)地-沈明本發(fā)明的實(shí)施方式。 (基本原理)
首先,說(shuō)明本發(fā)明的基本原理。
本發(fā)明具有與整體結(jié)構(gòu)相關(guān)的[重點(diǎn)l]、與部分CRC生成電路相關(guān)的[重 點(diǎn)2]、以及與部分CRC生成電路(逆序)相關(guān)的[重點(diǎn)3]。 [重點(diǎn)l]:關(guān)于整體結(jié)構(gòu)
在本發(fā)明中,將剩余R(D)的計(jì)算式變形為下式(9)。 i (D) = v4(£ )modGCD)
=§(a,ZT-'+c-'modG(D)) …式(9 )
=+^(fl,ZT-'"-' modG(D)) + ^M—' modG(Z)))
iz5-(a) -(b)
也就是說(shuō),與上述以往的例子2(計(jì)算部分CRC的方法)同樣,將式子變 形以計(jì)算CRC作為部分CRC(D"+"modG(D))的和,還與上述以往的例子3(分 割成子塊的方法)同樣,將長(zhǎng)度n的數(shù)據(jù)分割成長(zhǎng)度n-m和長(zhǎng)度m。以下,將 分割后的各個(gè)數(shù)據(jù)串稱為子塊。輸入數(shù)據(jù)被分割成與上式(9)中(a)對(duì)應(yīng)的a。 至am.,和與(b)對(duì)應(yīng)的am至a^,并分別對(duì)其進(jìn)行并行計(jì)算,從而實(shí)現(xiàn)快速計(jì)算。
此時(shí),在本發(fā)明中,如下計(jì)算部分剩余(部分CRC)。這里,假設(shè)對(duì)輸入 數(shù)據(jù)而言,與上式(9)中的(a)對(duì)應(yīng)的子塊1從ao開始至a^每1比特地依序給 出(輸入),與上式(9)中的(b)對(duì)應(yīng)的子塊2從am開始至a"以每1比特依序給出(輸入)。預(yù)先求在i=0, m中的部分CRC的值(即,在子塊的開始點(diǎn)上的 部分CRC)D"-'+emodG(D)和Dn-1+c>mmodG(D)。將上述兩個(gè)值作為初始值,依序計(jì)算與i=l至m-l和i=m+l至n-l 對(duì)應(yīng)的部分CRC。
采用了如上述的計(jì)算方法,因此本發(fā)明的子塊分割型并行CRC電路由于 (l)無(wú)需存儲(chǔ)所有的部分CRC、以及(2)無(wú)需追加乘法電路和剩余電路,所以具 有小型和低延遲的特征。:關(guān)于部分CRC生成電路
對(duì)基于上述子塊的開始點(diǎn)上的部分CRC依序求其他的部分CRC的方法, 說(shuō)明優(yōu)選的計(jì)算方法。
在將生成多項(xiàng)式設(shè)為下式(10)時(shí),通常使用的CRC的生成多項(xiàng)式具有最 低階數(shù)的項(xiàng)的系數(shù)gd的值為1的特征。
G(Z)) =+ gg,D"—' =£>c + g。Z)c—1 ++…+ gc—3"2 + gc—2D + gc—, ...式
(10)
若利用該特征,則根據(jù)下式(ll)所示的遞推公式,能夠容易地從
DTmodG(D)的值求出DT"modG(D)的值。
,li殳DMT(D) = DT mod G(D)時(shí),
(DMT(D) + G(D)) 1在(DM(T)的最低階數(shù)的系數(shù)為1時(shí))
DMt一,(D)= <
DMT(D)》1在(DM(T)的最低階數(shù)的系數(shù)為0時(shí))
...式(ll) L
其中,如下定義運(yùn)算子>>。
假設(shè)^(£ ) = ^>,zr時(shí),
,=0 /7-1
為(X(D)》1)
另外,僅通過(guò)鞋位寄存器能夠?qū)崿F(xiàn)運(yùn)算子>>。
另外,的最低階數(shù)的系數(shù)是指(")的Z)°的系數(shù)。
C假設(shè)DMrP卜l^,Zy時(shí),Z)。的系數(shù)為a,,。)
如上所述,根據(jù)_以下的步驟,能夠高效地實(shí)現(xiàn)在上述[重點(diǎn)l]中所述的并
行CRC計(jì)算。
預(yù)先求 DMn-l+c(D)=Dn-|+cmodG(D) 以及DMn-l+e.m(D)=Dn-1+e-mmodG(D)?;贒Mn-i+e(D),依序求與i=l至m-l對(duì)應(yīng)的部分CRC(DMn扭-,(D) 至DNW(m.D(D))以及與i=m+l至n-1對(duì)應(yīng)的部分CRC(DM由.—(D)至 DMn_1+c-n(D))。
如上所述,采用了使用移位寄存器依序計(jì)算部分CRC的方法,因此本發(fā) 明的子塊分割型并行CRC電路能夠不進(jìn)行在modG(D)上所定義的多項(xiàng)式的 除法而以小型的電路計(jì)算部分CRC。:關(guān)于部分CRC生成電路(逆序)
在上述說(shuō)明中,各個(gè)子塊的數(shù)據(jù)根據(jù)原來(lái)的數(shù)據(jù)順序依序輸入(例如,a0 至aw),但也能夠?qū)崿F(xiàn)逆序(例如,aw至ao)輸入的并行CRC計(jì)算電路。
也就是說(shuō),在下述的計(jì)算式(12)中,在子塊1中以aw至ao的順序輸入 數(shù)據(jù),而在子塊2中以a^至am的順序輸入數(shù)據(jù)。其對(duì)將特播解碼器的輸出 直接輸入到并行CRC計(jì)算器那樣的情況特別有效。
=§(a,D"-1+c-'modG(Z))) …式(12)
,=0
=H,D"-m。dG(D))+ X(a,D"-'"-' m。dG(")) 部分CRC的生成步驟如下。預(yù)先求在i-m-l, n-1中的部分CRC的值(即,在子塊的最終點(diǎn)中 的部分CRC)D"+c如')modG(D)和Dn扭如)modG(D)。將上述兩個(gè)值作為初始值,依序計(jì)算與i=m-2至0和i=n-2至m 對(duì)應(yīng)的部分CRC。
作為優(yōu)選的方法,使用以下的遞推公式(13)即可。 有l(wèi)i殳DMT(D) = DT modG(D)時(shí),
DMT(D)D + G(D)在(DM(T)的最高階數(shù)的系數(shù)為0時(shí))
DMT+I(D)= 一
DMT(D)D在(DM(T)的最高階數(shù)的系數(shù)為1時(shí))
…式(13)
如上所述,采用了逆序地依序生成部分CRC的方法,因此本發(fā)明的子塊 分割型并行CRC電路即使在數(shù)據(jù)(部分性地)成為逆序時(shí),也能夠進(jìn)行CRC計(jì) 算而不需要進(jìn)行重新排列的操作。其結(jié)果,能夠解決用于重新排列搡作的處理延遲。
(實(shí)施方式1)
圖6是表示基于上述基本原理的本發(fā)明實(shí)施方式1的并行剩余運(yùn)算器的 整體結(jié)構(gòu)的方框圖。本實(shí)施方式為與上述[重點(diǎn)1]和[重點(diǎn)2]對(duì)應(yīng)的例子。在"重 點(diǎn)"的說(shuō)明中,說(shuō)明了將數(shù)據(jù)分割成兩個(gè)(2并行序列(two parallel sequences)) 的例子,但在實(shí)施方式1中,以4并行序列(four parallel sequences)的情況為 例進(jìn)行說(shuō)明。也就是說(shuō),將長(zhǎng)度n的輸入數(shù)據(jù)分割成i=0至m-l 、 i=m至2m-l 、 i=2m至3m-l以及K3m至n-l的四個(gè)子塊。另夕卜,假設(shè)CRC的長(zhǎng)度為24比 特(。=24)。
在圖6中,并行CRC計(jì)算電路(并行剩余運(yùn)算器)100所采用的結(jié)構(gòu)包括 輸入端子101至104(輸入端子<1>至<4>)、初始值生成單元110、部分CRC 生成單元lll至114(部分CRC生成單元〈1〉至〈4〉)、AND單元121至124(AND 單元<1〉至<4>)、以及累積加法單元130。
初始值生成單元110生成用于輸入到部分CRC生成單元111至114的初 始值II至14(初始值<1>至<4>)。具體而言,生成各個(gè)子塊的i=0, m, 2m, 3m中的開始點(diǎn)的部分CRC(部分剩余)即Dn-1+cmodG(D)、 Dn-1+(>mmodG(D)、 Dn-1+(>2mmodG(D)、以及D"+c^modG(D)作為初始值。參照?qǐng)D14至圖16在后 面論述初始值生成單元110的實(shí)施方法。
部分CRC生成單元111至114(部分CRC生成單元0至〈4〉)從初始值生 成單元110接收與各個(gè)子塊的開頭對(duì)應(yīng)的部分CRC作為初始值,并基于遞推 公式依序生成剩余的部分CRC。參照?qǐng)D8至圖10在后面論述部分CRC生成 單元111至114的結(jié)構(gòu)和動(dòng)作。
AND單元121至124(AND單元<1>至<4>)計(jì)算從輸入端子101至104 輸入的1比特與從部分CRC生成單元111至114輸出的24比特的值之間的 AND(邏輯"與,,)。另夕卜,其并不限定于AND(邏輯"與,,),只要是計(jì)算部分CRC 的值的邏輯的邏輯電路即可。參照?qǐng)D11和圖12在后面論述AND單元121 至124的結(jié)構(gòu)和動(dòng)作。
累積加法單元130將從AND單元121至124輸出的值累積相加。這些 加法為每個(gè)比特的邏幹'異或"(EXOR)。參照?qǐng)D13在后面論述累積加法單元 130的結(jié)構(gòu)和動(dòng)作。
以下,說(shuō)明如上構(gòu)成的并行剩余運(yùn)算器的動(dòng)作。首先,論述并行CRC計(jì)算電路100的整體的動(dòng)作定時(shí)。
在本實(shí)施方式中,例舉將數(shù)據(jù)分割成四個(gè)后的4并行序列的情況。另夕卜, 假設(shè)CRC的長(zhǎng)度為24比特(c-24)。
假設(shè)輸入數(shù)據(jù)的長(zhǎng)度為N[比特]分割數(shù)據(jù),使子塊1至3的長(zhǎng)度為M[比 特]、以及子塊4的長(zhǎng)度為其余的N-3M[比特]。該分割方法僅為一個(gè)例子,也 可以任意的設(shè)定。
圖7是表示數(shù)據(jù)的輸入和輸出的時(shí)序圖,將輸入數(shù)據(jù)表示為A[n-l:O]。 另外,在圖7中,t表示時(shí)刻。在圖6中未記載信號(hào)t。
對(duì)輸入端子101,以A[O]作為開頭每個(gè)比特地輸入al所示的子塊1的數(shù) 據(jù)(A[O]至A[M-l])。對(duì)輸入端子102,以A[M]作為開頭每個(gè)比特地輸入a2 所示的子塊2的數(shù)據(jù)(A[M]至A[2M-1])。輸入端子103和104也同樣。另夕卜, 在上述例子中,子塊4的長(zhǎng)度與其他的子塊不同(因?yàn)閿?shù)據(jù)是零數(shù),所以與 其他子塊相比,子塊4的數(shù)據(jù)少1比特)。因此,如圖7的a4所示,假設(shè)在 時(shí)刻M-l ,對(duì)輸入端子104輸入0。
在輸入所有的數(shù)據(jù)后,從CRC輸出端子(r)輸出期望的CRC的值。在本 實(shí)施方式中,在完成所有的輸入后,只要將輸入端子的值保持為0,即可在 輸出端子(r)中保持期望的CRC的值。
接著,說(shuō)明并行CRC計(jì)算電路100的各個(gè)模塊。 〔部分CRC生成單元111至114〕
圖8是將由部分CRC生成單元111至114計(jì)算(負(fù)責(zé))的部分CRC匯總為 表的圖。這里,使用標(biāo)記即DM{T}(D)。 DM{T}(D)=DMT(D)=DTmodG(D)。
部分CRC生成單元111至114(部分CRC生成單元〈1〉至〈4"從初始值生 成單元IIO接收與各個(gè)子塊的開頭(O, M, 2M和3M)對(duì)應(yīng)的部分CRC作為 初始值,并基于遞推公式(ll)依序生成剩余的部分CRC。
例如,在圖8的表中,在輸入數(shù)據(jù)序號(hào)為0至M-l以及初始值為 DM(N-l+cKD)的情況下,電路序號(hào)1的部分CRC生成單元111所生成的部 分CRC為DM(N-l+c-lKD)至DM(N-l+c-(M-l)KD)。同樣地,部分CRC生 成單元112至114將與各個(gè)子塊的開頭(M,2M和3M)對(duì)應(yīng)的部分CRC作為初 始值,并基于上式(11)依序生成剩余的部分CRC。
接著,以部分CRC生成單元111為例,更詳細(xì)地說(shuō)明。
圖9是表示部分CRC生成單元111的電路結(jié)構(gòu)的圖。部分CRC生成單元111至114采用相同結(jié)構(gòu),所以以部分CRC生成單元111作為代表進(jìn)行說(shuō)明。
在圖9中,部分CRC生成單元111由選擇器201 、D觸發(fā)器(FF)202、EXOR 電路203以及AND電路204構(gòu)成。
部分CRC生成單元111采用以相當(dāng)于24比特的D觸發(fā)器202為中心的 結(jié)構(gòu)。另外,觸發(fā)器連環(huán)相接的結(jié)構(gòu)也往往稱為移位寄存器。
11[23:0]為初始值,g[23:0]為表示生成多項(xiàng)式的值。例如,在生成多項(xiàng)式 由下式(14)定義時(shí),
定義為g
=g[ 17]=g[ 18]=g[22]=g[23]=1,
g[ 1 ]=g[2]=...=g[ 15]=g[ 16]=g[ 19]=g[20]=g[21 ]=0
其中,g[i]為D""的系數(shù)。Dc的系數(shù)總是l,所以無(wú)需定義g[-l]。
G(D)=D24+D23+D6+D5+D+1 ...式(14)
若以16進(jìn)制數(shù)表示,
為g=C60001H。
pl[23:0]為所生成的部分CRC。
接著,說(shuō)明部分CRC生成單元111的動(dòng)作。
圖0是表示部分CRC生成單元111的動(dòng)作的時(shí)序圖。在圖10中,Id 為控制信號(hào),在ld-l時(shí),初始值Il的值被載入到移位寄存器。這里,如圖8 的表所示,具體而言,II的值為DM{N-l+c}(D)。在圖10的時(shí)序圖中,為了 看清楚,假設(shè)N-l+c-98。
這樣,在時(shí)刻t-O,輸出所載入的值本身作為與A[O]對(duì)應(yīng)的部分CRC。 同時(shí),在部分CRC生成單元111內(nèi)部,基于遞推公式計(jì)算下一個(gè)DM[97]的 值。
根據(jù)電路圖的信號(hào)名稱,計(jì)算式如下式(15)所示。另外,pl,為更新后的(例 如DM[97])移位寄存器的內(nèi)容,而pl為更新前的(例如DM[98])移位寄存器的 內(nèi)容。
pl,[23:0]={pl[22:0],0}+pl[23]*{g[22:0],l} …式(15) 在上式(15)中的"+,,為每個(gè)比特的邏輯"異或"(EXOR), "*"為邏輯 "與"(AND)。另外,標(biāo)記(pl[22:0],0)表示移位操作。也就是說(shuō),意味著將pl 的值向高位方向移位相當(dāng)于1比特,將0插入LSB(least significant bit:最低 有效位)。同樣地,(g[22:0],l)為移位操作,但意味著對(duì)LSB插入1。如上所述,并行CRC計(jì)算電路100的部分CRC生成單元111至114僅 采用移位寄存器、以及每個(gè)比特的AND和EXOR電路的簡(jiǎn)單的結(jié)構(gòu),可根 據(jù)輸入數(shù)據(jù)適時(shí)地計(jì)算所需的部分CRC。 〔AND單元121至124〕
AND單元121至124(AND單元<1>至<4>)計(jì)算從輸入端子101至104 輸入的1比特與從上述部分CRC生成單元111至114輸出的24比特的值之 間的AND(邏輯"與")。
圖11是表示AND單元121的電路結(jié)構(gòu)的圖。AND單元121至124采用 相同結(jié)構(gòu),所以以AND單元121作為代表進(jìn)行說(shuō)明。
在圖11中,AND單元121由計(jì)算從輸入端子101輸入的1比特與從部 分CRC生成單元111至114輸出的24比特的值之間的AND(邏輯"與")的AND 電路211構(gòu)成。
在圖11所示的:AMD單元121中,計(jì)算從輸入端子101輸入的1比特與
從部分CRC生成單元111至114輸出的24比特的值之間的AND。也就是說(shuō),
相當(dāng)于在下式(15)中,求ai與Dn-1+c-im o d G(D)的積的操作。 mod G(Z))
=mod…式(15)
='"-' m。dG(")) + U(a,ZT-modG(Z)))
圖12是表示AND單元121的動(dòng)作的時(shí)序圖。在圖12中,表示時(shí)刻的t 與所述圖10的t相同。也就是說(shuō),在部分CRC生成單元111至114中,適時(shí) 地生成應(yīng)與輸入數(shù)據(jù)對(duì)應(yīng)的部分CRC。 〔累積加法單元130〕
圖13是表示累積加法單元130的電路結(jié)構(gòu)的圖。
在圖13中,緊積加法單元130由EXOR電路211、觸發(fā)器(FF)222和開 關(guān)電路223構(gòu)成。
在累積加法單元130中,將從八,單元<1>至<4>輸出的值累積相加。 這里,其加法為每個(gè)比特的邏輯"異或"(EXOR)。也就是說(shuō),對(duì)i-0至23進(jìn)行 下式(16)所示的運(yùn)算。
s,[i]=s[i] EXORql[i] EXORq2[i] EXORq3[i] EXORq4[i] …式(16)
在上式(16)中,s為更新前的觸發(fā)器的值,s,為更新后的觸發(fā)器的值?!渤跏贾瞪蓡卧?10〕 說(shuō)明初始值生成單元110的實(shí)施方法。
在預(yù)先規(guī)定子塊長(zhǎng)度M和生成多項(xiàng)式時(shí),預(yù)先求需要的D^modG(D)的 值,并將其存儲(chǔ)在存儲(chǔ)器(RAM或ROM)中即可。能取的I的種類少,所以存 儲(chǔ)器容量可較小。
在本實(shí)施方式中,若子塊長(zhǎng)度M為固定值,則僅求DM{N-l+c}(D)、 DM{N-l+c-M}(D)、 DM(N-l+c-2M〉(D)以及DM(N畫l+c匿3M)(D)的四個(gè)值即 可,所以存儲(chǔ)器容量只要為24比特x4種二96比特即可。
另外,即^f吏在改變子塊長(zhǎng)度M或生成多項(xiàng)式時(shí),在每次改變時(shí),利用 CPU或DSP通過(guò)軟件求值,并將其存儲(chǔ)在RAM中即可。
基于以下的遞推公式(17)能夠求Dn+ImodG(D)(I=0至N-l)。 T=c+I, 1=0 至N-1。
DT+' mod G(D) = (DT mod G(D))D mod G(D)
(DT modG(D))D + G(D)在(D'「 mod G(D)的最高階數(shù)的系數(shù)為1時(shí))
=《
(DT mod G(D) )D在(D7 mod G(D)的最高階數(shù)的系數(shù)為0時(shí)) ...式(lS 其中,DcmodG(D)=G(D)-Dc。
在需要快速地生成上述的初始值時(shí),使用如下所示的硬件即可。
圖14是表示初始值生成單元IIO的結(jié)構(gòu)的方框圖。
在圖14中,初始值生成單元110所采用的結(jié)構(gòu)包括初始值候補(bǔ)生成單 元230、數(shù)據(jù)獲得定時(shí)生成單元231、數(shù)據(jù)獲得單元241至244(數(shù)據(jù)獲得單元 <1>至<4>)以及初始值存儲(chǔ)單元251至254(初始值存儲(chǔ)單元<1>至<4>)。
圖15是表示上述初始值候補(bǔ)生成單元230的電路結(jié)構(gòu)的圖。
在圖15中,初始值候補(bǔ)生成單元230由選擇器261、觸發(fā)器(FF)262、 EXOR電路263以及AND電路264構(gòu)成。
初始值候補(bǔ)生成單元230依序求D^modG(D)的從1=0至N-l的值。內(nèi) 部結(jié)構(gòu)如圖15所示。
圖16是表示初始值生成單元110的動(dòng)作的時(shí)序圖。
數(shù)據(jù)獲得單元241(數(shù)據(jù)獲得單元0)獲得部分CRC生成單元111(參照?qǐng)D 6)所使用的初始值DM{N-l+c}(D),并將其存儲(chǔ)在初始值存儲(chǔ)單元251(初始值存儲(chǔ)單元<1>)中。也就是說(shuō),如圖16所示,數(shù)據(jù)獲得定時(shí)生成單元231在初 始值候補(bǔ)生成單元230輸出DM《N-l+c)(D)時(shí),對(duì)ldl發(fā)送觸發(fā)信號(hào)。數(shù)據(jù)獲 得單元241根據(jù)ldl的觸發(fā)信號(hào)獲得初始值候補(bǔ)生成單元230的輸出,從而 能夠獲得應(yīng)存儲(chǔ)在初始值存儲(chǔ)單元1中的值DM(N-l+c〉。
同樣地,在輸出DM(N-l+c-MKD)的定時(shí)向ld2輸出觸發(fā)信號(hào),在輸出 DM{N-l+c-2M}(D)的定時(shí)(I=j=N-l-2M)向ld3輸出觸發(fā)信號(hào),在輸出 DM(N-l+c-3MKD)的定時(shí)(^l^N-l-3M)向ld4輸出觸發(fā)信號(hào)。
如上所述,根據(jù)本實(shí)施方式,并行CRC計(jì)算電路100包括輸入端子 101至104,輸入數(shù)據(jù)被分割成多個(gè)子塊后并行輸入多個(gè)子塊;初始值生成單 元110,生成與各個(gè)子塊的開始點(diǎn)對(duì)應(yīng)的部分CRC作為初始值;部分CRC 生成單元111至114,接收與各個(gè)子塊的開頭對(duì)應(yīng)的部分CRC作為初始值, 并基于規(guī)定的遞推公式依序生成剩余的部分CRC; AND單元121至124,計(jì) 算部分CRC的值的邏輯"與,,;以及累積加法單元130,將從AND單元121 至124輸出的值累積相加。在部分CRC生成中,將對(duì)應(yīng)于第m個(gè)輸入的階 數(shù)(n-l-m)與生成多項(xiàng)式的階數(shù)c相加后的階數(shù)(i^-l-m+c)而表示的剩余R(D) 的計(jì)算式變形為部分CRC(D"+e-imodG(D))的和所示的式子,生成與各個(gè)子塊 的開始點(diǎn)對(duì)應(yīng)的部分CRC。由此,在本實(shí)施方式中,能夠減小處理延遲,無(wú) 需追加乘法電路和剩余電路而能夠減小電路規(guī)模。具體的效果如下。
(1) 在以往的結(jié)構(gòu)中,求分割了的輸入數(shù)據(jù)的CRC后進(jìn)行合成,所以需 要追加乘法電路和剩余電路,造成電路規(guī)模或處理延遲的增大。在本實(shí)施方 式中,通過(guò)設(shè)置與并行度對(duì)應(yīng)的個(gè)數(shù)的部分CRC生成單元111至114,能夠 以簡(jiǎn)單的結(jié)構(gòu)進(jìn)行子塊分割型的并行CRC計(jì)算。另外,能夠使用AND電路 以取代以往的乘法電路,所以具有延遲小的優(yōu)點(diǎn),并且不需要在最后級(jí)追加 剩余計(jì)算電路,從而具有延遲和電路規(guī)模小的優(yōu)點(diǎn)。
(2) 在如以往的例子2那樣的以往的結(jié)構(gòu)中,需要預(yù)先求部分CRC,所以 造成存儲(chǔ)容量與輸入數(shù)據(jù)的長(zhǎng)度成比例地增加。相對(duì)于此,在本實(shí)施方式中, 使部分CRC生成單元111至114基于初始值依序生成新的值,所以能夠以與 輸入數(shù)據(jù)的長(zhǎng)度無(wú)關(guān)的電路規(guī)模和存儲(chǔ)容量計(jì)算CRC。
(3) 在本實(shí)施方式中,采用了使用移位寄存器依序計(jì)算部分CRC的方法, 因此能夠不進(jìn)行在modG(D)上所定義的多項(xiàng)式的除法運(yùn)算而以小型的電路計(jì) 算部分CRC。這樣,能夠?qū)崿F(xiàn)子塊分割型并行CRC電路的新結(jié)構(gòu)。在與特播解碼器組
合使用時(shí),能夠減少處理延遲并縮短至ACK/NACK發(fā)送為止的延遲。在對(duì) 特播代碼重復(fù)進(jìn)行解碼時(shí),每當(dāng)重復(fù)時(shí)能夠立即進(jìn)行CRC判定,所以能夠早 期停止解碼并降低消費(fèi)功率??梢圆辉L問(wèn)特播解碼器與CRC計(jì)算電路之間的 接口存儲(chǔ)器,所以能夠降低消費(fèi)功率。
如上所述,尤其在與進(jìn)行子塊分割的并行特播解碼器組合時(shí),能夠顯著 地減小處理延遲。無(wú)"i侖特,潘代碼的類別如何,都能夠適用,也容易實(shí)施。
C實(shí)施方式2)
圖17是表示本發(fā)明實(shí)施方式2的并行剩余運(yùn)算器的整體結(jié)構(gòu)的方框圖。 對(duì)與圖6相同結(jié)構(gòu)的部分附加相同標(biāo)號(hào)。
本實(shí)施方式是對(duì)應(yīng)于基本原理中所述的[重點(diǎn)3]的例子。在[重點(diǎn)3]中, 敘述了對(duì)每個(gè)子塊使數(shù)據(jù)輸入順序逆序的例子。在將數(shù)據(jù)分割成四個(gè)后的4 并行序列中,以使子塊<2>和子塊<4>逆序的情況為例進(jìn)行說(shuō)明。
在圖17中,并行CRC計(jì)算電路(并行剩余運(yùn)算器)300所采用的結(jié)構(gòu)包括 輸入端子101至104(輸入端子<1>至<4>)、初始值生成單元310、部分CRC 生成單元111和113(部分CRC生成單元0和0)、逆序部分CRC生成單元 312和314(逆序部分CRC生成單元<2>和<4>)、 AND單元121至124(AND 單元<1>至<4>)、以及累積加法單元130。
圖17的例子為,并行CRC計(jì)算電路300使子塊長(zhǎng)度為M,并且僅對(duì)輸 入端子102和104使數(shù)據(jù)的輸入順序逆序。
其結(jié)構(gòu)上的特征如下。
與圖6的并行CRC計(jì)算電路100相比,將部分CRC生成單元112和114 分別變更為逆序部分CRC生成單元312和314。另外,變更了輸入到逆序部 分CRC生成單元312和314的初始值。因此,由初始值生成單元310生成的 初始值與由圖6的初始值生成單元110生成的初始值不同,但其結(jié)構(gòu)相同(參 照?qǐng)D14)。
圖18是表示逆序部分CRC生成單元312的電路結(jié)構(gòu)的圖。逆序部分CRC 生成單元312和314采用相同結(jié)構(gòu),所以以逆序部分CRC生成單元312作為 代表進(jìn)行說(shuō)明。
在圖18中,逆序部分CRC生成單元312由選擇器401 、D觸發(fā)器(FF)402、 EXOR電路403以及AND電路404構(gòu)成。逆序部分CRC生成單元312與部分CRC生成單元lll(參照?qǐng)D9)同樣, 為以相當(dāng)于24比特的個(gè)數(shù)的D觸發(fā)器402為中心的結(jié)構(gòu),但數(shù)據(jù)的生成方 向相反。
圖19是將由各個(gè)部分CRC生成單元計(jì)算(負(fù)責(zé))的部分CRC匯總成表的 圖,所述各個(gè)部分CRC生成單元為,部分CRC生成單元111、逆序部分CRC 生成單元312、部分CRC生成單元113和逆序部分CRC生成單元314。這里, 使用標(biāo)記DM(T)(D)。 DM{T}(D)=DMT(D)=DTmodG(D)。
如圖19的表所示,電路序號(hào)2和4的輸入數(shù)據(jù)順序相反,與其對(duì)應(yīng)地變 更了初始值和部分CRC的生成順序。
如在基本原理的[重點(diǎn)3]中所說(shuō)明的,基于以下的遞推公式(18),將 DM{N-l+c-(2M-l)}(D)作為初始值,依序求DM{N-l+c-(2M-2)}(D)至
DM(N-l+c-MKD)的值。
"DMT(D)D + G(D)在(DM(T)的最高階數(shù)的系數(shù)為0時(shí))
DMT+1(D)"
、DMT(D)D在(DM(T)的最高階數(shù)的系數(shù)為1時(shí)) …式(18)
可知在正序的部分CRC生成單元111和113中,^f吏T逐漸減少而進(jìn)行計(jì) 算,相對(duì)于此,在逆序部分CRC生成單元3^和314中,使T逐漸增加而進(jìn) 行計(jì)算。
如上所述,初始值生成單元310具有與實(shí)施方式1的部分CRC生成單元 111相同的結(jié)構(gòu)。但是,逆序部分CRC生成單元312所需的初始值為 DM(N-l+c-(2M-l)KD)而不是DM(N-l+c-M)(D),所以產(chǎn)生W2的觸發(fā)的定時(shí) 不同。也就是說(shuō),在》N-1-(2M-1)的定時(shí),為ld2-l。對(duì)ld4的定時(shí)也同樣, 在1=0的定時(shí),為14=0。
圖20是表示初始值生成單元310的動(dòng)作的時(shí)序圖。與表示并行CRC計(jì) 算電路100的初始值生成單元110的動(dòng)作的時(shí)序圖即圖16相比,可知對(duì)信號(hào) ld2和ld4輸出觸發(fā)的定時(shí)不同。
這樣,在本實(shí)施方式中,不僅具有實(shí)施方式1的效果,還能夠以數(shù)據(jù)的 輸入順序?yàn)槟嫘虻姆绞捷斎朊總€(gè)子塊。因此,在與進(jìn)行子塊分割的并行特播 解碼器組合時(shí)的適配性高。例如,在通過(guò)特播解碼器進(jìn)行Max-log-MAP解碼 時(shí),能夠?qū)⑻夭ソ獯a器的輸出直接輸入到本并行CRC計(jì)算電路(并行剩余運(yùn)算器)300。尤其,在與進(jìn)行子塊分割的并行特播解碼器組合時(shí),能夠顯著地 減小處理延遲。
以上的說(shuō)明為本發(fā)明的優(yōu)選的實(shí)施方式的例證,但本發(fā)明的范圍并不限 定于此。
例如,在上述各個(gè)實(shí)施方式中,以將數(shù)據(jù)分割成四個(gè)(4并行序列)的情況
為例進(jìn)行了說(shuō)明,但分割數(shù)量或CRC的比特長(zhǎng)度并不限于此。
另外,在上述實(shí)施方式l中,如圖10所示,部分CRC生成單元111基 于式(8)每1時(shí)鐘周期地計(jì)算一個(gè)部分CRC,但也可以重復(fù)使用式(8),從而每 1時(shí)鐘周期地計(jì)算兩個(gè)以上的部分CRC。例如,部分CRC生成單元111根據(jù) DM{N-+c+i}(D)(i為整數(shù))輸出兩個(gè)部分CRC即DM(N-l+c+i+l〉(D)和 DM{N-l+c+i+2}(D)。通過(guò)這樣的結(jié)構(gòu),能夠在每1時(shí)鐘周期對(duì)各個(gè)輸入端子 101至104輸入2比特的數(shù)據(jù)。也就是說(shuō),即使在對(duì)數(shù)據(jù)進(jìn)行子塊分割后, 對(duì)各個(gè)子塊的數(shù)據(jù)進(jìn)行串行并行變換時(shí),也能夠使用在本說(shuō)明書中表示為"重 點(diǎn)l"和"重點(diǎn)2,,的方法,以簡(jiǎn)單的結(jié)構(gòu)進(jìn)行并行計(jì)算。
另外,在上述實(shí)施方式2中,使子塊2和4為逆序,但既可使任意的子 塊逆序,也可H使一部分的子塊逆序。
另夕卜,在本實(shí)施方式中,使用了并行剩余運(yùn)算器和并行CRC計(jì)算電路的 名稱,但這是為了便于說(shuō)明,也可稱為CRC計(jì)算電路、糾錯(cuò)電路和糾錯(cuò)方法 等。
另外,本發(fā)明能夠?qū)崿F(xiàn)根據(jù)本算法的并行剩余運(yùn)算器和并行剩余運(yùn)算方 法即可,當(dāng)然可以由硬件構(gòu)成,也可以由發(fā)揮并行剩余運(yùn)算方法的功能的軟 件來(lái)實(shí)現(xiàn)。該軟件存儲(chǔ)在能夠通過(guò)電腦讀取的存儲(chǔ)媒體中。
另外,用于上述各個(gè)實(shí)施方式的說(shuō)明中的各功能塊通常被作為集成電路 的LSI來(lái)實(shí)現(xiàn)。這些塊既可以單獨(dú)地集成為一個(gè)芯片,也可以包含一部分或 全部地集成為一個(gè)芯片。雖然此處稱為L(zhǎng)SI,但根據(jù)集成程度,也可以稱為 IC、系統(tǒng)LSI、超大LSI(SuperLSI)、特大LSI(UltraLSI)。另外,實(shí)現(xiàn)集成電 路化的方法不僅限于LSI,也可使用專用電路或通用處理器來(lái)實(shí)現(xiàn)。也可以 使用在LSI制造后可編程的FPGA(Field Programmable Gate Array:現(xiàn)場(chǎng)可編 程門陣列),或者可重構(gòu)LSI內(nèi)部的電路單元的連接和設(shè)定的可重構(gòu)處理器。 再者,隨著半導(dǎo)體的技術(shù)進(jìn)步或隨之派生的其它技術(shù)的出現(xiàn),如果能夠出現(xiàn) 替代LSI的集成電路化的新技術(shù),當(dāng)然可利用該新技術(shù)進(jìn)行功能塊的集成化。例如,還存在著適用生物技術(shù)等的可能性。
在2006年8月22日提交的特愿第2006-225934號(hào)的日本專利申請(qǐng)所包 含的說(shuō)明書、附圖以及摘要的公開內(nèi)容,全部引用于本申請(qǐng)。 工業(yè)實(shí)用性
本發(fā)明的并行剩余運(yùn)算器和并行剩余運(yùn)算方法在并行輸入特播解碼器等 的輸出并檢測(cè)數(shù)字信息的差錯(cuò)的通信系統(tǒng)中,作為取代以往的CRC計(jì)算電路 而使用的新的并行剩余運(yùn)算器和并行剩余運(yùn)算方法極為有用。例如,適合于 接收裝置和移動(dòng)電話等通信終端裝置,其為了對(duì)用于糾錯(cuò)而通過(guò)巻積編碼、 特播編碼等進(jìn)行了編碼的發(fā)送數(shù)據(jù)進(jìn)行解碼,在接收端,使用維特比解碼器
或特播解碼器等軟輸出解碼器和/或使用用于檢測(cè)有無(wú)傳輸差錯(cuò)的循環(huán)代碼。
權(quán)利要求
1. 并行剩余運(yùn)算器,輸入數(shù)據(jù)被分割成多個(gè)子塊后并行輸入到該并行剩余運(yùn)算器中,該并行剩余運(yùn)算器包括初始值生成單元,生成與所述各個(gè)子塊的開始點(diǎn)對(duì)應(yīng)的部分剩余作為初始值;部分剩余生成單元,從所述初始值生成單元接收與各個(gè)子塊的開頭對(duì)應(yīng)的部分剩余作為初始值,并基于規(guī)定的遞推公式依序生成其余的部分剩余;邏輯單元,進(jìn)行所述輸入數(shù)據(jù)與從所述部分剩余生成單元輸出的部分剩余的值的邏輯運(yùn)算;以及累積加法單元,將從所述邏輯單元輸出的值累積相加。
2. 并行剩余運(yùn)算器,輸入數(shù)據(jù)被分割成多個(gè)子塊后并行輸入到該并行剩 余運(yùn)算器中,該并行剩余運(yùn)算器包括初始值生成單元,生成與所述各個(gè)子塊的最終點(diǎn)對(duì)應(yīng)的部分剩余作為初 始值;逆序部分剩余生成單元,從所述初始值生成單元接收與各個(gè)子塊的最終 點(diǎn)對(duì)應(yīng)的部分剩余作為初始值,并基于規(guī)定的遞推公式依序生成其余的部分 剩余;邏輯單元,進(jìn)行所述輸入數(shù)據(jù)與從所述逆序部分剩余生成單元輸出的逆 序部分剩余的值的邏輯運(yùn)算;以及累積加法單元,將從所述邏輯單元輸出的值累積相加。
3. 如權(quán)利要求l所述的并行剩余運(yùn)算器,所述初始值生成單元在將長(zhǎng)度n的輸入數(shù)據(jù)分割成長(zhǎng)度n-m和長(zhǎng)度m的 數(shù)據(jù)串且將分割后的各個(gè)數(shù)據(jù)串作為子塊時(shí),根據(jù)在最大階數(shù)c所確定的多 項(xiàng)式G(D)的值,生成各個(gè)子塊的i-0和m的開始點(diǎn)的部分剩余即Dn"+emodG(D) 和D"+c-mmodG(D)作為初始值。
4. 如權(quán)利要求2所述的并行剩余運(yùn)算器,所述初始值生成單元在將長(zhǎng)度n的輸入數(shù)據(jù)分割成長(zhǎng)度n-m和長(zhǎng)度m的 數(shù)據(jù)串且將分割后的各個(gè)數(shù)據(jù)串作為子塊時(shí),根據(jù)在最大階數(shù)c所確定的多 項(xiàng)式G(D)的值,生成各個(gè)子塊的i=m-l和n-l的最終點(diǎn)的部分剩余即 Dn扭如"modG(D)和D"+c-(11—')modG(D)作為初始值。
5. 如權(quán)利要求1所述的并行剩余運(yùn)算器,所述部分剩余生成單元按照數(shù)據(jù)原來(lái)的順序輸入數(shù)據(jù),并將所述 D"化modG(D)和D"+園modG(D)作為初始值,基于規(guī)定的遞推公式計(jì)算與i=l 至m-l和i=m+l至n-l對(duì)應(yīng)的部分剩余。
6. 如權(quán)利要求2所述的并行剩余運(yùn)算器,所述Dn"+e爭(zhēng)"modG(D)和Dn"+一-"modG(D)作為初始值,基于規(guī)定的遞推公式 計(jì)算與i=m_2至0和i=n-2至m對(duì)應(yīng)的逆序部分剩余。
7. 如權(quán)利要求l所述的并行剩余運(yùn)算器, 所述累積加法單元通過(guò)每個(gè)比特的"異或,,邏輯運(yùn)算進(jìn)行相加。
8. 并行剩余運(yùn)算方法,包括以下的步驟在將長(zhǎng)度n的輸入數(shù)據(jù)分割成長(zhǎng)度n-m和長(zhǎng)度m的數(shù)據(jù)串,并將分割后 的各個(gè)數(shù)據(jù)串作為子塊時(shí),根據(jù)在最大階數(shù)c所確定的多項(xiàng)式G(D)的值,預(yù) 先求各個(gè)子塊的i=0和m的開始點(diǎn)的部分剩余即D"+emodG(D)和 Dn—'+,modG(D)作為初始值;以及將所述D"+CmodG(D)和Dn-'+^modG(D)作為初始值,依序計(jì)算與i=l至 m-l和i=m+l至n-l對(duì)應(yīng)的部分剩余。
9. 并行剩余運(yùn)算方法,包括以下的步驟在將長(zhǎng)度n的輸入數(shù)據(jù)分割成長(zhǎng)度n-m和長(zhǎng)度m的數(shù)據(jù)串,并將分割后 的各個(gè)數(shù)據(jù)串作為子塊時(shí),根據(jù)在最大階數(shù)c所確定的多項(xiàng)式G(D)的值,預(yù) 先求各個(gè)子塊的i=m-l和n-l的最終點(diǎn)的部分剩余即D"+""^modG(D)和 D"+一")modG(D)作為初始值;以及將所述Dn-'+c如")modG(D)和Dn扭-(n")modG(D)作為初始值,依序計(jì)算與 i=m-2至0和i=n-2至m對(duì)應(yīng)的逆序部分剩余。
10. 如權(quán)利要求8所述的并行剩余運(yùn)算方法,在所述計(jì)算部分剩余的步驟中,按照數(shù)據(jù)原來(lái)的順序輸入數(shù)據(jù),并將所 述Dn扭modG(D)和Dn"+^modG(D)作為初始值,基于規(guī)定的遞推公式計(jì)算與 i=l至m-l和i=m+l至n-l對(duì)應(yīng)的部分剩余。
11. 如權(quán)利要求9所述的并行剩余運(yùn)算方法,在所述計(jì)算逆序部分剩余的步驟中,使數(shù)據(jù)原來(lái)的順序?yàn)槟嫘蚨斎霐?shù) 據(jù),并將所述D"+""^modG(D)和D"+"一modG(D)作為初始值'基于規(guī)定的遞推公式計(jì)算與i=m-2至0和i=n-2至m對(duì)應(yīng)的部分剩余。
12. 如權(quán)利要求8所述的并行剩余運(yùn)算方法,還包括以下的步驟: 進(jìn)行輸入數(shù)據(jù)和所述部分剩余的值的邏輯運(yùn)算;以及將所述邏輯運(yùn)算后的值累積相加。
13. 如權(quán)利要求9所述的并行剩余運(yùn)算方法,還包括以下的步驟: 進(jìn)行輸入數(shù)據(jù)和所述逆序部分剩余的值的邏輯運(yùn)算;以及 將所述邏輯運(yùn)算后的值累積相加。
全文摘要
公開了能夠減小處理延遲,無(wú)需追加乘法電路和剩余電路而能夠減小電路規(guī)模的并行剩余運(yùn)算器。在該裝置中,并行CRC計(jì)算電路(100)包括輸入端子(101)至(104),輸入數(shù)據(jù)被分割成多個(gè)子塊后并行輸入多個(gè)子塊;初始值生成單元(110),生成與各個(gè)子塊的開始點(diǎn)對(duì)應(yīng)的部分CRC作為初始值;部分CRC生成單元(111)至(114),接收與各個(gè)子塊的開頭對(duì)應(yīng)的部分CRC作為初始值,并基于規(guī)定的遞推公式依序生成剩余的部分CRC;AND單元(121)至(124),計(jì)算部分CRC的值的邏輯“與”;以及累積加法單元(130),將從AND單元(121)至(124)輸出的值累積相加。
文檔編號(hào)H03M13/09GK101507120SQ20078003078
公開日2009年8月12日 申請(qǐng)日期2007年8月21日 優(yōu)先權(quán)日2006年8月22日
發(fā)明者本塚裕幸 申請(qǐng)人:松下電器產(chǎn)業(yè)株式會(huì)社