專利名稱:Asic硬件和嵌入微處理器間的數(shù)據(jù)轉(zhuǎn)移方法和系統(tǒng)的制作方法
技術(shù)領域:
本發(fā)明背景本發(fā)明領域本發(fā)明一般涉及數(shù)據(jù)轉(zhuǎn)移技術(shù),尤其涉及在無線通信設備內(nèi)實現(xiàn)的數(shù)據(jù)轉(zhuǎn)移技術(shù)。
背景技術(shù):
無線通信設備(WCD)一般包括調(diào)制器—解調(diào)器部分(一般稱為“調(diào)制解調(diào)器”)以調(diào)制要發(fā)射的信號并對進入或接收到的信號進行解調(diào)。一種已知的調(diào)制解調(diào)器,諸如蜂窩調(diào)制解調(diào)器,對于在一個或多個外部接口上接收到的進入或接收到的信號進行解調(diào)以生成已解調(diào)數(shù)據(jù)。然后,調(diào)制解調(diào)器將已解調(diào)數(shù)據(jù)在一個或多個附加的外部接口上的目的地設備。
隨著接收到的信號數(shù)據(jù)速率增加,隨之對應增加的是適時地將已解調(diào)數(shù)據(jù)轉(zhuǎn)移到一個或多個附加的外部接口的每單位時間的轉(zhuǎn)移操作數(shù)。相應地,數(shù)據(jù)轉(zhuǎn)移操作的效率隨著接收到的信號數(shù)據(jù)速率增加而成為調(diào)制解調(diào)器設計方面日漸重要的因子。
調(diào)制解調(diào)器一般包括調(diào)制解調(diào)器控制器以控制調(diào)制解調(diào)器的操作。現(xiàn)代的調(diào)制解調(diào)器控制器(諸如精簡指令集計算機(RISC)處理器)一般能使用多字節(jié)轉(zhuǎn)移操作(諸如多字節(jié)讀和多字節(jié)寫)而以多字節(jié)字為單位轉(zhuǎn)移數(shù)據(jù)。例如,調(diào)制解調(diào)器控制器可以使用多字節(jié)讀和多字節(jié)寫操作將多字節(jié)數(shù)據(jù)字從存儲器轉(zhuǎn)移到外部接口。然而,調(diào)制解調(diào)器控制器可能要求多字節(jié)數(shù)據(jù)存儲在存儲器內(nèi),使得數(shù)據(jù)字的源地址與存儲器的字地址邊界對齊。在一些實例中,按要求,要轉(zhuǎn)移的數(shù)據(jù)字節(jié)可能不與字地址邊界對齊。因此,需要一種機制能使調(diào)制解調(diào)器控制器使用多字節(jié)讀和寫操作而轉(zhuǎn)移該種不對齊的數(shù)據(jù)字節(jié)。
上述的RISC處理器和存儲器一般使用存儲器總線耦合在一起。存儲器總線可以允許的存儲器和RISC處理器間和任何其它類似地耦合到存儲器總線的任何其它元件(諸如一個或多個附加的外部接口)間的數(shù)據(jù)轉(zhuǎn)移的最大速率,被稱為存儲器總線帶寬。一般,RISC處理器可以基本上使用存儲器總線的所有帶寬。因為存儲器總線帶寬的這種高度的RISC處理器利用率,用于轉(zhuǎn)移數(shù)據(jù)的直接存儲訪問(DMA)技術(shù)不是最期望的,這是因為該種DMA轉(zhuǎn)移操作是通過從處理器“竊取”存儲器總線帶寬而進行的(即通過竊取總線讀或?qū)戅D(zhuǎn)移周期),因而減少了RISC處理器的使用效率。
因此,需要實現(xiàn)使用調(diào)制解調(diào)器控制器的有效數(shù)據(jù)轉(zhuǎn)移,以避免DMA轉(zhuǎn)移的復雜度,諸如存儲器總線周期竊取,從而最小化了實現(xiàn)數(shù)據(jù)轉(zhuǎn)移需要的存儲器總線周期的總數(shù)。
本發(fā)明的簡要摘要摘要本發(fā)明提供了一種用于在WCD內(nèi)有效轉(zhuǎn)移數(shù)據(jù)字節(jié)的方法和系統(tǒng)。WCD包括調(diào)制解調(diào)器,用于對接收到的信號進行解調(diào)(和解碼)以生成已解調(diào)(和已解碼)的數(shù)據(jù)字節(jié)。調(diào)制解調(diào)器控制器(例如RISC微處理器)實現(xiàn)將已解調(diào)數(shù)據(jù)字節(jié)高效轉(zhuǎn)移到外部接口。
調(diào)制解調(diào)器包括調(diào)制解調(diào)器控制器、第一緩沖器、中間存儲器以及與存儲器總線耦合在一起的數(shù)據(jù)打包機。第二緩沖器耦合到數(shù)據(jù)打包機。調(diào)制解調(diào)器控制器首先使用多字節(jié)讀和寫操作將已解調(diào)數(shù)據(jù)從第一緩沖器轉(zhuǎn)移到中間存儲器。調(diào)制解調(diào)器控制器然后通過存儲器總線使用多字節(jié)讀和寫操作將已解調(diào)數(shù)據(jù)從中間存儲器轉(zhuǎn)移到第二緩沖器。調(diào)制解調(diào)器控制器通過稱為數(shù)據(jù)打包機(以上簡要提及)的發(fā)送硬件接口的一部分將已解調(diào)數(shù)據(jù)從中間存儲器發(fā)送到第二緩沖器。數(shù)據(jù)打包機接收轉(zhuǎn)移到它的數(shù)據(jù)字,每個的形式為多字節(jié)數(shù)據(jù)字。并保留了在每個多字節(jié)數(shù)據(jù)字中數(shù)據(jù)字節(jié)的正確的字節(jié)排序。因此,本發(fā)明保留了接收到的數(shù)據(jù)字節(jié)的字節(jié)順序。數(shù)據(jù)打包機還對數(shù)據(jù)轉(zhuǎn)移進行流水線化,使得一個多字節(jié)數(shù)據(jù)字可以從中間存儲器發(fā)送到第二緩沖器,并在存儲器總線的每個存儲器總線周期內(nèi)存儲在第二緩沖器內(nèi)。
本發(fā)明的一個優(yōu)勢特征是使得調(diào)制解調(diào)器控制器能使用有效的多字節(jié)數(shù)據(jù)字轉(zhuǎn)移以從中間存儲器轉(zhuǎn)移數(shù)據(jù),所述的碼字可能不是在中間存儲器的要求的數(shù)據(jù)字地址邊界上開始或結(jié)束的。為支持該特征,數(shù)據(jù)打包機可以經(jīng)編程以忽略不期望的數(shù)據(jù)字節(jié)(又被稱為“非數(shù)據(jù)”字節(jié)),它可能包括在到第二緩沖器的多個數(shù)據(jù)字數(shù)據(jù)轉(zhuǎn)移的第一多字節(jié)數(shù)據(jù)字和最后一個多字節(jié)數(shù)據(jù)字內(nèi)。該實現(xiàn)是通過在將數(shù)據(jù)字節(jié)從中間存儲器轉(zhuǎn)移到第二緩沖器前,用第一數(shù)據(jù)字節(jié)的字節(jié)偏置和要從中間存儲器轉(zhuǎn)移來的數(shù)據(jù)字節(jié)的總數(shù)對數(shù)據(jù)打包機進行編程。通過進行流水線在數(shù)據(jù)轉(zhuǎn)移,以及帶有正確字節(jié)順序的多字節(jié)字內(nèi)的數(shù)據(jù)的轉(zhuǎn)移,并且支持在中間存儲器內(nèi)任何地址處的開始和結(jié)尾的數(shù)據(jù)的多字節(jié)字轉(zhuǎn)移,最小化了從調(diào)制解調(diào)器存儲器到外部接口的數(shù)據(jù)轉(zhuǎn)移需要的存儲器總線周期的數(shù)目。
根據(jù)本發(fā)明,用于轉(zhuǎn)移數(shù)據(jù)的系統(tǒng)包括第一存儲器,適用于存儲多個包括頭部字段字節(jié)和一個或多個數(shù)據(jù)字段字節(jié)的多字節(jié)數(shù)據(jù)字。頭部字段字節(jié)被認為是不期望的或非數(shù)據(jù)字節(jié)。系統(tǒng)還包括第二存儲器,適用于存儲來自第一存儲器的數(shù)據(jù)字段字節(jié)。該系統(tǒng)包括耦合到第一和第二存儲器的控制器,并適用于從第一存儲器讀出包括頭部字段字節(jié)和一個或多個數(shù)據(jù)字段字節(jié)的數(shù)據(jù)字。系統(tǒng)還包括耦合到控制器以及第二存儲器的數(shù)據(jù)打包機??刂破骱蛿?shù)據(jù)打包機一起將從第一存儲器讀出的第一數(shù)據(jù)字的一個或多個數(shù)據(jù)字段字節(jié)轉(zhuǎn)移到第二存儲器。數(shù)據(jù)打包機只存儲第二存儲器內(nèi)的一個或多個數(shù)據(jù)字段字節(jié),這些字節(jié)與先前轉(zhuǎn)移并存儲的數(shù)據(jù)字段字節(jié)相鄰接。
特征與優(yōu)勢本發(fā)明的一個特征是使用調(diào)制解調(diào)器控制器有效地在調(diào)制解調(diào)器內(nèi)轉(zhuǎn)移數(shù)據(jù)。本發(fā)明還有利地最小化了實現(xiàn)數(shù)據(jù)轉(zhuǎn)移需要的存儲總線周期總數(shù),這是通過例如避免復雜且低效率的DMA轉(zhuǎn)移技術(shù)實現(xiàn)的。
本發(fā)明的另一特征是在保留轉(zhuǎn)移的數(shù)據(jù)字節(jié)的正確的字節(jié)順序的同時轉(zhuǎn)移數(shù)據(jù)字節(jié)。
本發(fā)明的另一特征是使用從存儲器讀出或?qū)懭氲亩嘧止?jié)數(shù)據(jù)字轉(zhuǎn)移數(shù)據(jù)字節(jié)。本發(fā)明的一個相關(guān)的優(yōu)勢是即使在數(shù)據(jù)字節(jié)不與存儲器內(nèi)的字地址邊界對齊時,仍實現(xiàn)該種多字節(jié)字的讀和寫。
附圖/圖例的簡要描述本發(fā)明的上述和其它特征和優(yōu)勢會在以下描述和如在伴隨的附圖中的本發(fā)明的最優(yōu)實施例的特定描述中變得清楚。
圖1是本發(fā)明能實現(xiàn)的示例系統(tǒng)的框圖。
圖2是圖1的數(shù)據(jù)轉(zhuǎn)移模塊的框圖。
圖3A是由圖2的調(diào)制解調(diào)器控制器實現(xiàn)的轉(zhuǎn)移數(shù)據(jù)字節(jié)的方法示例的流程圖,該調(diào)制解調(diào)器控制器與圖2的數(shù)據(jù)打包機一起工作。
圖3B是由圖2的調(diào)制解調(diào)器控制器實現(xiàn)的轉(zhuǎn)移數(shù)據(jù)字節(jié)的另一方法示例的流程圖,該調(diào)制解調(diào)器控制器與圖2的數(shù)據(jù)打包機一起工作。
圖3C由圖2的數(shù)據(jù)打包機實現(xiàn)的轉(zhuǎn)移數(shù)據(jù)字節(jié)的方法示例的流程圖,該數(shù)據(jù)打包機與圖2的調(diào)制解調(diào)器控制器一起工作。
圖4是使用圖2的調(diào)制解調(diào)器控制器和數(shù)據(jù)打包機將數(shù)據(jù)字段字節(jié)塊從第一存儲器發(fā)送到第二存儲器的示例總體方法的流程圖。
圖5A是本發(fā)明的WCD接收到的包括頭部和數(shù)據(jù)字段的示例信號。
圖5B是第一存儲器在圖5A的信號的頭部和數(shù)據(jù)字段字節(jié)已在此被存儲后的示例安排的示例內(nèi)容的說明。
圖5C是圖2的第二接收路徑緩沖器在第一和第二數(shù)據(jù)字段塊已從圖5B的第一存儲器發(fā)送到使用本發(fā)明的第二接收路徑緩沖器后的示例存儲器安排和內(nèi)容。
圖6是圖2的示例數(shù)據(jù)打包機的框圖。
圖7是類似圖5B的說明,為方便在此重復。
圖8A說明在使用圖4的示例總體方法實現(xiàn)的示例數(shù)據(jù)轉(zhuǎn)移的不同階段,圖2的第二接收路徑緩沖器的示例部分和圖2的數(shù)據(jù)打包機的示例部分。
圖8B、8C、8D和8E類似于圖8A,除了圖8B-8E的每一個對應了使用圖4的示例總體方法實現(xiàn)的示例數(shù)據(jù)轉(zhuǎn)移的不同階段。
圖9是圖2的數(shù)據(jù)打包機的數(shù)據(jù)組織器部分的詳細框圖。
圖10是在其上可以實現(xiàn)本發(fā)明的示例計算機系統(tǒng)的框圖。
本發(fā)明的詳細描述操作環(huán)境圖1是示例系統(tǒng)100的框圖,在其中可以實現(xiàn)本發(fā)明。系統(tǒng)100包括WCD104,它包括發(fā)射/接收天線106和耦合到天線106的信號處理模塊108。系統(tǒng)100還包括通過數(shù)據(jù)鏈路112,諸如例如串行數(shù)據(jù)鏈路耦合到信號處理器模塊的計算機10。
系統(tǒng)100還包括通過數(shù)據(jù)鏈路115耦合到信號處理模塊108的可任選的計算機114。
信號處理模塊108包括射頻(RF)接收部分116、RF發(fā)射部分118、調(diào)制解調(diào)器120和存儲器122(以上被稱為“中間”存儲器)。調(diào)制解調(diào)器120包括耦合到RF接收部分116和解調(diào)制器/解碼器部分128和耦合到RF發(fā)射部分118的編碼器/調(diào)制器部分130。調(diào)制解調(diào)器120還包括根據(jù)本發(fā)明的原理構(gòu)建并操作的、耦合到解調(diào)器/解碼器以及調(diào)制器/編碼器部分128和130、存儲器122和計算機110的數(shù)據(jù)轉(zhuǎn)移模塊132。
在操作和接收方向內(nèi),WCD104的天線106接收從其它無線通信設備(未示出),諸如基站、移動設備等發(fā)射來的RF信號140。RF信號140可以符合任何數(shù)量的通信協(xié)議,包括例如碼分多址(CDMA)高數(shù)據(jù)率(HDR)通信協(xié)議,諸如cdma2000 1xEV-DO(僅展開數(shù)據(jù))。根據(jù)cdma2000 1xEV-DO,RF信號140能以超過2.4兆比特每秒(Mbps)的數(shù)據(jù)率攜帶信息。另外,RF信號140可以攜帶根據(jù)數(shù)據(jù)協(xié)議格式化的信息,諸如TCP/IP(傳輸控制協(xié)議/因特網(wǎng)協(xié)議)。RF信號140可能符合本發(fā)明內(nèi)的其它通信和數(shù)據(jù)協(xié)議。根據(jù)相關(guān)的協(xié)議,RF信號140攜帶的信息可以經(jīng)格式化以包括數(shù)據(jù)字段142和頭部字段144。
天線106提供RF信號140給RF接收部分116。RF接收部分116對接收到的RF信號進行下變頻,并將經(jīng)下變頻后的信號146,諸如中頻(IF)或基帶信號提供給調(diào)制解調(diào)器120的解調(diào)器/解碼器128。解調(diào)器/解碼器128對經(jīng)下變頻的信號146進行解調(diào)和解碼以生成已解調(diào)和解碼后信號152。已解調(diào)和解碼后信號152可以包括例如對應RF信號140攜帶的數(shù)據(jù)字段142(即數(shù)據(jù)字段字節(jié))和頭部字段144(即頭部字段字節(jié))的按時序的數(shù)據(jù)字節(jié)。
解調(diào)器/解碼器128將已解調(diào)和解碼后信號152提供給數(shù)據(jù)轉(zhuǎn)移模塊132。根據(jù)本發(fā)明,數(shù)據(jù)轉(zhuǎn)移模塊132將包括在信號152內(nèi)的頭部和數(shù)據(jù)字段字節(jié)存儲在存儲器122內(nèi)。然后,數(shù)據(jù)轉(zhuǎn)移模塊132選擇性地在數(shù)據(jù)鏈路112上只將數(shù)據(jù)字段字節(jié)從存儲器122選擇性地傳到計算機110上。從解調(diào)器/解碼器128轉(zhuǎn)移到計算機110的數(shù)據(jù)字段字節(jié)通過數(shù)據(jù)轉(zhuǎn)移模塊132內(nèi)的接收數(shù)據(jù)轉(zhuǎn)移路徑154(描述為箭頭154)。當接收到的信號140符合cdma2000 1xEV-DO,數(shù)據(jù)轉(zhuǎn)移模塊132將數(shù)據(jù)以超過2.4Mbps的數(shù)據(jù)率從解調(diào)器/解碼器128轉(zhuǎn)移到計算機110。
在發(fā)射方向上,計算機110在數(shù)據(jù)鏈路112上向調(diào)制解調(diào)器120的數(shù)據(jù)轉(zhuǎn)移模塊132提供數(shù)據(jù)字節(jié)(要以無線方式發(fā)送到遠程設備)。數(shù)據(jù)轉(zhuǎn)移模塊132可以根據(jù)已知的協(xié)議諸如TCP/IP對從計算機110接收到的數(shù)據(jù)字節(jié)進行格式化以生成例如散布的頭部字段字節(jié)和數(shù)據(jù)字段字節(jié)(一起被稱為數(shù)據(jù)字節(jié))。根據(jù)本發(fā)明,數(shù)據(jù)轉(zhuǎn)移模塊132將從計算機110接收到的數(shù)據(jù)字節(jié)(連同任何與諸如TCP/IP協(xié)議相關(guān)的加入的數(shù)據(jù)字節(jié))以信號160轉(zhuǎn)移到編碼器/調(diào)制器130(或是直接地或通過存儲器122)。在數(shù)據(jù)轉(zhuǎn)移模塊132內(nèi)從計算機110轉(zhuǎn)移到編碼器/調(diào)制器130的數(shù)據(jù)字節(jié)通過發(fā)送數(shù)據(jù)路徑161(描述為箭頭161)。
編碼器/調(diào)制器130對在信號160內(nèi)的數(shù)據(jù)字節(jié)編碼并調(diào)制,并提供經(jīng)編碼和已調(diào)的基帶或IF信號162給RF發(fā)送部分118。RF發(fā)送部分118將信號162經(jīng)上變頻以生成RF發(fā)送信號164。RF發(fā)送部分118將RF發(fā)送信號164提供給天線106,由天線以無線方式發(fā)射。
圖2是根據(jù)本發(fā)明的實施例的數(shù)據(jù)轉(zhuǎn)移模塊(DTM)132的框圖。數(shù)據(jù)轉(zhuǎn)移模塊132包括耦合到數(shù)據(jù)總線204和地址總線206(一起被稱為存儲器總線)的調(diào)制解調(diào)器控制器202(又被稱為中央處理單元(CPU))。調(diào)制解調(diào)器控制器202提供讀出(RD)信號208和寫入(WR)信號210給調(diào)制解調(diào)器120內(nèi)的各種其它組件,如下所述。
調(diào)制解調(diào)器控制器202最好是32比特控制器(諸如32比特RISC處理器),且對應地,地址總線206和數(shù)據(jù)總線204最好是相應的32比特地址和數(shù)據(jù)總線。然而,對于32比特系統(tǒng),地址總線不一定是32比特。在本發(fā)明的示例實現(xiàn)中,控制器202是由ARM有限公司生成的ARM7TDI RISC處理器(被稱為ARMRISC處理器)。相應地,調(diào)制解調(diào)器控制器202從耦合到數(shù)據(jù)總線204和地址總線206的多個其它組件寫入或讀出32比特字。該種32比特字每個包括四個數(shù)據(jù)字節(jié),其中每個數(shù)據(jù)字節(jié)包括8數(shù)據(jù)比特。例如,調(diào)制解調(diào)器控制器202從存儲器122讀出或?qū)懭霐?shù)據(jù),該存儲器也耦合到數(shù)據(jù)和地址總線204和206。調(diào)制解調(diào)器控制器202可以使用存儲器映射存取技術(shù)、輸入/輸出(I/O)端口存取技術(shù)或任何其它存取技術(shù)而訪問耦合到地址和數(shù)據(jù)總線206和204的多個其它組件,這對于領域內(nèi)的技術(shù)人員是顯而易見的。
更方便的是參考上述圖1描述的DTM132的接收數(shù)據(jù)轉(zhuǎn)移路徑154和發(fā)送數(shù)據(jù)發(fā)送路徑161而描述DTM132的組件。DTM132的接收數(shù)據(jù)轉(zhuǎn)移路徑154包括耦合到數(shù)據(jù)和地址總線204和206以及到解碼器/解調(diào)器128的第一接收路徑緩沖器216。第一緩沖器216存儲包括在信號152內(nèi)提供的數(shù)據(jù)字段字節(jié)和頭部字段字節(jié)的數(shù)據(jù)字節(jié)。接收數(shù)據(jù)轉(zhuǎn)移路徑154還包括存儲器122。存儲器122可以是能在字地址存儲32比特數(shù)據(jù)字的32比特隨機存取存儲器(RAM)。調(diào)制解調(diào)器控制器202訪問(即讀出)存儲在第一接收路徑緩沖器216內(nèi)的數(shù)據(jù)字節(jié),并將包括頭部字段字節(jié)和數(shù)據(jù)字段字節(jié)的數(shù)據(jù)字節(jié)寫入存儲器122。接收數(shù)據(jù)轉(zhuǎn)移路徑154還包括耦合到數(shù)據(jù)和地址總線204和206的接收路徑數(shù)據(jù)打包機(DP)220,以及耦合到DP220的第二接收路徑緩沖器226(又被稱為第二緩沖器226)。在本發(fā)明中,DP220和調(diào)制解調(diào)器控制器202一起進行從存儲器122到第二緩沖器226的數(shù)據(jù)字段字節(jié)轉(zhuǎn)移,然后將轉(zhuǎn)移的數(shù)據(jù)字段字節(jié)存儲在第二緩沖器226內(nèi)。
DP220包括耦合到數(shù)據(jù)總線204的DP數(shù)據(jù)組織器230,和耦合到數(shù)據(jù)和地址總線204和206的DP控制器232。DP控制器232通過第二緩沖器地址總線234將第二緩沖器地址提供給第二緩沖器226。DP控制器232還將第二緩沖器寫入信號236寫入第二緩沖器226。DP控制器232將DP數(shù)據(jù)組織器控制信號237提供給DP組織器230。
DP數(shù)據(jù)組織器230從數(shù)據(jù)總線204接收以32比特數(shù)據(jù)字(即四字節(jié))為單位的數(shù)據(jù)字節(jié)。DP數(shù)據(jù)組織器230組織接收到的數(shù)據(jù)字節(jié)以根據(jù)來自DP數(shù)據(jù)控制器232的控制器信號237而生成組織后的數(shù)據(jù)字節(jié)。DP數(shù)據(jù)組織器230將組織后的數(shù)據(jù)字節(jié)在數(shù)據(jù)總線238上提供給第二緩沖器226。數(shù)據(jù)總線238最好是32比特(即4字節(jié))數(shù)據(jù)總線。DP控制器232控制何時與何地通過數(shù)據(jù)總線238將提供給第二緩沖器226的組織后的數(shù)據(jù)字節(jié)存儲在第二緩沖器內(nèi),這分別使用在地址總線234上提供的寫入信號236和地址。
接收數(shù)據(jù)轉(zhuǎn)移路徑154還包括通用串行總線(USB)模塊242。第二緩沖器226在數(shù)據(jù)總線244上向USB模塊242提供在此存儲的數(shù)據(jù)字段字節(jié)。接著,USB模塊242通過數(shù)據(jù)鏈路112向計算機110(在圖1內(nèi)討論的)提供數(shù)據(jù)字段字節(jié)。因此USB242、第二緩沖器226和DP220形成到外部設備或計算機110的硬件接口。
調(diào)制解調(diào)器發(fā)送數(shù)據(jù)轉(zhuǎn)移路徑DTM132的發(fā)送數(shù)據(jù)轉(zhuǎn)移路徑161還包括USB242。或者,單獨的USB可以被用于發(fā)送數(shù)據(jù)路徑。在發(fā)射方向上,USB242在數(shù)據(jù)鏈路112上接收來自計算機110的數(shù)據(jù)字節(jié),并將數(shù)據(jù)字節(jié)在數(shù)據(jù)總線248上提供給第一發(fā)送路徑緩沖器246。第一發(fā)送路徑緩沖器246耦合到CPU數(shù)據(jù)和地址總線204和206。在一實施例中,發(fā)送數(shù)據(jù)轉(zhuǎn)移路徑161還包括發(fā)送路徑DP250、類似于接收路徑154的DP220,它耦合到數(shù)據(jù)和地址總線204和206。DP250包括DP控制器252和DP數(shù)據(jù)組織器254,類似于DP控制器232和DP數(shù)據(jù)組織器230。
發(fā)送數(shù)據(jù)轉(zhuǎn)移路徑161還包括耦合到DP250的第二發(fā)送路徑緩沖器256。DP控制器252在緩沖器地址總線258上將緩沖器地址提供給第二發(fā)送路徑緩沖器。DP控制器252還提供寫入信號260給第二發(fā)送路徑緩沖器256。DP控制器252還提供控制信號262給DP數(shù)據(jù)組織器254。DP數(shù)據(jù)組織器254在數(shù)據(jù)總線264上將組織號的數(shù)據(jù)字節(jié)提供給發(fā)送路徑第二緩沖器256。第二發(fā)送路徑緩沖器256還提供在數(shù)據(jù)信號160內(nèi)的數(shù)據(jù)字節(jié)給編碼器/調(diào)制器130,如上所述。
在另一實施例中(未示出),DP250從發(fā)送路徑161中略去。在該實施例中,數(shù)據(jù)和地址總線204和206直接耦合到第二發(fā)送路徑緩沖器256。
示例方法調(diào)制解調(diào)器控制器202和DP220相互一起實現(xiàn)根據(jù)本發(fā)明的轉(zhuǎn)移數(shù)據(jù)字節(jié)的總體方法。因此,總體方法可以被分解為由調(diào)制解調(diào)器控制器202實現(xiàn)的方法步驟和DP220實現(xiàn)的分開的方法步驟,但DP220的方法步驟與調(diào)制解調(diào)器控制器的方法步驟相呼應?,F(xiàn)在描述調(diào)制解調(diào)器控制器202和DP220的每個實現(xiàn)的分開的方法步驟,然后描述結(jié)合分開方法步驟的總體方法。
第一CPU方法圖3A是根據(jù)本發(fā)明轉(zhuǎn)移數(shù)據(jù)字節(jié)的示例方法300的流程圖。方法300包括一系列調(diào)制解調(diào)器控制器202實現(xiàn)的方法步驟,如上所述。方法300現(xiàn)在參考圖2和3A一起描述。在初始步驟305,調(diào)制解調(diào)器控制器202讀出存儲在第一接收路徑緩沖器216內(nèi)的包括頭部和數(shù)據(jù)字段字節(jié)(對應一個或多個信號140的頭部和數(shù)據(jù)字段144和142)的數(shù)據(jù)字節(jié)。調(diào)制解調(diào)器控制器202將從第一存儲器216讀出的數(shù)據(jù)字寫入存儲器122(在圖3A的流程圖的步驟305被稱為“第一存儲器”),這里使用了多個字節(jié)數(shù)據(jù)字(例如諸如32比特即4字節(jié)數(shù)據(jù)字)的寫入操作。在寫入轉(zhuǎn)移后,存儲在存儲器122內(nèi)的數(shù)據(jù)字可以包括例如對應數(shù)據(jù)字段142和對應信號140的頭部字段144的頭部字段字節(jié),如以上關(guān)于圖1描述。
在步驟305,調(diào)制解調(diào)器控制器202在存儲器122中存儲多個包括第一和第二頭部字段字節(jié)(例如,來自頭部字段144的相繼字節(jié))的多字節(jié)數(shù)據(jù)字以及位于第一和第二頭部字段字節(jié)間的數(shù)據(jù)字段字節(jié)塊(例如,來自一個數(shù)據(jù)字段142)。存儲在存儲器122的對應的第一字地址處的第一數(shù)據(jù)字包括數(shù)據(jù)字段字節(jié)塊的開始或開始數(shù)據(jù)字段字節(jié)。開始數(shù)據(jù)字段字節(jié)可能或可能不與第一字地址對齊,即數(shù)據(jù)字段字節(jié)可能有不與第一字地址對應的字節(jié)地址。類似地,數(shù)據(jù)字段字節(jié)的最后一個可能或可能不與存儲器122內(nèi)的數(shù)據(jù)字地址對齊。
在下一步驟310,調(diào)制解調(diào)器控制器檢查在存儲器202內(nèi)存儲的上述的數(shù)據(jù)字節(jié),以確定將數(shù)據(jù)字節(jié)路由到哪里。為本發(fā)明的目的,假設一些數(shù)據(jù)字節(jié)(如下所述)的目的地是USB242,從USB242轉(zhuǎn)移到計算機110。然而,可以理解例如數(shù)據(jù)字節(jié)的目的地可以是其它外部接口。
在步驟310,調(diào)制解調(diào)器控制器202還檢查上述的存儲在存儲器122內(nèi)的數(shù)據(jù)字節(jié)以確定一定的控制信息,這些信息要被要求用于初始化與要轉(zhuǎn)移到第二緩沖器226的當前數(shù)據(jù)模塊相關(guān)的DP220。調(diào)制解調(diào)器控制器202然后通過將該種控制信息寫入DP控制器232而初始化DP220??刂菩畔ㄩ_始數(shù)據(jù)字段字節(jié)和第一字地址間的字節(jié)偏移,如上所述。字節(jié)偏移在此還被稱為源偏移(SO),其中術(shù)語“源”指的是存儲器122。為零的字節(jié)偏移指明開始數(shù)據(jù)字段字節(jié)地址與第一數(shù)據(jù)字地址重合(即對齊)。大于零的字節(jié)偏移指明開始數(shù)據(jù)字段字節(jié)地址不與第一字地址重合(即不對齊)。當?shù)谝粩?shù)據(jù)字包括一個或多個頭部字段字節(jié)以及一個或多個數(shù)據(jù)字段字節(jié)時,會存在該種偏移??刂菩畔⑦€包括了包括在要發(fā)送并存儲在第二緩沖器226內(nèi)的當前數(shù)據(jù)字段字節(jié)塊內(nèi)的數(shù)據(jù)字段字節(jié)總數(shù)N。例如,總數(shù)N可以表示第一和第二頭部字段字節(jié)間的數(shù)據(jù)字節(jié)數(shù)。
在下一步驟315,調(diào)制解調(diào)器控制器202使用多字節(jié)讀取操作從存儲器122讀取包括開始數(shù)據(jù)字段字節(jié)以及可能的附加數(shù)據(jù)字段字節(jié)的下一數(shù)據(jù)字(這可能是第一數(shù)據(jù)字或相繼的數(shù)據(jù)字)。例如,調(diào)制解調(diào)器控制器202可以從存儲器122讀取32比特(或4字節(jié))的字。當如上所述調(diào)制解調(diào)器控制器是ARM RISC處理器時,調(diào)制解調(diào)器控制器202可以使用“從存儲器加載寄存器”(LDR)指令以實現(xiàn)讀取操作。一個或多個讀取的數(shù)據(jù)字內(nèi)的數(shù)據(jù)字段字節(jié)會占據(jù)數(shù)據(jù)字內(nèi)的預定位置。從存儲器122讀取出的數(shù)據(jù)字可以只包括數(shù)據(jù)字段字節(jié),或者數(shù)據(jù)字可以包括頭部字段字節(jié)以及一個或多個上述的數(shù)據(jù)字段字節(jié)。
在下一步驟320,調(diào)制解調(diào)器控制器202將數(shù)據(jù)字(在步驟315內(nèi)讀入)(且因此,在此包括的一個或多個數(shù)據(jù)字段字節(jié))通過DP數(shù)據(jù)組織器230寫入第二緩沖器226(在圖3A的步驟320內(nèi)被稱為“第二存儲器”)。當調(diào)制解調(diào)器控制器是如上所述的ARM RISC處理器時,調(diào)制解調(diào)器控制器202可以使用“存儲寄存器到存儲器”(STR)指令以實現(xiàn)寫入操作。從調(diào)制解調(diào)器控制器202的角度看,調(diào)制解調(diào)器控制器202只是簡單地在步驟320處,在存儲器總線寫入周期期間在地址/數(shù)據(jù)總線206/204上將數(shù)據(jù)字寫入第二緩沖器226。示例存儲器總線寫入周期包括在地址和數(shù)據(jù)總線206和204上施加有效的地址和有效的數(shù)據(jù),并在數(shù)據(jù)和地址有效的同時施加寫入信號210。
在下一判決步驟325,調(diào)制解調(diào)器控制器202確定是否所有存儲在存儲器122內(nèi)的數(shù)據(jù)塊的數(shù)據(jù)字段字節(jié)都從存儲器122轉(zhuǎn)移到第二緩沖器226。如果沒有,流程控制回到步驟315,且下一字從存儲器122讀出,等等。在另一方面,如果數(shù)據(jù)塊的所有數(shù)據(jù)字段字節(jié)都被轉(zhuǎn)移了,則方法300結(jié)束。由于相繼的數(shù)據(jù)字段字節(jié)由WCD104接收且存儲到第一發(fā)送路徑緩沖器216,方法300可以在時間上被連續(xù)重復。
第二CPU方法圖3B是根據(jù)本發(fā)明的轉(zhuǎn)移數(shù)據(jù)字節(jié)的另一示例方法340。方法340包括調(diào)制解調(diào)器控制器202實現(xiàn)的一系列方法步驟。方法340的初始兩步驟即步驟305和310與方法300中描述的相同。
然而,在下一步驟345,調(diào)制解調(diào)器控制器202從第一存儲器讀取多個數(shù)據(jù)字,而不是如在方法300的步驟315處只讀取單個碼字。調(diào)制解調(diào)器控制器202可以使用高效的數(shù)據(jù)字塊讀取轉(zhuǎn)移操作讀取多個數(shù)據(jù)字。當調(diào)制解調(diào)器控制器是上述的ARM RISC處理器時,調(diào)制解調(diào)器控制器202可以使用“加載多個寄存器”(LDM)指令或其變型,以實現(xiàn)塊讀取操作。使用該種塊讀取操作(還被稱為突發(fā)讀取轉(zhuǎn)移),調(diào)制解調(diào)器控制器202從存儲器122一個接一個讀取出多個字的每個,然后使用連續(xù)(又稱為突發(fā))的存儲器讀周期放入調(diào)制解調(diào)器控制器字寄存器。調(diào)制解調(diào)器控制器202使用塊讀取操作可以讀取的字數(shù)只受到調(diào)制解調(diào)器控制器的結(jié)構(gòu)的限制。
在下一步驟350,調(diào)制解調(diào)器控制器202將在步驟315處讀取的多個數(shù)據(jù)字寫入第二緩沖器226(通過DP220的DP數(shù)據(jù)組織器230)。調(diào)制解調(diào)器控制器202使用高效的數(shù)據(jù)字塊寫入轉(zhuǎn)移操作寫入多個數(shù)據(jù)字。當調(diào)制解調(diào)器控制器是上述的ARM RISC處理器時,調(diào)制解調(diào)器控制器202可以使用“存儲多個寄存器”(STM)指令或其變型以實現(xiàn)多個字或塊寫入操作。使用該種塊寫入操作(又被稱為突發(fā)寫入轉(zhuǎn)移),調(diào)制解調(diào)器控制器202在地址/數(shù)據(jù)總線206/204上,使用連續(xù)的存儲器寫入周期(稱為連續(xù)存儲器寫入周期的突發(fā))一個接著一個將多個字的每個寫入第二緩沖器226。連續(xù)存儲器寫入周期可能在時間上是緊接著的。
下一判決步驟355類似于方法300的判決步驟325,除了當還留有要轉(zhuǎn)移的數(shù)據(jù)字段字節(jié)時,流程回到步驟345。否則,方法340結(jié)束。方法340可以在時間上連續(xù)重復,由于相繼的數(shù)據(jù)字段字節(jié)被WCD104接收并存儲到第一接收路徑緩沖器216。
數(shù)據(jù)打包機方法圖3C是根據(jù)本發(fā)明的轉(zhuǎn)移數(shù)據(jù)字節(jié)的示例方法360的流程圖。方法360根據(jù)本發(fā)明包括由DP220與上述的CPU方法300和340一起實現(xiàn)的一系列方法步驟。
方法360開始于步驟365,當DP220接收到來自調(diào)制解調(diào)器控制器202的控制信息時(即當調(diào)制解調(diào)器控制器202在步驟310將控制信息寫入DP220時,如以上與方法300相關(guān)討論的)。在步驟365處,DP控制器232初始化內(nèi)部控制邏輯,并根據(jù)字節(jié)偏移(SO)和從調(diào)制解調(diào)器控制器202接收到的總數(shù)為N的數(shù)據(jù)字段字節(jié)而導出地址指針234和控制信號237。
下一步驟370開始于在DP220接收到包括來自調(diào)制解調(diào)器控制器202的一個或多個數(shù)據(jù)字段字節(jié)的數(shù)據(jù)字時(即分別在CPU方法300和340的步驟320和350內(nèi)調(diào)制解調(diào)器控制器202將數(shù)據(jù)字寫入到DP數(shù)據(jù)組織器230時)。最好,DP220實現(xiàn)步驟370是與調(diào)制解調(diào)器控制器寫入步驟320,以及由調(diào)制解調(diào)器控制器202在寫入步驟350(以下會詳述)實現(xiàn)的多個單個的寫入操作迸發(fā)地。在此使用的術(shù)語“迸發(fā)”意味著在調(diào)制解調(diào)器控制器202的存儲器寫入周期內(nèi)或期間DP220實現(xiàn)步驟370。另一方面,術(shù)語“迸發(fā)”也可意味著在下一存儲器寫入周期開始前完成步驟370。例如,當如上述的RISC處理器實現(xiàn)STM指令以將多個數(shù)據(jù)字轉(zhuǎn)移到DP220時,當調(diào)制解調(diào)器控制器202緊接著下一寫入周期執(zhí)行當前寫入周期,與當前寫入周期相關(guān)聯(lián)的當前步驟370應在下一寫入周期開始前被完成,因為下一寫入周期會在下一步驟370處開始。
在步驟370,DP數(shù)據(jù)組織器230根據(jù)控制信號237組織(例如如果必要的話重新安排)接收到的數(shù)據(jù)字的一個或多個數(shù)據(jù)字段字節(jié)的位置,使得一個或多個數(shù)據(jù)字段字節(jié)對應地與第二緩沖器226內(nèi)的一個或多個下一可用的緊鄰字節(jié)位置對齊。例如,當在步驟365內(nèi)DP控制器232接收到的字節(jié)偏移(即SO)為非零時,則這指明在當前數(shù)據(jù)字段塊轉(zhuǎn)移的第一接收到的數(shù)據(jù)內(nèi)忽略頭部字段字節(jié),DP組織器230在第一接收到的數(shù)據(jù)字內(nèi)重新安排一個或多個數(shù)據(jù)字段字節(jié)的位置。這在以下將會詳述。
調(diào)制解調(diào)器控制器寫入步驟320(方法300的)以及組織步驟370一起將數(shù)據(jù)字段字節(jié)從調(diào)制解調(diào)器控制器202轉(zhuǎn)移到第二接收路徑緩沖器226,因為在步驟370的末尾經(jīng)組織的數(shù)據(jù)字段字節(jié)按順序被送到第二緩沖器。類似地,調(diào)制解調(diào)器控制器寫入步驟350(來自方法340)以及組織步驟370一起將數(shù)據(jù)字節(jié)從調(diào)制解調(diào)器控制器202轉(zhuǎn)移到第二接收路徑緩沖器226。
在下一步驟375,DP控制器232使得接收到的數(shù)據(jù)字(不是如果包括在接收到的數(shù)據(jù)字內(nèi)的頭部字段字節(jié))一個或多個(可能經(jīng)重新安排的)數(shù)據(jù)字段字節(jié)存儲在第二緩沖器的對應的一個或多個下一可用相鄰字節(jié)位置(在上述步驟370內(nèi)描述),并與先前存儲的數(shù)據(jù)字段字節(jié)相鄰。在步驟375內(nèi),DP控制器232使用地址指針234和寫入信號236存儲一個或多個數(shù)據(jù)字段字節(jié)。最好,DP220與寫入步驟320和330迸發(fā)地實現(xiàn)步驟375。
在下一步驟380內(nèi),DP控制器232將地址指針234更新為對應于第二緩沖器226內(nèi)的下一可用的相鄰字節(jié)位置的地址。
在下一判決步驟385內(nèi),DP控制器232基于要轉(zhuǎn)移的總字節(jié)數(shù)N和先前在當前數(shù)據(jù)塊轉(zhuǎn)移內(nèi)接收到的數(shù)據(jù)字數(shù),確定是否還有從存儲器122轉(zhuǎn)移來的當前數(shù)據(jù)模塊內(nèi)進一步接收的數(shù)據(jù)字。當沒有進一步的數(shù)據(jù)字要被接收時,方法360中止。在另一方面,當還有數(shù)據(jù)字節(jié)要被接收時,流程控制回到步驟370,其中DP220等待來自調(diào)制解調(diào)器控制器202的下一要轉(zhuǎn)移的數(shù)據(jù)字。
總體(合并的CPU和數(shù)據(jù)打包機)方法圖4是根據(jù)本發(fā)明的從第一存儲器將數(shù)據(jù)字段字節(jié)塊轉(zhuǎn)移到第二存儲器的示例總體方法400的流程圖。方法400組合如上所述的調(diào)制解調(diào)器控制器202實現(xiàn)的CPU方法340和DP220實現(xiàn)的方法360。另一其它的總體方法(未示出)組合CPU方法300和DP220方法360。由于方法400包括先前描述的方法步驟,則在此不提供方法步驟的詳細描述,以避免不必要的描述重復。要理解的是方法360的判決步驟385從圖4中略去,以便更清楚地描述。
方法400的初始步驟305、310和365在存儲器內(nèi)建立多個包括頭部字段字節(jié)和數(shù)據(jù)字段字節(jié)的數(shù)據(jù)字,并如上所述初始化DP220。下一步驟345將多個數(shù)據(jù)字從存儲器122轉(zhuǎn)移到調(diào)制解調(diào)器控制器202。下一步驟350i、370、375和380在每次調(diào)制解調(diào)器控制器將步驟345內(nèi)讀取的多個數(shù)據(jù)字的一個寫入DP220時被重復。例如在步驟350i,調(diào)制解調(diào)器控制器202將步驟345內(nèi)讀出的多個數(shù)據(jù)字的單個寫入DP220。因此,方法400的步驟350i對應在方法340的步驟350內(nèi)實現(xiàn)的多個逐次寫入(或?qū)懭胪话l(fā))的單個寫入,其中調(diào)制解調(diào)器控制器202將多個數(shù)據(jù)字寫入調(diào)制解調(diào)器控制器202。
高層說明性示例現(xiàn)在描述根據(jù)方法400實現(xiàn)的高層說明性數(shù)據(jù)轉(zhuǎn)移示例。圖5A是天線106接收到的示例信號502(類似于圖1討論的信號140)。示例接收到的信號502包括頭部字段504a和504b以及數(shù)據(jù)字段506a和510b,其中頭部字段504a在時間上首先被收到。頭部字段504a包括三個頭部字節(jié)H0到H2(其中H0在H2前被接收到),數(shù)據(jù)字段506a包括表示數(shù)據(jù)字段字節(jié)第一塊的十五個字節(jié)D0-D14,等。
在上述的步驟305內(nèi),調(diào)制解調(diào)器120存儲一系列數(shù)據(jù)字,包括存儲器122內(nèi)的信號502的頭部和數(shù)據(jù)字段字節(jié)。圖5B是說明在步驟305內(nèi)將頭部和數(shù)據(jù)字段字節(jié)存儲在存儲器122內(nèi)后存儲器122的示例安排和示例內(nèi)容。在該例中,存儲器122包括一系列32比特(即4字節(jié))數(shù)據(jù)字位置(在圖5B描述為存儲器122的行)每個帶有存儲在其中的一個數(shù)據(jù)字510a-510n。每個字位置通過對應的字地址520a-520n而被尋址,諸如“0”、“4”等。每個字位置可以存儲32比特(即4字節(jié))字。即每個字位置包括4字節(jié)位置,由字內(nèi)的列或字節(jié)位置530a、530b、530c和530d表示。因此,存儲器122代表在存儲器122中一個字節(jié)的位置。每個字節(jié)位置(例如,534)包括多個存儲器“單元”,每個單個的存儲器“單元”(例如單元534)有對應的字節(jié)地址,在圖5的單元的對應的左上角內(nèi)指明。例如,字節(jié)位置或單元534具有對應的字節(jié)地址為“15”。
在示例中,頭部字段504a的頭部字段字節(jié)H0到H2占據(jù)了對應于存儲器122內(nèi)的數(shù)據(jù)字510a(具有字地址520a)的字節(jié)地址“0”到“2”。數(shù)據(jù)字段字節(jié)D0-D14的第一塊占據(jù)多個下一相鄰字節(jié)位置,這些位置對應于跨越在相鄰碼字地址“0”“4”“8”“12”和“16”上的字節(jié)地址“3”-“17”。下一頭部字段504b的頭部字段字節(jié)H0到H2占據(jù)對應的相鄰字節(jié)位置,這些位置對應跨越在碼字地址“16”和“20”上的字節(jié)地址“18”-“20”。第二數(shù)據(jù)字段字節(jié)D0-D6塊對應第二數(shù)據(jù)字段506b,占據(jù)相應的對應于字節(jié)地址“21”-“27”的相鄰字節(jié)位置。
圖5C是第二緩沖器226的示例存儲器安排。在圖5C內(nèi)描述的是第二緩沖器226的示例內(nèi)容,這是在第一和第二數(shù)據(jù)字段塊(相應對應數(shù)據(jù)字段506a和506b)已從存儲器122轉(zhuǎn)移到第二緩沖器226并然后使用本發(fā)明被存儲在第二緩沖器內(nèi)后的內(nèi)容。圖5C內(nèi)描述的第二緩沖器226的存儲器安排包括在類似存儲器122的字節(jié)位置的行內(nèi)的多個字節(jié)位置540(或單元540)。每個字節(jié)位置可以存儲從存儲器122轉(zhuǎn)移到第二緩沖器226的數(shù)據(jù)字段字節(jié)。在圖5C描述的示例安排內(nèi),第二緩沖器226包括對應于存儲器122的單元530a、530b、530c和530d的列的單元的列(即字節(jié)列)542a、542b、542c和542d。
在根據(jù)本發(fā)明第一和第二數(shù)據(jù)字段塊已被轉(zhuǎn)移到并存儲在緩沖器226內(nèi)后,第一數(shù)據(jù)字段字節(jié)塊的數(shù)據(jù)字段字節(jié)D0-D14被存儲在第二緩沖器226的具有地址“0”-“14”的對應相鄰字節(jié)位置。數(shù)據(jù)字段字節(jié)D0-D14在第二緩沖器226內(nèi)以如它們在存儲器122內(nèi)存儲的那樣。同樣的字節(jié)順序被存儲類似地,第二數(shù)據(jù)字段字節(jié)塊的數(shù)據(jù)字段字節(jié)D0-D6被存儲在第二緩沖器226的對應的相鄰字節(jié)位置“15”-“21”,與它們存儲在存儲器122內(nèi)的字節(jié)順序相同。而且,第二數(shù)據(jù)字段字節(jié)塊的第一數(shù)據(jù)字段字節(jié)D0與先前存儲的第一數(shù)據(jù)字段字節(jié)塊的最后數(shù)據(jù)字段字節(jié)D14相鄰存儲。因此,DP220將從調(diào)制解調(diào)器控制器202接收到的數(shù)據(jù)字的頭部字段字節(jié)剝?nèi)ィ⒔邮盏降臄?shù)據(jù)字的剩余數(shù)據(jù)字段字節(jié)打包入第二緩沖器,例如如圖5C內(nèi)描述的。
數(shù)據(jù)打包機實施例在進一步詳述方法400前最好能進一步了解DP220的詳細情況。因此,現(xiàn)在詳述DP220。圖6是根據(jù)本發(fā)明的實施例的DP220的詳細框圖。DP220可以作為一個或多個專用集成電路(ASIC)而實現(xiàn)。在圖6內(nèi),DP控制器232和DP數(shù)據(jù)組織器230是關(guān)于第二緩沖器226而被描述。DP控制器232包括控制單元604、寫入發(fā)生器606和地址發(fā)生器608。根據(jù)本發(fā)明,控制單元604可以包括以下的控制寫入發(fā)生器606、地址發(fā)生器608和DP組織器230所必須的下列任一種或其組合計數(shù)器邏輯、比較邏輯和狀態(tài)機邏輯??刂茊卧?04在數(shù)據(jù)總線204上接收初始化數(shù)據(jù)字(例如在以上圖3和圖4中說明的方法300和400的步驟310處),并在地址總線206上連同寫入信號210尋址??刂茊卧?04根據(jù)在數(shù)據(jù)塊轉(zhuǎn)移期間在數(shù)據(jù)總線204上接收到的初始化數(shù)據(jù)字(包括控制信息)和寫入信號210導出valid_burst_signal 612、end_of_burst信號614(指明在當前數(shù)據(jù)塊轉(zhuǎn)移內(nèi)的最后數(shù)據(jù)字轉(zhuǎn)移),a start_of_burstsignal616(指明在當前數(shù)據(jù)塊轉(zhuǎn)移內(nèi)的第一或開始數(shù)據(jù)字)以及burst_wr信號618(根據(jù)寫入信號210導出)。在此使用的“突發(fā)”一詞是指從存儲器122轉(zhuǎn)移到第二緩沖器226的數(shù)據(jù)字段字節(jié)塊,因此與“數(shù)據(jù)塊轉(zhuǎn)移”同義??刂茊卧?04將信號612-618提供給寫入發(fā)生器606和地址發(fā)生器608??刂茊卧?04還根據(jù)由DP控制器232接收到的初始化數(shù)據(jù)字而導出控制信號237。
地址發(fā)生器608包括地址單元608a、608b、608c和608d(一起且一般被稱為地址單元608),它們對應第二緩沖器226的字節(jié)列542a、542b、542c和542d(一起并一般被稱為字節(jié)列542)。地址單元608a包括邏輯(諸如計數(shù)器邏輯)以根據(jù)從控制單元604接收的信號612-618導出或生成地址指針234a。地址單元608a將地址指針234a通過地址總線234(圖2中討論)提供給第二緩沖器226的對應的字節(jié)列542a。DP220使用地址指針234a以定址第二緩沖器226的字節(jié)列542a內(nèi)的下一可用字節(jié)位置。類似地,地址單元608b-608d將相應的地址指針234b-234d提供給相應的字節(jié)列542b-542d。每個地址單元608可以獨立地在第二緩沖器226的對應的一個字節(jié)列542內(nèi)定址相應的字節(jié)位置。
寫入發(fā)生器606包括多個寫入單元606a、606b、606c和606d(一起并一般被稱作寫入單元606),每個對應第二緩沖器226的相應的一個字節(jié)列542。寫入單元606a包括根據(jù)從控制單元604接收到的信號612-618而導出字節(jié)寫信號236a的邏輯。當數(shù)據(jù)字段字節(jié)要寫入第二緩沖器226的字節(jié)列542a內(nèi)的下一可用字節(jié)位置時,寫入單元606a發(fā)出字節(jié)寫入信號236a。寫入單元606a最好發(fā)出與寫入信號210(由例如調(diào)制解調(diào)器控制器202提供)一致的字節(jié)寫入信號,使得寫入數(shù)據(jù)打包機220的數(shù)據(jù)字中的字節(jié)(例如由調(diào)制解調(diào)器控制器202寫入)可以迸發(fā)地寫入(即存入)第二緩沖器226(如以下將進一步描述)。當字節(jié)寫入信號236a被發(fā)出,在數(shù)據(jù)總線238(以上圖2描述)送到第二緩沖器226的數(shù)據(jù)字段字節(jié)在發(fā)出字節(jié)寫入信號的時候?qū)懭?即存入)地址指針234a定址的字節(jié)位置。類似地,每個寫入單元606b-606d導出相應的一個字節(jié)寫入信號236b-236d(其中,字節(jié)寫入信號236a-236b一起并一般被稱為字節(jié)寫入信號236,且以上結(jié)合圖2已描述),并提供這樣導出的字節(jié)寫入信號給相應的寫入列542b-542d。每個字節(jié)寫入信號236可以獨立于其它字節(jié)寫入信號而被發(fā)出,其中響應于對應的字節(jié)寫入信號,數(shù)據(jù)字節(jié)可以被寫入(即存入)任何一個獨立于其它字節(jié)列的字節(jié)列542。在送到第二緩沖器226的僅是選中的多個數(shù)據(jù)字段字節(jié)要存儲在第二緩沖器內(nèi)時,這是有用的,以下將詳述。
DP組織器230在數(shù)據(jù)總線204上接收32比特(即4字節(jié))數(shù)據(jù)字。每個在數(shù)據(jù)字內(nèi)接收到的字節(jié)占據(jù)數(shù)據(jù)字內(nèi)預定的字節(jié)位置,如圖6內(nèi)字節(jié)位置指明的,標為“字節(jié)a”、“字節(jié)b”、“字節(jié)c”和“字節(jié)d”。DP數(shù)據(jù)組織器230根據(jù)控制信號237組織(例如在必要時重新安排)由數(shù)據(jù)組織器接收到的每個字節(jié)的字節(jié)位置。DP組織器230將數(shù)據(jù)字節(jié)238a提供給第二緩沖器226的字節(jié)列542a(在數(shù)據(jù)總線238上,如上圖2所述)。數(shù)據(jù)字節(jié)238a可以是“字節(jié)a”、“字節(jié)b”、“字節(jié)c”和“字節(jié)d”數(shù)據(jù)字節(jié)的任何一種,這取決于控制信號237。例如,當控制信號237指明要保留字節(jié)a-d原始或接收到的順序時,字節(jié)238a可以是“字節(jié)a”。在另一方面,字節(jié)238a取決于控制信號237可以是字節(jié)b-d的任何一個。當發(fā)出字節(jié)寫入信號236a時,字節(jié)238a被寫入(即存入)地址指針234a定址的字節(jié)位置。類似地,DP數(shù)據(jù)組織器230在數(shù)據(jù)總線238上向相應的字節(jié)列542b-542d提供數(shù)據(jù)字節(jié)238b-238d。每個數(shù)據(jù)字節(jié)238b-238d根據(jù)對應的字節(jié)寫入信號236b-236d相應地寫入對應的字節(jié)列542b-542d的一個。字節(jié)寫入第二緩沖器226內(nèi)的每個字節(jié)列是獨立于字節(jié)寫入到第二緩沖器226的其它字節(jié)列而經(jīng)控制和實現(xiàn)的。
在本發(fā)明中,當調(diào)制解調(diào)器控制器202在數(shù)據(jù)總線204上將數(shù)據(jù)字寫入DP數(shù)據(jù)組織器230并使用寫入信號210時,DP數(shù)據(jù)組織器組織(例如在必要時重新排序)從調(diào)制解調(diào)器控制器接收到的數(shù)據(jù)字的字節(jié)位置,這與調(diào)制解調(diào)器控制寫入操作迸發(fā)地進行。而且,如上所述,寫入發(fā)生器606導出與寫入信號210一致的字節(jié)寫入信號236d-236a,使得由DP數(shù)據(jù)組織器230生成的經(jīng)重新組織的字節(jié)238a-238d可以被存入第二緩沖器226,這與調(diào)制解調(diào)器控制器202將數(shù)據(jù)字寫入數(shù)據(jù)組織器迸發(fā)進行。因此,當調(diào)制解調(diào)器控制器202將數(shù)據(jù)字寫入數(shù)據(jù)打包機220以將數(shù)據(jù)字的數(shù)據(jù)字段字節(jié)存儲在第二緩沖器226內(nèi)時,數(shù)據(jù)打包機作為中介以有利地組織數(shù)據(jù)字內(nèi)的數(shù)據(jù)字段字節(jié)并將數(shù)據(jù)字段字節(jié)存儲在第二緩沖器內(nèi)的合適位置,這與寫入操作迸發(fā)進行,且其方式對于調(diào)制解調(diào)器控制器是透明的。
詳細方法方法400現(xiàn)在更詳細地通過示例并參考圖2-6和以下的圖7而描述。還要參考以下描述的圖8A-8E內(nèi)描述的一系列說明。在開始時,示例假設以上圖5A內(nèi)討論的信號502由WCD104接收,且所有與信號502相關(guān)的數(shù)據(jù)字節(jié)被發(fā)送到第一接收路徑緩沖器216。還假設第二緩沖器226初始時為空,且因此根據(jù)本發(fā)明等待接收來自存儲器122的數(shù)據(jù)字段字節(jié)的第一轉(zhuǎn)移。
在方法400的初始步驟305,調(diào)制解調(diào)器控制器202將存儲在第一接收路徑緩沖器216內(nèi)的數(shù)據(jù)字節(jié)轉(zhuǎn)移到存儲器122。圖7是在實現(xiàn)了步驟305后的存儲器122的說明。圖7和圖5B是相同的,在此重復為了方便。
在步驟310,調(diào)制解調(diào)器控制器202檢查存儲器122以確定初始化DP220的控制信息。調(diào)制解調(diào)器控制器202確定開始數(shù)據(jù)字段字節(jié)D0和存儲器122內(nèi)的第一字510a的第一字地址“0”間的字節(jié)偏移(SO)。在示例中,字節(jié)偏移是“3”,因為,第一字510a包括頭部字節(jié)H0-H2以及開始數(shù)據(jù)字段字節(jié)D0。調(diào)制解調(diào)器控制器202還確定要轉(zhuǎn)移到第二緩沖器226的第一數(shù)據(jù)字段字節(jié)內(nèi)的總數(shù)據(jù)字段字節(jié)數(shù)N。在示例中,N=15,對應數(shù)據(jù)字段字節(jié)D0-D14。調(diào)制解調(diào)器控制器202向DP220寫入包括控制信息(字節(jié)偏移=3且總數(shù)N=15)寫入初始化數(shù)據(jù)字。
在步驟365,DP控制器232根據(jù)接收到的控制信息初始化用于包括數(shù)據(jù)字節(jié)D0-D14的當前數(shù)據(jù)塊轉(zhuǎn)移的邏輯(例如,地址發(fā)生器608和寫入發(fā)生器606)。例如控制單元604初始導出信號612-616需要的內(nèi)部控制邏輯、計數(shù)器、狀態(tài)機等??刂茊卧?04還根據(jù)控制信息導出DP組織器控制信號237的值??刂茊卧?04在整個從存儲器122到第二緩沖器226的數(shù)據(jù)字段字節(jié)的塊轉(zhuǎn)移中維持控制信號237的值。
圖8A是說明在本示例中方法400不同階段的第二緩沖器226和DP220的部分。第二緩沖器226在圖8A內(nèi)描述為處于初始空狀態(tài)。而且,地址指針234在圖8A內(nèi)描述為處于初始狀態(tài)。每個地址指針234a、234b、234c和234d(為描述方便,還稱為相應的地址指針Pa、Pb、Pc和Pd)指向(即定址)在對應的第二緩沖器226內(nèi)的一個字節(jié)列542內(nèi)的下一可用(例如為空)的字節(jié)位置。由于第二緩沖器226初始時為空,在每個字節(jié)列542內(nèi)第一字節(jié)位置可用,使得指針Pa-Pd相應地指向第二緩沖器內(nèi)的字節(jié)地址“0”-“3”。數(shù)據(jù)組織器230的狀態(tài),如在圖8A內(nèi)描述的,會在以下描述。
在下一步驟345,調(diào)制解調(diào)器控制器202從相應的存儲器碼字位置“0”-“16”使用五個多字節(jié)字讀取操作讀出包括數(shù)據(jù)字段字節(jié)D0-D14的五個數(shù)據(jù)字510a-510e。這樣,調(diào)制解調(diào)器控制器202不區(qū)別地讀取包括頭部和數(shù)據(jù)字段字節(jié)的數(shù)據(jù)字(例如相應的第一和最后數(shù)據(jù)字510a和510e)。
第一寫入在第一次通過下一步驟350i時(即i=1),調(diào)制解調(diào)器控制器202將第一數(shù)據(jù)字510a寫入DP數(shù)據(jù)組織器230。這樣,調(diào)制解調(diào)器控制器202不區(qū)別地將包括在字510a內(nèi)的數(shù)據(jù)和頭部字段字節(jié)寫入DP數(shù)據(jù)組織器230。
在步驟370內(nèi),DP數(shù)據(jù)組織器230接收第一數(shù)據(jù)字510a,使得頭部字段字節(jié)H0,H1和H2以及數(shù)據(jù)字段字節(jié)D0相應地占據(jù)與第二緩沖器226的字節(jié)列542a、542b、542c和542d對齊的DP數(shù)據(jù)組織器內(nèi)的字節(jié)位置,如圖8A所描述。DP數(shù)據(jù)組織器230重新根據(jù)控制信號237安排接收到的數(shù)據(jù)字段字節(jié)的位置,以將接收到的數(shù)據(jù)字段字節(jié)與第二緩沖器226內(nèi)下一可用的相鄰字節(jié)位置對齊。在示例中,響應于控制信號237,DP數(shù)據(jù)組織器230將接收到的字節(jié)按順時針方向向右旋轉(zhuǎn)三個位置(或者,逆時針方向向左旋轉(zhuǎn)一個位置),使得接收到的開始數(shù)據(jù)字節(jié)D0與和第二緩沖器226的第一字節(jié)列542a重合的第一字節(jié)位置“0”對齊。在步驟370的三個字節(jié)順時針(或一個字節(jié)逆時針)旋轉(zhuǎn)操作后,組織的字節(jié)238a、238b、238c和238d(見圖6)相應地對應圖8A內(nèi)描述的數(shù)據(jù)字段字節(jié)D0,H0,H1和H2。
在下一步驟375,DP控制器232只將DP數(shù)據(jù)組織器230接收到的數(shù)據(jù)字段字節(jié)(而不是頭部字段字節(jié))存儲在第二緩沖器226內(nèi)。DP控制器232使用寫入發(fā)生器606a以只發(fā)出寫入信號236a,從而根據(jù)地址指針Pa(初始時指向第二緩沖器226內(nèi)的字節(jié)地址“0”),將只將數(shù)據(jù)字段字節(jié)D0(對應數(shù)據(jù)字節(jié)238a)存儲在對應第二緩沖器226的字節(jié)地址“0”處。因此,頭部字段字節(jié)H0-H2在存儲步驟375內(nèi)被忽略。
在下一步驟380處,地址發(fā)生器608更新地址指針Pa-Pd,使得地址指針定址第二緩沖器226內(nèi)的下一可用相鄰字節(jié)位置。在示例中,地址發(fā)生器608只更新地址指針Pa,因為只有字節(jié)列542a在步驟375處接收到數(shù)據(jù)字段字節(jié)(即存儲在先前位置“0”處的數(shù)據(jù)字段字節(jié)D0)。圖8B是說明在步驟375的字節(jié)存儲后第二緩沖器226的內(nèi)容,以及在地址更新步驟380后的指針Pa-Pb。只有開始數(shù)據(jù)字段字節(jié)D0已被存儲在第二緩沖器226內(nèi)。圖8B內(nèi)描述的DP組織器230的狀態(tài)描述如下。
第二寫入在步驟380后,流程回到步驟350i,第二次通過步驟350i(其中i=2)、370、375和380,由于進一步讀出的碼字510b-510e要在到第二緩沖器的當前的數(shù)據(jù)塊轉(zhuǎn)移內(nèi)寫入第二緩沖器226。在第二次通過步驟350i時,調(diào)制解調(diào)器控制器202將第二數(shù)據(jù)字510b(中間數(shù)據(jù)字)寫入DP數(shù)據(jù)組織器230。
在步驟370,DP數(shù)據(jù)組織器230接收到第二數(shù)據(jù)字,使得數(shù)據(jù)字段字節(jié)D1,D2,D3和D4相應地占據(jù)與字節(jié)列542a、542b、542c和542d對齊的數(shù)據(jù)組織器內(nèi)的相應的字節(jié)位置,如圖8B描述的。而且在步驟370內(nèi),響應于控制信號237,DP數(shù)據(jù)組織器230同樣將接收到的字節(jié)按順時針方向向右旋轉(zhuǎn)了三個位置(或者,逆時針方向向左旋轉(zhuǎn)了一個位置),以將接收到的字節(jié)D1,D2,D3和D4與對應的相鄰下一可用字節(jié)位置對齊,這些可用字節(jié)位置對應于和字節(jié)列542b、542c、542d和542a重合的字節(jié)地址“1”、“2”、“3”和“4”。在步驟370的三字節(jié)旋轉(zhuǎn)(或一字節(jié)旋轉(zhuǎn))操作后,組織后的字節(jié)238a、238b、238c和238d相應地對應數(shù)據(jù)字段字節(jié)D4,D1,D2和D3,如圖8B描述的。
在下一步驟375,DP控制器232使用寫入發(fā)生器606以發(fā)出所有的寫入信號234a-234d,從而將所有的數(shù)據(jù)字段字節(jié)D1-D4存儲在對應第二緩沖器226的字節(jié)地址“1”到“4”的相鄰字節(jié)位置內(nèi)。而且,數(shù)據(jù)字段字節(jié)D1-D4在第二緩沖器226內(nèi)以與數(shù)據(jù)字段字節(jié)在存儲器112內(nèi)相同的字節(jié)順序而被存儲。
在下一步驟380,地址發(fā)生器608更新(在該實施例中是增加)所有地址指針Pa-Pd,因為所有字節(jié)列542在步驟375內(nèi)接收到的數(shù)據(jù)字段字節(jié),使得地址指針指向第二緩沖器內(nèi)對應字節(jié)地址“5”-“8”的下一可用相鄰字節(jié)位置。圖8C說明在第二次通過寫入步驟375后的第二緩沖器226的內(nèi)容和在第二次通過指針更新步驟380后的指針Pa-Pb。在步驟375后,數(shù)據(jù)字段字節(jié)D0-D4以與在存儲器122內(nèi)相同的字節(jié)順序存儲在第二緩沖器226內(nèi)??梢詮囊陨系拿枋鲋欣斫獾刂钒l(fā)生器606在數(shù)據(jù)字段字節(jié)存儲在每個對應的字節(jié)列內(nèi)后增加每個指針Pa-Pd。圖8C內(nèi)描述的DP組織器230的狀態(tài)描述如下。
第三和第四(中間)寫入調(diào)制解調(diào)器控制器202在方法400的相應的第三和第四次通過步驟350-380期間將中間數(shù)據(jù)字510c和510d的寫入第二緩沖器226。圖8D說明第二緩沖器226的內(nèi)容以及指針Pa-Pd在第四次經(jīng)過步驟380后的狀態(tài)。在圖8D內(nèi)描述的DP數(shù)據(jù)組織器230的狀態(tài)描述如下。
第五和最后寫入調(diào)制解調(diào)器控制器202在最后或第五次通過步驟350i(其中i=5)時將最后數(shù)據(jù)字510e寫入第二緩沖器226,在最后一次通過步驟350i-380以完成從存儲器122到第二緩沖器的當前數(shù)據(jù)塊轉(zhuǎn)移。在步驟370內(nèi),DP數(shù)據(jù)組織器230同樣將接收到的字節(jié)向右旋轉(zhuǎn)三個字節(jié)(或向左一個字節(jié))以將字節(jié)D13和D14與下一與先前存儲的數(shù)據(jù)字段字節(jié)D12相鄰的可用字節(jié)位置(對應字節(jié)地址“13”和“14”對齊(見圖8D)。
在下一步驟380,寫入發(fā)生器606只發(fā)出寫入信號236b和236c,以只存儲數(shù)據(jù)字510e的數(shù)據(jù)字段字節(jié)D13和D14在字節(jié)位置“13”和“14”中,從而忽略還包括在數(shù)據(jù)字510e內(nèi)的頭部字段字節(jié)H0和H1。圖8E說明在第五次通過步驟380后的第二緩沖器226的內(nèi)容和指針Pa-Pd的狀態(tài)。在步驟380之后,包含數(shù)據(jù)字段字節(jié)D0-D14的第一數(shù)據(jù)字段字節(jié)塊已從存儲器122轉(zhuǎn)移到第二緩沖器226,并存儲在第二緩沖器內(nèi)相鄰字節(jié)位置,且以與在存儲器122內(nèi)相同的字節(jié)順序存儲。而且,指針Pa-Pd指向第二緩沖器226內(nèi)下一可用相鄰字節(jié)位置,與先前存儲的數(shù)據(jù)字段字節(jié)D15相鄰。由指針Pa-Pd指明的位置表示要轉(zhuǎn)移并存儲在第二緩沖器226內(nèi)的下一數(shù)據(jù)字段字節(jié)的初始第二緩沖器地址。
方法400被重復以將包括存儲器122的字節(jié)地址“21”到“27”的數(shù)據(jù)字節(jié)D0-D6的下一(或第二)數(shù)據(jù)字段字節(jié)塊轉(zhuǎn)移到第二緩沖器226。根據(jù)本發(fā)明,下一數(shù)據(jù)字段塊的第一數(shù)據(jù)字段字節(jié)(在存儲器122的位置地址“21”處的字節(jié)D0)被轉(zhuǎn)移并存儲在字節(jié)位置地址“15”,即與先前在第二緩沖器226內(nèi)存儲的數(shù)據(jù)字段字節(jié)D14相鄰,等等。
數(shù)據(jù)組織器本發(fā)明的一優(yōu)勢是能將數(shù)據(jù)字轉(zhuǎn)移到第二緩沖器230,并以及時的方式在第二緩沖器內(nèi)存儲相關(guān)的經(jīng)組織的數(shù)據(jù)字節(jié),例如與將數(shù)據(jù)字寫入第二緩沖器迸發(fā)地的方式。DP數(shù)據(jù)組織器230在本發(fā)明中支持該種有優(yōu)勢的操作。圖9是根據(jù)本發(fā)明的一實施例,DP數(shù)據(jù)組織器230和第二緩沖器226的詳細框圖。數(shù)據(jù)組織器230包括耦合到數(shù)據(jù)總線204和耦合到數(shù)據(jù)緩沖器904的多個多路復用器906a、906n、906c和906d(一起并一般被稱為多路復用器906)。數(shù)據(jù)緩沖器904在數(shù)據(jù)總線204上接收數(shù)據(jù)比特D310(即數(shù)據(jù)比特“31”-“0”)。數(shù)據(jù)緩沖器然后提供1.在字節(jié)寬(即8比特寬)數(shù)據(jù)總線9083上向每個多路復用器906提供數(shù)據(jù)比特集合D3124;2.在字節(jié)寬數(shù)據(jù)總線9082上向每個多路復用器906提供數(shù)據(jù)比特集合D2316;3.在字節(jié)寬數(shù)據(jù)總線9081上向每個多路復用器906提供數(shù)據(jù)比特集合D158;4.在字節(jié)寬數(shù)據(jù)總線9080上向每個多路復用器906提供數(shù)據(jù)比特集合D70(其中數(shù)據(jù)總線9080、9081、9082和9083被一起并一般稱為字節(jié)寬數(shù)據(jù)總線908)。
每個多路復用器906包括四個字節(jié)寬輸入“0”、“1”、“2”和“3”。每個這些字節(jié)寬輸入耦合到一個相應的字節(jié)寬總線908,由此接收對應的八個數(shù)據(jù)比特集合(例如D70等)。每個多路復用器906包括選定的輸入“S”,用于從DP控制器232接收控制信號237。根據(jù)控制信號237每個多路復用器906提供八個數(shù)據(jù)比特的選擇集合(即選擇的數(shù)據(jù)字節(jié)),這是從送到多路復用器輸入“0”-“3”以及多路復用器輸出“0”的四個八數(shù)據(jù)比特集合中選出的(即從四個數(shù)據(jù)字節(jié)中選出的)??刂菩盘?37的值“0”、“1”、“2”和“3”從相應的多路復用器輸入“0”、“1”、“2”和“3”中選出字節(jié)。多路復用器906a、906b、906c和906d有相應的對應數(shù)據(jù)字節(jié)238a、238b、238c和238d(如上述圖6的描述)的輸出0。
由于每個多路復用器906接收相同的選擇控制信號237,提供給每個多路復用器906的字節(jié)寬輸入“0”-“3”的數(shù)據(jù)比特集合的順序(即集合D3124,D2316,D158以及D70)相對每個其它的多路復用器而被排列。例如,多路復用器906a、906b、906c和906d的字節(jié)寬輸入“0”相應地接收不同的數(shù)據(jù)比特集合D70、D158、D2316和D3124等,如圖9內(nèi)描述的。這使得每個多路復用器906能根據(jù)提供給每個其它的多路復用器的控制信號237而提供給數(shù)據(jù)總線238合適的數(shù)據(jù)字節(jié)(即數(shù)據(jù)比特集合)。以下提供說明性示例。
第二接收路徑緩沖器226包括四個獨立的字節(jié)寬RAM,每個對應相應的一個第二緩沖器的字節(jié)列542。因此,給予圖9內(nèi)描述的四個RAM的每個與其對應的字節(jié)列相同的參考號(例如542a等)。多路復用906a-906d提供對應的組織的字節(jié)238a-238d給對應的RAM542a-542b。而且,每個RAM542接收對應的一個寫入信號236以及對應的一個地址指針234,如在圖6內(nèi)描述的。
在操作中,當控制信號237有值=“0”時,DP數(shù)據(jù)組織器230維持接收到的字節(jié)順序。在該情況下,多路復用器906a、906b、906c和906d相應地提供數(shù)據(jù)字節(jié)D3124、D70、D158和D2316作為相應的輸出字節(jié)238a、238b、238c和238d。因此DP數(shù)據(jù)組織器230不旋轉(zhuǎn)(即重新排序)接收的數(shù)據(jù)字節(jié)位置。
當控制信號237的值=“1”時,多路復用器906a、906b、906c和906d分別選擇數(shù)據(jù)字節(jié)D3124、D70、D158和D2316作為相應的輸出字節(jié)238a、238b、238c和238d。因此,DP數(shù)據(jù)組織器230將接收到的數(shù)據(jù)字節(jié)的位置逆時針向左旋轉(zhuǎn)(即重新排序)一個位置。類似地,當控制信號237的值為2或3時,DP數(shù)據(jù)組織器232將接收到的字節(jié)向左旋轉(zhuǎn)2或3字節(jié)。
計算機系統(tǒng)本發(fā)明的方法使用控制器(例如調(diào)制解調(diào)器控制器)和數(shù)據(jù)打包機(例如數(shù)據(jù)打包機220)而實現(xiàn),兩者都在基于計算機系統(tǒng)的環(huán)境中操作。雖然通信專用硬件可以用來實現(xiàn)本發(fā)明,但以下的通用計算機系統(tǒng)的描述提供了完整性。本發(fā)明最好在例如由調(diào)制解調(diào)器控制202執(zhí)行的軟件和硬件形成數(shù)據(jù)打包機220(以及252)的組合內(nèi)實現(xiàn)。結(jié)果,本發(fā)明可能在計算機系統(tǒng)或其它處理系統(tǒng)內(nèi)實現(xiàn)。
該種計算機系統(tǒng)1000的例子在圖10內(nèi)示出。在本發(fā)明中,上述的方法或過程,例如方法300和340,在計算機系統(tǒng)1000上執(zhí)行。計算機系統(tǒng)1000包括一個或多個處理器,諸如處理器1004(例如對應調(diào)制解調(diào)器控制器202)。處理器1004連接到通信基礎設施1006(例如總線或網(wǎng)絡,它可以包括圖2內(nèi)討論的地址和數(shù)據(jù)總線206和204)。各種軟件實現(xiàn)可以根據(jù)該示例計算機系統(tǒng)而描述。在閱讀該描述后,相關(guān)領域的技術(shù)人員會很清楚如何使用其它計算機系統(tǒng)和/或計算機結(jié)構(gòu)實現(xiàn)本發(fā)明。
計算機系統(tǒng)1000還包括主存儲器1008,最好是隨機存取存儲(RAM),且可能還包括第二存儲器1010。第二存儲器1010可能包括例如硬盤驅(qū)動1012和/或可移動存儲驅(qū)動1014,表示軟盤驅(qū)動、磁帶驅(qū)動、光盤驅(qū)動等??梢苿哟鎯︱?qū)動1014以已知的方式從可移動存儲單元1018讀出和/或?qū)懭???梢苿哟鎯卧?018表示軟盤、磁帶、光盤等,這些由可移動存儲驅(qū)動1014讀取和寫入??梢岳斫?,可移動存儲單元1018包括計算機可使用的存儲介質(zhì),其上存儲由計算機軟件和/或數(shù)據(jù)。
在其它實現(xiàn)中,輔助存儲器1010可能包括其它類似的裝置,以能將計算機程序或其它指令載入計算機系統(tǒng)1000。該種裝置可能包括例如可移動存儲單元1022和接口1020。該種裝置的例子可能包括程序盒式磁盤和盒式磁盤接口(諸如可在視頻游戲設備內(nèi)找到的)、可移動存儲芯片(諸如EPROM或PROM)以及相關(guān)的插座,以及其它的可移動存儲單元1022和接口1020,它們使得軟件和數(shù)據(jù)能從可移動存儲單元1022轉(zhuǎn)移到計算機系統(tǒng)1000。
計算機系統(tǒng)1000還可能包括通信接口1024。通信接口1024使得軟件和數(shù)據(jù)能在計算機系統(tǒng)1000和外部設備間轉(zhuǎn)移。通信接口1024的示例可能包括調(diào)制解調(diào)器、網(wǎng)絡接口(諸如以太網(wǎng))、通信端口、PCMCIA槽和卡等。通過通信接口1024轉(zhuǎn)移的軟件和數(shù)據(jù)的形式是以信號1028的形式,可能是電子、電磁、光或其它能由通信接口1024接收的信號。這些信號1028通過通信路徑1026被提供給通信接口1024。通信路徑1026攜帶信號1028,且可能使用線或電纜、光纖、電話線、蜂窩電話鏈路、RF鏈路和其它通信信道而實現(xiàn)。
在該文檔中,“計算機程序介質(zhì)”和“計算機可使用介質(zhì)”一詞用于一般指介質(zhì)諸如可移動存儲驅(qū)動1014、安裝在硬盤驅(qū)動1012內(nèi)的硬盤以及信號1028。這些計算機程序產(chǎn)品是用于提供給計算機軟件的裝置。
計算機程序(又被稱為計算機控制邏輯)被存儲在主存儲器1008和/或輔助存儲器1010內(nèi)。計算機程序還可能通過通信接口1024而被接收。該種計算機程序,當執(zhí)行時,使得計算機系統(tǒng)1000能如上所述的被執(zhí)行。特別是,計算機程序在被執(zhí)行時,使得處理器1004能實現(xiàn)本發(fā)明的過程。相應地,該種計算機程序表示計算機系統(tǒng)1000的控制器。作為一例,在本發(fā)明的最優(yōu)實施例中,由調(diào)制解調(diào)器控制器202實現(xiàn)的過程可以由計算機控制邏輯實現(xiàn)。其中本發(fā)明使用軟件而實現(xiàn),該軟件可能存儲在計算機程序產(chǎn)品內(nèi),并使用可移動存儲驅(qū)動1014、硬驅(qū)動1012或通信接口1012而被加載入計算機系統(tǒng)1000。
結(jié)論雖然以上討論了本發(fā)明的多種實施例,可以理解它們僅是示例,而不是限制。因此,本發(fā)明的范圍不應受到任何以上描述的示例實施例和安排的限制,而只因根據(jù)以下的權(quán)利要求和其等價體而經(jīng)定義。
上述的本發(fā)明的描述使用了說明特定功能的性能和其關(guān)系的功能模塊。為了描述方便,這些功能模塊的界限在此是任意定義的。可以定義其它的界限,只要其特定的功能的關(guān)系經(jīng)合適地實現(xiàn)。任何該種其它的界限因此在本發(fā)明的范圍之內(nèi)。領域內(nèi)的技術(shù)人員可以知道這些功能模塊可以由離散組件、專用集成電路、執(zhí)行合適軟件以及其類似或組合而實現(xiàn)。因此,本發(fā)明的范圍不應受到任何以上描述的示例實施例和安排的限制,而只因根據(jù)以下的權(quán)利要求和其等價體而經(jīng)定義。
權(quán)利要求
1.一種將數(shù)據(jù)字節(jié)從第一存儲器轉(zhuǎn)移到第二存儲器的方法,其特征在于包括以下步驟(a)將包括頭部字段字節(jié)和多個數(shù)據(jù)字段字節(jié)的多個多字節(jié)數(shù)據(jù)字存儲在第一存儲器內(nèi);(b)從第一存儲器讀出包括頭部字段字節(jié)和一個或多個數(shù)據(jù)字段字節(jié)的第一數(shù)據(jù)字;(c)將一個或多個數(shù)據(jù)字段字節(jié)轉(zhuǎn)移到第二存儲器;以及(d)在第二存儲器內(nèi)只存儲一個或多個數(shù)據(jù)字段字節(jié),所述字節(jié)與先前轉(zhuǎn)移并存儲的數(shù)據(jù)字段字節(jié)相鄰。
2.如權(quán)利要求1所述的方法,其特征在于所述讀取步驟(b)包括使用多字節(jié)讀取數(shù)據(jù)轉(zhuǎn)移操作來讀取第一數(shù)據(jù)字。
3.如權(quán)利要求1所述的方法,其特征在于步驟(c)包括以下步驟(c)(i)使用多字節(jié)寫轉(zhuǎn)移操作將第一數(shù)據(jù)字寫入第二存儲器。
4.如權(quán)利要求3所述的方法,其特征在于步驟(c)還包括以下步驟(c)(ii)與所述的寫入步驟(c)(i)進發(fā)地進行第一數(shù)據(jù)字內(nèi)的一個或多個數(shù)據(jù)字節(jié)的重新排序。
5.如權(quán)利要求3所述的方法,其特征在于步驟(c)還包括以下步驟(c)(ii)將第一數(shù)據(jù)字內(nèi)的一個或多個數(shù)據(jù)字段字節(jié)重新安排,使得一個或多個數(shù)據(jù)字段字節(jié)的第一個與先前在所述的存儲步驟(d)內(nèi)轉(zhuǎn)移的數(shù)據(jù)字段字節(jié)的所存儲的數(shù)據(jù)字段字節(jié)相鄰存儲。
6.如權(quán)利要求5所述的方法,其特征在于還包括以下步驟(e)確定存儲在第一存儲器內(nèi)的第一數(shù)據(jù)字的字地址和在第一字內(nèi)的一個或多個數(shù)據(jù)字節(jié)的第一個的字節(jié)地址間的偏移,其中步驟(c)(ii)中的所述的重新排序基于步驟(e)確定的字節(jié)偏移。
7.如權(quán)利要求1所述的方法,其特征在于還包括步驟(e)導出在第二存儲器內(nèi)與先前字節(jié)位置相鄰的下一可用字節(jié)位置的地址指針,所述的存儲步驟(d)包括根據(jù)地址指針在第二存儲器內(nèi)存儲一個或多個數(shù)據(jù)字段字節(jié)的第一個。
8.如權(quán)利要求1所述的方法,其特征在于存儲在第一存儲器內(nèi)的多字節(jié)數(shù)據(jù)字的每個內(nèi)的每個字節(jié)占據(jù)數(shù)據(jù)字內(nèi)預定的字節(jié)位置;第二存儲器包括多個存儲器分段,每個對應相應的一個字節(jié)位置;以及步驟(d)包括根據(jù)第一數(shù)據(jù)字內(nèi)一個或多個字節(jié)占據(jù)的字節(jié)位置在多個存儲器分段內(nèi)的一個或多個對應分段內(nèi)存儲第一數(shù)據(jù)字的一個或多個數(shù)據(jù)字段字節(jié)。
9.如權(quán)利要求1所述的方法,其特征在于還包括步驟(e)從第一存儲器讀取包括多個數(shù)據(jù)字段字節(jié)的中間數(shù)據(jù)字;(f)將中間數(shù)據(jù)字轉(zhuǎn)移到第二存儲器;以及(g)在第二存儲器內(nèi)將中間數(shù)據(jù)字的數(shù)據(jù)字段字節(jié)相互相鄰存儲,且與第一數(shù)據(jù)字的一個或多個數(shù)據(jù)字段字節(jié)相鄰存儲。
10.如權(quán)利要求1所述的方法,其特征在于存儲在第一存儲器內(nèi)的多字節(jié)數(shù)據(jù)字的每個內(nèi)的每個字節(jié)占據(jù)數(shù)據(jù)字內(nèi)的預定字節(jié)位置。第二存儲器包括多個存儲器分段,各分段都對應于一個相應的字節(jié)位置;以及步驟(d)包括根據(jù)第一數(shù)據(jù)字和中間數(shù)據(jù)字中數(shù)據(jù)字段字節(jié)所占據(jù)的字節(jié)位置,把第一數(shù)據(jù)字的一個或多個數(shù)據(jù)字段字節(jié)和中間數(shù)據(jù)字的多個數(shù)據(jù)字段字節(jié)的每一個保存在多個存儲器分段中相應的一個分段中。
11.如權(quán)利要求1所述的方法,其特征在于還包括步驟(e)從第一存儲器內(nèi)讀出包括頭部字段字節(jié)和一個或多個數(shù)據(jù)字段字節(jié)的最后數(shù)據(jù)字;(f)將最后數(shù)據(jù)字的一個或多個數(shù)據(jù)字段字節(jié)轉(zhuǎn)移到第二存儲器;以及(g)將最后數(shù)據(jù)字的一個或多個數(shù)據(jù)字段字節(jié)存儲在第二存儲器內(nèi)與先前轉(zhuǎn)移并存儲的數(shù)據(jù)字段字節(jié)相鄰的位置。
12.如權(quán)利要求11所述的方法,其特征在于還包括步驟(h)確定在步驟(g)內(nèi)要存儲在第二存儲器內(nèi)的最后數(shù)據(jù)字的一個或多個數(shù)據(jù)字段字節(jié)的總數(shù),這是基于第一數(shù)據(jù)字的頭部字段字節(jié)和第二數(shù)據(jù)字的頭部字段字節(jié)間的總數(shù)據(jù)字段字節(jié)數(shù);以及第一存儲器內(nèi)在一個或多個數(shù)據(jù)字段字節(jié)的第一個和第一數(shù)據(jù)字的字地址間的字節(jié)偏移。
13.如權(quán)利要求1所述的方法,其特征在于還包括步驟(e)導出指明第二存儲器內(nèi)下一可用字節(jié)位置的地址指針;以及(f)導出寫入信號并將寫入信號施加到第二存儲器;其中所述的存儲步驟(d)包括響應于地址指針和寫入信號將一個或多個數(shù)據(jù)字段字節(jié)存儲在第二存儲器內(nèi)。
14.如權(quán)利要求1所述的方法,其特征在于所述的第二存儲器包括多個存儲分段,每個用于存儲多個數(shù)據(jù)字段字節(jié),所述方法還包括步驟(e)導出多個單獨的地址指針,每個指明在對應的一個存儲器分段中的下一可用字節(jié)位置;以及(f)導出多個單獨的寫入信號,并將每個單獨的寫入信號施加到一個存儲器分段上;其中所述的存儲步驟(d)包括根據(jù)多個單獨的地址指針和寫入信號將一個或多個數(shù)據(jù)字節(jié)存儲在一個或多個對應的多個存儲器分段中。
15.一種轉(zhuǎn)移數(shù)據(jù)字節(jié)的系統(tǒng),其特征在于包括(a)第一存儲器,用于存儲多個包括頭部字段字節(jié)和一個或多個數(shù)據(jù)字段字節(jié)的多字節(jié)數(shù)據(jù)字;(b)第二存儲器,用于存儲數(shù)據(jù)字段字節(jié);(c)控制器,耦合到第一和第二存儲器,適用于從第一存儲器讀取包括頭部字段字節(jié)和一個或多個數(shù)據(jù)字段字節(jié)的數(shù)據(jù)字;以及(d)數(shù)據(jù)打包機,它耦合到控制器和第二存儲器,所述的控制器和數(shù)據(jù)打包機一起用于將從第一存儲器讀取的第一數(shù)據(jù)字的一個或多個數(shù)據(jù)字段字節(jié)轉(zhuǎn)移到第二存儲器,數(shù)據(jù)打包機適用于只存儲在第二存儲器內(nèi)與先前轉(zhuǎn)移和存儲的數(shù)據(jù)字段字節(jié)相鄰的一個或多個數(shù)據(jù)字段字節(jié)。
16.如權(quán)利要求15所述的系統(tǒng),其特征在于所述控制器適用于使用多字節(jié)讀取數(shù)據(jù)轉(zhuǎn)移讀取第一數(shù)據(jù)字。
17.如權(quán)利要求15所述的系統(tǒng),其特征在于所述控制器用于使用多字節(jié)寫入數(shù)據(jù)轉(zhuǎn)移將第一數(shù)據(jù)字寫入數(shù)據(jù)打包機。
18.如權(quán)利要求17所述的系統(tǒng),其特征在于所述數(shù)據(jù)打包機包括數(shù)據(jù)組織器,適用于與控制器將第一數(shù)據(jù)字寫入字節(jié)打包機進發(fā)的方式將第一數(shù)據(jù)字內(nèi)的一個或多個數(shù)據(jù)字節(jié)重新排序。
19.如權(quán)利要求17所述的系統(tǒng),其特征在于所述的數(shù)據(jù)打包機包括數(shù)據(jù)組織器,用于在數(shù)據(jù)字內(nèi)對一個或多個數(shù)據(jù)字段字節(jié)進行重新排序,使得一個或多個數(shù)據(jù)字段字節(jié)的第一個與先前轉(zhuǎn)移的數(shù)據(jù)字段字節(jié)的存儲的數(shù)據(jù)字段字節(jié)相鄰存儲。
20.如權(quán)利要求19所述的系統(tǒng),其特征在于所述的控制器用于確定存儲在第一存儲器內(nèi)的第一數(shù)據(jù)字的碼字地址和第一數(shù)據(jù)字內(nèi)的一個或多個數(shù)據(jù)字節(jié)的第一個的字節(jié)地址間的字節(jié)偏移,所述控制器用于將字節(jié)偏移提供給數(shù)據(jù)打包機,所述數(shù)據(jù)打包機用于根據(jù)字節(jié)偏移對一個或多個數(shù)據(jù)字段字節(jié)進行重新排序。
21.如權(quán)利要求15所述的系統(tǒng),其特征在于所述的數(shù)據(jù)打包機包括數(shù)據(jù)打包機控制器,用于導出一地址指針,它指明在第二存儲器內(nèi)與先前的字節(jié)位置相鄰的下一可用字節(jié)位置,所述的數(shù)據(jù)打包機控制器用于根據(jù)地址指針在第二存儲器內(nèi)存儲一個或多個數(shù)據(jù)字段字節(jié)的第一個字節(jié)。
22.如權(quán)利要求15所述的系統(tǒng),其特征在于存儲在第一存儲器內(nèi)的多字節(jié)數(shù)據(jù)字的每個內(nèi)的每個字節(jié)占據(jù)數(shù)據(jù)字內(nèi)的預定字節(jié)位置;第二存儲器包括多個存儲器分段,每個對應一個相應的字節(jié)位置;以及數(shù)據(jù)打包機控制器,用于根據(jù)在第一數(shù)據(jù)字內(nèi)的一個或多個字節(jié)占據(jù)的字節(jié)位置將第一數(shù)據(jù)字的一個或多個數(shù)據(jù)字段字節(jié)存儲在一個或多個對應的多個存儲器分段內(nèi)。
23.如權(quán)利要求15所述的系統(tǒng),其特征在于控制器用于從第一存儲器內(nèi)讀出包括多個數(shù)據(jù)字段字節(jié)的中間數(shù)據(jù)字;控制器和數(shù)據(jù)打包機一起用于將中間數(shù)據(jù)字的多個數(shù)據(jù)字段字節(jié)轉(zhuǎn)移到第二存儲器;以及數(shù)據(jù)打包機,用于將中間數(shù)據(jù)字的多個數(shù)據(jù)字段字節(jié)相互間相鄰存儲,且在第二存儲器內(nèi)與先前轉(zhuǎn)移和存儲的數(shù)據(jù)字段字節(jié)相鄰存儲。
24.如權(quán)利要求23所述的系統(tǒng),其特征在于存儲在第一存儲器內(nèi)的多字節(jié)數(shù)據(jù)字的每個內(nèi)的每個字節(jié)占據(jù)數(shù)據(jù)字內(nèi)的預定字節(jié)位置;第二存儲器包括多個存儲器分段,每個對應一個相應的字節(jié)位置;以及數(shù)據(jù)打包機,用于根據(jù)在第一和中間數(shù)據(jù)字內(nèi)的數(shù)據(jù)字段字節(jié)占據(jù)的字節(jié)位置將第一數(shù)據(jù)字的一個或多個數(shù)據(jù)字段字節(jié)和中間數(shù)據(jù)字的多個數(shù)據(jù)字段字節(jié)的每個存儲在一個或多個對應的多個存儲器分段內(nèi)。
25.如權(quán)利要求15所述的系統(tǒng),其特征在于控制器用于從第一存儲器內(nèi)讀出包括一頭部字段字節(jié)和一個和多個數(shù)據(jù)字段字節(jié)的最后數(shù)據(jù)字;控制器和數(shù)據(jù)打包機一起用于將最后數(shù)據(jù)字的多個數(shù)據(jù)字段字節(jié)轉(zhuǎn)移到第二存儲器;以及控制器,用于將最后數(shù)據(jù)字的一個或多個數(shù)據(jù)字段字節(jié)相互間相鄰存儲,且在第二存儲器內(nèi)與先前轉(zhuǎn)移和存儲的數(shù)據(jù)字段字節(jié)相鄰存儲。
26.如權(quán)利要求25所述的系統(tǒng),其特征在于所述數(shù)據(jù)打包機控制器用于確定要被存儲在第二存儲器內(nèi)的最后數(shù)據(jù)字的一個或多個數(shù)據(jù)字段字節(jié)的總數(shù),這是根據(jù)第一數(shù)據(jù)字的頭部字段字節(jié)和第二數(shù)據(jù)字的頭部字段字節(jié)間的數(shù)據(jù)字段字節(jié)總數(shù);以及在第一存儲器內(nèi)一個或多個數(shù)據(jù)字段字節(jié)的第一個和第一數(shù)據(jù)字的字地址之間的字節(jié)偏移。
27.如權(quán)利要求15所述的系統(tǒng),其特征在于數(shù)據(jù)打包機包括數(shù)據(jù)分組控制器,用于導出地址指針,它指明在第二存儲器內(nèi)可以存儲數(shù)據(jù)字段字節(jié)的下一可用字節(jié)位置,數(shù)據(jù)打包機控制器用于導出寫入信號,其中,數(shù)據(jù)打包機用于使用地址指針和寫入信號在第二存儲器內(nèi)存儲一個或多個數(shù)據(jù)字段字節(jié)。
28.如權(quán)利要求15所述的系統(tǒng),其特征在于第二存儲器包括多個存儲分段,每個用于存儲多個數(shù)據(jù)字段字節(jié),數(shù)據(jù)打包機包括控制器,所述控制器用于導出多個單獨的地址指針,每個指明在對應的一個存儲器分段內(nèi)下一可用的字節(jié)位置;以及導出多個單獨的寫入信號,并將每個單獨的寫入信號施加到一個對應的存儲器分段上;其中數(shù)據(jù)打包機用于根據(jù)多個單獨的地址指針和寫入信號將一個或多個數(shù)據(jù)字節(jié)存儲在一個或多個對應的存儲器分段內(nèi)。
全文摘要
一種用于轉(zhuǎn)移數(shù)據(jù)字節(jié)的方法和系統(tǒng)包括第一存儲器,用于存儲多個包括頭部字段字節(jié)和一個或多個數(shù)據(jù)字段字節(jié)的多字節(jié)數(shù)據(jù)字。所述系統(tǒng)還包括第二存儲器,用于存儲從第一存儲器轉(zhuǎn)移到它的數(shù)據(jù)字段字節(jié)。耦合到第一和第二存儲器的控制器從第一存儲器讀取包括頭部字段字節(jié)和一個或多個數(shù)據(jù)字段字節(jié)的數(shù)據(jù)字。所述系統(tǒng)還包括耦合到控制器和第二存儲器的數(shù)據(jù)打包機??刂破骱蛿?shù)據(jù)打包機協(xié)同一起將從第一存儲器讀出的第一數(shù)據(jù)字發(fā)送到第二存儲器。數(shù)據(jù)打包機只存儲在第二存儲器內(nèi)的一個或多個數(shù)據(jù)字段字節(jié),這些字節(jié)與先前轉(zhuǎn)移并存儲的數(shù)據(jù)字段字節(jié)相鄰。
文檔編號G06F13/40GK1585935SQ02822292
公開日2005年2月23日 申請日期2002年9月10日 優(yōu)先權(quán)日2001年9月10日
發(fā)明者S·特納, S·金, J·林, K·泰勒 申請人:高通股份有限公司