專利名稱:數(shù)據(jù)處理方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明有關(guān)于一種數(shù)據(jù)處理方法及系統(tǒng),且特別有關(guān)于一 種除了隊(duì)列之外可以額外提供暫存器的數(shù)據(jù)處理方法及系統(tǒng)。
背景技術(shù):
在ARM相容的總線,如AHB (進(jìn)階高效能總線)的數(shù)據(jù)傳輸 中,DMA(存儲(chǔ)器直接存取)控制器可以利用 一個(gè)FIFO隊(duì)列在數(shù) 據(jù)來源端與目的地端來暫存數(shù)據(jù),如圖1所示。其中,F(xiàn)IFO隊(duì) 列120可以用來緩沖數(shù)據(jù)由數(shù)據(jù)來源110讀入與數(shù)據(jù)寫至目的地 址130時(shí)可能發(fā)生的不同步現(xiàn)象。在32位的AHB中提供了 8位、16位以及32位等三種傳輸尺 寸的數(shù)據(jù)傳輸。已知地,當(dāng)DMA開始進(jìn)行數(shù)據(jù)傳輸之前,必須 先組態(tài)設(shè)定傳輸尺寸的模式,且在每一種模式中間無法更改傳 輸尺寸。在一些情況中,如數(shù)據(jù)來源的起始地址不位于地址邊 界之上或是數(shù)據(jù)來源端與目的地端的數(shù)據(jù)分布地址(Data Pattern)不相同時(shí),已知DMA控制器必須在傳輸間重復(fù)組態(tài)設(shè)定 傳輸尺寸的模式,將使得效能大打折扣。圖2顯示一已知存儲(chǔ)器對(duì)存儲(chǔ)器的數(shù)據(jù)傳輸,其中,數(shù)據(jù)來 源端與目的地端的數(shù)據(jù)地址并沒有落于4字節(jié)的地址邊界之上。 數(shù)據(jù)來源端與目的地端的數(shù)據(jù)分布地址相同。首先,D M A控制器組態(tài)設(shè)定傳輸尺寸的模式為8位模式, 以由數(shù)據(jù)來源端讀取數(shù)據(jù)區(qū)塊l,并將數(shù)據(jù)區(qū)塊l儲(chǔ)存至目的地 端。之后,由于數(shù)據(jù)區(qū)塊2 13落于4字節(jié)的地址邊界之上,DMA 控制器重新組態(tài)設(shè)定傳輸尺寸的模式為32位模式,以由數(shù)據(jù)來 源端分別讀取數(shù)據(jù)區(qū)塊2 5、 6~9與10~13,并將數(shù)據(jù)區(qū)塊2-5、 6 9與10~13儲(chǔ)存至目的地端。之后,DMA控制器重新組態(tài)設(shè) 定傳輸尺寸的模式為16位模式,以由數(shù)據(jù)來源端讀取數(shù)據(jù)區(qū)塊 14與15,并將數(shù)據(jù)區(qū)塊14與15儲(chǔ)存至目的地端。最后,DMA 控制器重新組態(tài)設(shè)定傳輸尺寸的模式為8位模式,以由數(shù)據(jù)來 源端讀取數(shù)據(jù)區(qū)塊16,并將數(shù)據(jù)區(qū)塊16儲(chǔ)存至目的地端,以完 成整個(gè)數(shù)據(jù)傳輸操作。如前所述,DMA控制器必須在傳輸間重 復(fù)組態(tài)設(shè)定傳輸尺寸的模式,使得效能大打折扣。發(fā)明內(nèi)容有鑒于此,本發(fā)明提供數(shù)據(jù)處理方法及系統(tǒng)。本發(fā)明實(shí)施例的數(shù)據(jù)處理方法,適用于一數(shù)據(jù)處理系統(tǒng)。首先,由一數(shù)據(jù)來源接收一第一數(shù)據(jù)。依據(jù)一第一指針指向一第 一 暫存器中的位置將第 一數(shù)據(jù)進(jìn)行旋轉(zhuǎn)移位。判斷第 一數(shù)據(jù) 與第一暫存器中的一第二數(shù)據(jù)的總尺寸是否大于或等于第一暫存器的尺寸。若否,將第一數(shù)據(jù)儲(chǔ)存至第一暫存器,且更新第 一指針指向至第一暫存器中的第一數(shù)據(jù)之后。若是,將第一暫 存器中的第二數(shù)據(jù)取出,依據(jù)第一指針的位置將第二數(shù)據(jù)與第 一數(shù)據(jù)中相應(yīng)由第一指針的位置開始的一第一部分?jǐn)?shù)據(jù)進(jìn)行結(jié) 合成為具有第一暫存器尺寸的一第三數(shù)據(jù),且將第三數(shù)據(jù)儲(chǔ)存 至一隊(duì)列中。將第一數(shù)據(jù)中剩余的一第二部分?jǐn)?shù)據(jù)儲(chǔ)存至第一 暫存器,且更新第一指針指向至該第一暫存器中的第二部分?jǐn)?shù) 據(jù)之后。本發(fā)明實(shí)施例的數(shù)據(jù)處理系統(tǒng)包括一第一暫存器、 一第一 旋轉(zhuǎn)移位單元、 一第一數(shù)據(jù)結(jié)合單元、 一隊(duì)列與一處理模塊。 第一暫存器具有一第一指針指向第一暫存器中的一位置。第一 旋轉(zhuǎn)移位單元由一數(shù)據(jù)來源接收一第一數(shù)據(jù),且依據(jù)第一指針 指向第一暫存器中的位置將第一數(shù)據(jù)進(jìn)行旋轉(zhuǎn)移位。當(dāng)?shù)谝粩?shù)
據(jù)與第一暫存器中的一第二數(shù)據(jù)的總尺寸并未大于或等于第一 暫存器的尺寸時(shí),處理模塊將第一數(shù)據(jù)儲(chǔ)存至第一暫存器,且 將第一指針更新指向至第一暫存器中的第一數(shù)據(jù)之后。當(dāng)?shù)谝?數(shù)據(jù)與第一暫存器中的第二數(shù)據(jù)的總尺寸大于或等于第一暫存 器的尺寸時(shí),處理模塊將第一暫存器中的第二數(shù)據(jù)取出,透過 第 一數(shù)據(jù)結(jié)合單元依據(jù)第 一 指針的位置將第二數(shù)據(jù)與第 一數(shù)據(jù) 中相應(yīng)由第一指針的位置開始的一第一部分?jǐn)?shù)據(jù)進(jìn)行結(jié)合成為 具有第一暫存器尺寸的一第三數(shù)據(jù),且將第三數(shù)據(jù)儲(chǔ)存至隊(duì)列 中。處理模塊將第一數(shù)據(jù)中剩余的一第二部分?jǐn)?shù)據(jù)儲(chǔ)存至第一 暫存器,并將第 一指針更新指向至第 一 暫存器中的第二部分?jǐn)?shù) 據(jù)之后。本發(fā)明上述方法可以透過程序碼方式收錄于實(shí)體介質(zhì)中。 當(dāng)程序碼被機(jī)器載入且執(zhí)行時(shí),機(jī)器變成用以實(shí)行本發(fā)明的裝置。本發(fā)明所述的數(shù)據(jù)處理方法及系統(tǒng),數(shù)據(jù)傳輸間無須重復(fù) 組態(tài)設(shè)定傳輸尺寸的模式,進(jìn)而提升效能。
圖l為一示意圖顯示已知數(shù)據(jù)傳輸架構(gòu)。圖2為一示意圖顯示已知存儲(chǔ)器對(duì)存儲(chǔ)器的數(shù)據(jù)傳輸。 圖3為 一 示意圖顯示依據(jù)本發(fā)明實(shí)施例的數(shù)據(jù)處理系統(tǒng)。 圖4為 一 流程圖顯示依據(jù)本發(fā)明實(shí)施例的數(shù)據(jù)處理方法。 圖5為 一 示意圖顯示依據(jù)本發(fā)明實(shí)施例的數(shù)據(jù)處理系統(tǒng)。 圖6為 一 流程圖顯示依據(jù)本發(fā)明實(shí)施例的數(shù)據(jù)處理方法。 圖7顯示依據(jù)本發(fā)明實(shí)施例的數(shù)據(jù)處理例子。 圖8顯示依據(jù)本發(fā)明實(shí)施例的數(shù)據(jù)處理例子。 圖9為一示意圖顯示結(jié)合圖3與圖5的依據(jù)本發(fā)明實(shí)施例的
數(shù)據(jù)處理系統(tǒng)。
具體實(shí)施方式
為使本發(fā)明的上述目的、特征和優(yōu)點(diǎn)能更明顯易懂,下文特舉實(shí)施例,并配合所附圖示,詳細(xì)i兌明如下。圖3顯示依據(jù)本發(fā)明實(shí)施例的數(shù)據(jù)處理系統(tǒng)。依據(jù)本發(fā)明實(shí) 施例的數(shù)據(jù)處理系統(tǒng)可以適用于以AHB架構(gòu)的系統(tǒng)中的DMA控制器。依據(jù)本發(fā)明實(shí)施例的數(shù)據(jù)處理系統(tǒng)300包括一第 一旋轉(zhuǎn)移 位單元310、 一第一暫存器320、 一第一數(shù)據(jù)結(jié)合單元330、 一 FIFO隊(duì)列340與 一處理模塊350。 一第 一指針(未顯示)指向第一 暫存器320中的一位置。第一旋轉(zhuǎn)移位單元310由一數(shù)據(jù)來源接 收數(shù)據(jù),且可以依據(jù)第 一 指針指向第 一 暫存器3 2 0中的位置將數(shù) 據(jù)進(jìn)行旋轉(zhuǎn)移位。第 一 數(shù)據(jù)結(jié)合單元3 3 0可以依據(jù)第 一 指針的位 置將接收數(shù)據(jù)的 一 部分或是全部與第 一 暫存器320中的數(shù)據(jù)進(jìn) 行結(jié)合,并將結(jié)合得到的數(shù)據(jù)輸出至隊(duì)列340。處理模塊350用 以執(zhí)行本發(fā)明的數(shù)據(jù)處理方法,細(xì)節(jié)將于后說明。 圖4顯示依據(jù)本發(fā)明實(shí)施例的數(shù)據(jù)處理方法。 如步驟S410,由數(shù)據(jù)來源接收數(shù)據(jù)。值得注意的是,數(shù)據(jù) 的起始地址可以指定來由數(shù)據(jù)來源讀取數(shù)據(jù)。另外,在一些實(shí) 施例中,當(dāng)數(shù)據(jù)的起始地址并非落于地址邊界之上,部分多余 的數(shù)據(jù)則須進(jìn)行過濾。如步驟S420,透過第一旋轉(zhuǎn)移位單元依 據(jù)第 一指針指向第 一 暫存器中的位置將接收的數(shù)據(jù)進(jìn)行旋轉(zhuǎn)移 位。舉例來說,假設(shè)第一暫存器的尺寸為4字節(jié),且第一指針指 向第二個(gè)字節(jié)時(shí),則接收的數(shù)據(jù)的開始地址必須旋轉(zhuǎn)移位至第 一指針?biāo)赶虻牡诙€(gè)字節(jié)。接著,如步驟S430,判斷接收的 數(shù)據(jù)與第一暫存器中的數(shù)據(jù)的尺寸總和是否大于或等于第一暫存器的尺寸。若否(步驟S430的否),如步驟S440,將接收的數(shù) 據(jù)儲(chǔ)存至第一暫存器,且更新第一指針指向至第一暫存器中相 應(yīng)此接收的數(shù)據(jù)之后。若是(步驟S430的是),如步驟S450,將 第一暫存器中的數(shù)據(jù)取出,并如步驟S460,透過第一數(shù)據(jù)結(jié)合 單元依據(jù)第一指針的位置將第一暫存器所取出的數(shù)據(jù)與接收的 數(shù)據(jù)的 一 部分或是全部進(jìn)行結(jié)合,并將結(jié)合得到的數(shù)據(jù)儲(chǔ)存至 隊(duì)列中。值得注意的是,接收的數(shù)據(jù)的一部分是指相應(yīng)由第一 指針的位置開始的部分?jǐn)?shù)據(jù)。另外,結(jié)合得到的數(shù)據(jù)的尺寸等 于第一暫存器的尺寸。如步驟S470,將接收的數(shù)據(jù)中并未進(jìn)行 結(jié)合的剩余部分?jǐn)?shù)據(jù)儲(chǔ)存至第 一 暫存器,且更新第 一 指針指向 至第一暫存器中相應(yīng)此剩余部分?jǐn)?shù)據(jù)之后。之后,如步驟S480, 判斷數(shù)據(jù)來源的數(shù)據(jù)是否都已接收完畢。若尚未接收完畢(步驟 S480的否),流程回到步驟S410。若已經(jīng)接收完畢(步驟S480的 是),結(jié)束流程。舉一 例子進(jìn)行說明。圖7顯示依據(jù)本發(fā)明實(shí)施例的數(shù)據(jù)處理 例子。其中,第一暫存器的尺寸為4字節(jié)。 一開始第一暫存器中 沒有數(shù)據(jù),且第一指針Ptr—l指向第一暫存器中的第一個(gè)位置。 首先,由數(shù)據(jù)來源接收數(shù)據(jù)區(qū)塊l,并將數(shù)據(jù)區(qū)塊l旋轉(zhuǎn)移位至 第 一 指針P t r — 1的位置。由于由數(shù)據(jù)來源接收的數(shù)據(jù)與第 一 暫存 器中的數(shù)據(jù)(一 開始并沒有數(shù)據(jù))并未大于或等于第 一 暫存器的 尺寸。因此,數(shù)據(jù)區(qū)塊l儲(chǔ)存至第一暫存器中,且更新第一指針 Ptr—l指向第 一 暫存器中數(shù)據(jù)區(qū)塊l后的位置。由于數(shù)據(jù)區(qū)塊2 5 落于4字節(jié)的地址邊界之上,因此,由數(shù)據(jù)來源接收數(shù)據(jù)區(qū)塊 2 5 ,且將數(shù)據(jù)區(qū)塊2 5依據(jù)第 一 指針P t r — 1的位置進(jìn)行旋轉(zhuǎn)移 位。由于由數(shù)據(jù)來源接收的數(shù)據(jù)與第 一 暫存器中的數(shù)據(jù)的總尺 寸大于第一暫存器的尺寸(4+1〉4),因此數(shù)據(jù)區(qū)塊2 4被選定來 與原先在第一暫存器中的數(shù)據(jù)區(qū)塊l進(jìn)行結(jié)合,并儲(chǔ)存至隊(duì)列
中。未被選取的數(shù)據(jù)區(qū)塊5則儲(chǔ)存至第一暫存器中,且更新第一指針Ptr一l指向第一暫存器中數(shù)據(jù)區(qū)塊5后的位置。之后,由數(shù) 據(jù)來源接收數(shù)據(jù)區(qū)塊6 7,且將數(shù)據(jù)區(qū)塊6 7依據(jù)第 一 指針Ptr一 1 的位置進(jìn)行旋轉(zhuǎn)移位。由于由數(shù)據(jù)來源接收的數(shù)據(jù)與第一暫存 器中的數(shù)據(jù)的總尺寸小于第一暫存器的尺寸(2+1<4),因此數(shù)據(jù) 區(qū)塊6 7直接儲(chǔ)存至第一'暫存器中,且更新第一指針Ptr—l指向 第一暫存器中數(shù)據(jù)區(qū)塊7后的位置。最后,由數(shù)據(jù)來源接收數(shù)據(jù) 區(qū)塊8 ,且將數(shù)據(jù)區(qū)塊8依據(jù)第 一 指針Ptr—1的位置進(jìn)行旋轉(zhuǎn)移 位。由于由數(shù)據(jù)來源接收的數(shù)據(jù)與第 一 暫存器中的數(shù)據(jù)的總尺 寸等于第一暫存器的尺寸(1+3=4),因此數(shù)據(jù)區(qū)塊8被選定來與 原先在第一暫存器中的數(shù)據(jù)區(qū)塊5 7進(jìn)行結(jié)合,并儲(chǔ)存至隊(duì)列 中,以完成作業(yè)。圖5顯示依據(jù)本發(fā)明實(shí)施例的數(shù)據(jù)處理系統(tǒng)。類似地,依據(jù) 本發(fā)明實(shí)施例的數(shù)據(jù)處理系統(tǒng)可以適用于以AHB架構(gòu)的系統(tǒng) 中的DMA控制器。依據(jù)本發(fā)明實(shí)施例的數(shù)據(jù)處理系統(tǒng)500包括一 FIFO隊(duì)列 510、第二暫存器520、第二數(shù)據(jù)結(jié)合單元530、第二旋轉(zhuǎn)移位單 元540與一處理模塊550。 一第二指針(未顯示)指向第二暫存器 520中的一位置。第二數(shù)據(jù)結(jié)合單元530可以依據(jù)第二指針的位 置將由隊(duì)列510接收的數(shù)據(jù)的一部分或是全部與第二暫存器520 中的數(shù)據(jù)進(jìn)行結(jié)合,并將結(jié)合得到的數(shù)據(jù)輸出至第二旋轉(zhuǎn)移位 單元540。第二旋轉(zhuǎn)移位單元540可以依據(jù)目的地址將數(shù)據(jù)進(jìn)行 旋轉(zhuǎn)移位,并將旋轉(zhuǎn)移位后的數(shù)據(jù)寫至目的地址。處理模塊550 用以執(zhí)行本發(fā)明的數(shù)據(jù)處理方法,細(xì)節(jié)將于后說明。圖6顯示依據(jù)本發(fā)明實(shí)施例的數(shù)據(jù)處理方法。 如步驟S610,由隊(duì)列510取出數(shù)據(jù)。其中, 一次由隊(duì)列510 取出數(shù)據(jù)的大小等于第二暫存器520的尺寸。如步驟S620,依 據(jù)數(shù)據(jù)欲寫入的目的地址決定一存取尺寸。之后,如步驟S630, 由隊(duì)列510所取出的數(shù)據(jù)中選擇部分或是全部的數(shù)據(jù),并如步驟 S640,透過第二數(shù)據(jù)結(jié)合單元530依據(jù)第二指針的位置將第二 暫存器520中的數(shù)據(jù)與前述選定的部分或是全部數(shù)據(jù)進(jìn)行結(jié)合, 其中結(jié)合得到的數(shù)據(jù)的尺寸等于存取尺寸。如步驟S650,透過 第二旋轉(zhuǎn)移位單元540依據(jù)目的地址將結(jié)合得到的數(shù)據(jù)進(jìn)行旋 轉(zhuǎn)移位,且將旋轉(zhuǎn)移位后的數(shù)據(jù)寫至目的地址。之后,如步驟 S660,將由隊(duì)列510所取出的數(shù)據(jù)中并未選取的剩余部分?jǐn)?shù)據(jù) 儲(chǔ)存至第二暫存器520,并更新第二指針指向至第二暫存器520 中相應(yīng)此剩余部分?jǐn)?shù)據(jù)之后。值得注意的是,在一些實(shí)施例中, 可以判斷由隊(duì)列510取出的數(shù)據(jù)與第二暫存器5 2 0中數(shù)據(jù)的總尺 寸是否大于或等于存取尺寸。若是,則由隊(duì)列510所取出的數(shù)據(jù) 中選擇部分或是全部數(shù)據(jù),且將第二暫存器520中的數(shù)據(jù)與選定 的部分或是全部數(shù)據(jù)進(jìn)行結(jié)合。之后,再將結(jié)合得到的數(shù)據(jù)進(jìn) 行旋轉(zhuǎn)移位,并寫至目的地址。若由隊(duì)列510取出的數(shù)據(jù)與第二 暫存器520中數(shù)據(jù)的總尺寸并未大于或等于存取尺寸,則由隊(duì)列 510取出的數(shù)據(jù)將會(huì)直接儲(chǔ)存至第二暫存器520中。另外,若第 二暫存器5 2 0中并未存在數(shù)據(jù),則可以直接判斷由隊(duì)列510取出 的數(shù)據(jù)的尺寸是否大于或等于存取尺寸。若是,則直接由隊(duì)列 510所取出的數(shù)據(jù)中選擇部分或是全部數(shù)據(jù),再將選定的部分或 是全部數(shù)據(jù)進(jìn)行旋轉(zhuǎn)移位,并寫至目的地址。之后,如步驟 S670,判斷隊(duì)列中的數(shù)據(jù)是否都已取出。若否(步驟S670的否), 流程回到步驟S610。若是(步驟S670的是),結(jié)束流程。舉一例子進(jìn)行說明。圖8顯示依據(jù)本發(fā)明實(shí)施例的數(shù)據(jù)處理 例子。其中,第二暫存器的尺寸為4字節(jié)。 一開始第二暫存器中 沒有數(shù)據(jù),且第二指針Ptr—2指向第二暫存器中的第一個(gè)位置。 首先,由數(shù)據(jù)來源接收數(shù)據(jù)區(qū)塊1 4。由于由隊(duì)列取得的數(shù)據(jù) 大于由目的地址所決定的存取尺寸(4〉2),因此,由數(shù)據(jù)區(qū)塊1 4 中選擇數(shù)據(jù)區(qū)塊1 2,且依據(jù)目的地址進(jìn)行旋轉(zhuǎn)移位,并將旋 轉(zhuǎn)移位后的數(shù)據(jù)區(qū)塊1 2寫至目的地址。未選取的數(shù)據(jù)區(qū)塊3 4 則儲(chǔ)存至第二暫存器中,且更新第二指針Ptr一2指向第二暫存器 中數(shù)據(jù)區(qū)塊4后的位置。接著,由數(shù)據(jù)來源接收數(shù)據(jù)區(qū)塊5 8。 由于由隊(duì)列取得的數(shù)據(jù)與第二暫存器中數(shù)據(jù)的總尺寸大于由目 的地址所決定的存取尺寸(4+2〉4),因此,由數(shù)據(jù)區(qū)塊5 8中選 擇數(shù)據(jù)區(qū)塊5 6。依據(jù)第二指針Ptr一2的位置將第二暫存器中的 數(shù)據(jù)區(qū)塊3 4與數(shù)據(jù)區(qū)塊5 6結(jié)合,且依據(jù)目的地址進(jìn)行旋轉(zhuǎn)移 位,并將旋轉(zhuǎn)移位后的數(shù)據(jù)區(qū)塊3 6寫至目的地址。未選取的 數(shù)據(jù)區(qū)塊7 8則儲(chǔ)存至第二暫存器中,且更新第二指針Ptr一2指 向第二暫存器中數(shù)據(jù)區(qū)塊8后的位置。最后,由于隊(duì)列數(shù)據(jù)都已 經(jīng)取出,直接依據(jù)目的地址將第二暫存器中的數(shù)據(jù)區(qū)塊7 8進(jìn) 行旋轉(zhuǎn)移位,并寫至目的地址,以完成作業(yè)。值得注意的是,在一些實(shí)施例中,由數(shù)據(jù)來源接收數(shù)據(jù)再 儲(chǔ)存至隊(duì)列以及由隊(duì)列取出數(shù)據(jù)再寫至目的地址可以進(jìn)行結(jié)合 為完整的數(shù)據(jù)傳輸作業(yè)。其架構(gòu)圖如圖9所示。在本發(fā)明中,數(shù)據(jù)來源的數(shù)據(jù)可以透過暫存器的使用,先 進(jìn)行結(jié)合(對(duì)齊),再儲(chǔ)存至隊(duì)列中。另外,寫至目的地址的數(shù) 據(jù)亦可以透過暫存器的使用,先由隊(duì)列中取出對(duì)齊的數(shù)據(jù),如 32位數(shù)據(jù),再將需求的數(shù)據(jù)寫入目的地址而不需的數(shù)據(jù)儲(chǔ)存至 暫存器中。透過本發(fā)明的數(shù)據(jù)處理方法及系統(tǒng),數(shù)據(jù)傳輸間無 須重復(fù)組態(tài)設(shè)定傳輸尺寸的模式,進(jìn)而提升效能。本發(fā)明的方法,或特定型態(tài)或其部分,可以以程序碼的型 態(tài)包含于實(shí)體介質(zhì),如軟盤、光盤片、硬盤、或是任何其他機(jī) 器可讀取(如計(jì)算機(jī)可讀取)儲(chǔ)存介質(zhì),其中,當(dāng)程序碼被機(jī)器, 如計(jì)算機(jī)載入且執(zhí)行時(shí),此機(jī)器變成用以參與本發(fā)明的裝置。
本發(fā)明的方法與裝置也可以以程序碼型態(tài)透過一些傳送介質(zhì), 如電線或電纜、光纖、或是任何傳輸型態(tài)進(jìn)行傳送,其中,當(dāng) 程序碼被機(jī)器,如計(jì)算機(jī)接收、載入且執(zhí)行時(shí),此機(jī)器變成用 以參與本發(fā)明的裝置。當(dāng)在一般用途處理器實(shí)作時(shí),程序碼結(jié) 合處理器提供 一 操作類似于專用邏輯電路的獨(dú)特裝置。以上所述僅為本發(fā)明較佳實(shí)施例,然其并非用以限定本發(fā) 明的范圍,任何熟悉本項(xiàng)技術(shù)的人員,在不脫離本發(fā)明的精神 和范圍內(nèi),可在此基礎(chǔ)上做進(jìn)一步的改進(jìn)和變化,因此本發(fā)明 的保護(hù)范圍當(dāng)以本申請(qǐng)的權(quán)利要求書所界定的范圍為準(zhǔn)。附圖中符號(hào)的簡(jiǎn)單說明如下110:數(shù)據(jù)來源120: FIFO隊(duì)列130:目的i也址300:數(shù)據(jù)處理系統(tǒng)310:第一旋轉(zhuǎn)移位單元320:第一暫存器330:第一數(shù)據(jù)結(jié)合單元340: 隊(duì)列350:處理模塊S410、 S420..... S480:步驟500: ^:據(jù)處理系統(tǒng)510:隊(duì)列520:第二暫存器530:第二數(shù)據(jù)結(jié)合單元540:第二旋轉(zhuǎn)移位單元550:處理模塊S610、 S620..... S670:步驟Ptr—1:第一指針 Ptr—2:第二指針。
權(quán)利要求
1.一種數(shù)據(jù)處理方法,適用于一數(shù)據(jù)處理系統(tǒng),其特征在于,包括下列步驟由一數(shù)據(jù)來源接收一第一數(shù)據(jù);依據(jù)一第一指針指向一第一暫存器中的位置將該第一數(shù)據(jù)進(jìn)行旋轉(zhuǎn)移位;判斷該第一數(shù)據(jù)與該第一暫存器中的一第二數(shù)據(jù)的總尺寸是否大于或等于該第一暫存器的尺寸;若否,將該第一數(shù)據(jù)儲(chǔ)存至該第一暫存器,且更新該第一指針指向至該第一暫存器中的該第一數(shù)據(jù)之后;以及若是,將該第一暫存器中的該第二數(shù)據(jù)取出,依據(jù)該第一指針的位置將該第二數(shù)據(jù)與該第一數(shù)據(jù)中相應(yīng)由該第一指針的位置開始的一第一部分?jǐn)?shù)據(jù)進(jìn)行結(jié)合成為具有該第一暫存器尺寸的一第三數(shù)據(jù),且將該第三數(shù)據(jù)儲(chǔ)存至一隊(duì)列中,并將該第一數(shù)據(jù)中剩余的一第二部分?jǐn)?shù)據(jù)儲(chǔ)存至該第一暫存器,且更新該第一指針指向至該第一暫存器中的該第二部分?jǐn)?shù)據(jù)之后。
2. 根據(jù)權(quán)利要求l所述的數(shù)據(jù)處理方法,其特征在于,更 包括下列步驟由該隊(duì)列取出具有 一 第二暫存器的尺寸的 一 第四數(shù)據(jù); 依據(jù)一 目的地址決定一存取尺寸; 由該第四數(shù)據(jù)中選擇一第三部分?jǐn)?shù)據(jù); 將該第二暫存器中的 一 第五數(shù)據(jù)與該第三部分?jǐn)?shù)據(jù)進(jìn)行結(jié) 合,從而得到一第六數(shù)據(jù),其中該第六數(shù)據(jù)的尺寸等于該存取尺寸;依據(jù)該目的地址將該第六數(shù)據(jù)進(jìn)行旋轉(zhuǎn)移位,且將該第六 數(shù)據(jù)寫至該目的地址;以及將該第四數(shù)據(jù)中剩余的 一 第四部分?jǐn)?shù)據(jù)儲(chǔ)存至該第二暫存 器,且更新一第二指針指向至該第二暫存器中的該第四部分?jǐn)?shù) 據(jù)之后。
3. 根據(jù)權(quán)利要求l所述的數(shù)據(jù)處理方法,其特征在于,該第 一 暫存器的尺寸為4字節(jié),且由該數(shù)據(jù)來源接收的該第 一 數(shù)據(jù) 的尺寸小于或等于4字節(jié)。
4. 根據(jù)權(quán)利要求2所述的數(shù)據(jù)處理方法,其特征在于,該 第二暫存器的尺寸為4字節(jié),且該存取尺寸小于或等于4字節(jié)。
5. 根據(jù)權(quán)利要求l所述的數(shù)據(jù)處理方法,其特征在于,更 包括當(dāng)該第一指針指向該第一暫存器的尾端時(shí),該第一指針將 重新指向該第一暫存器的頭端。
6. 根據(jù)權(quán)利要求2所述的數(shù)據(jù)處理方法,其特征在于,更 包括當(dāng)該第,二指針指向該第二暫存器的尾端時(shí),該第二指針將 重新指向該第二暫存器的頭端。
7. —種數(shù)據(jù)處理系統(tǒng),其特征在于,包括 一第一暫存器,具有一第一指針指向該第一暫存器中的一位置;一第一旋轉(zhuǎn)移位單元,用以由一數(shù)據(jù)來源接收一第一數(shù)據(jù), 且依據(jù)該第一指針指向該第一暫存器中的位置將該第一數(shù)據(jù)進(jìn) 行旋轉(zhuǎn)移位;一第一數(shù)據(jù)結(jié)合單元;一隊(duì)列;以及一處理模塊,用以當(dāng)該第一數(shù)據(jù)與該第一暫存器中的一第 二數(shù)據(jù)的總尺寸并未大于或等于該第 一 暫存器的尺寸時(shí),將該 第一數(shù)據(jù)儲(chǔ)存至該第一暫存器,且將該第一指針更新指向至該 第 一暫存器中的該第 一數(shù)據(jù)之后,當(dāng)該第 一數(shù)據(jù)與該第 一暫存 器中的該第二數(shù)據(jù)的總尺寸大于或等于該第 一 暫存器的尺寸時(shí),將該第一暫存器中的該第二數(shù)據(jù)取出,透過該第一數(shù)據(jù)結(jié) 合單元依據(jù)該第 一指針的位置將該第二數(shù)據(jù)與該第 一數(shù)據(jù)中相 應(yīng)由該第一指針的位置開始的一第一部分?jǐn)?shù)據(jù)進(jìn)行結(jié)合成為具 有該第 一 暫存器尺寸的 一 第三數(shù)據(jù),且將該第三數(shù)據(jù)儲(chǔ)存至該 隊(duì)列中,且將該第一數(shù)據(jù)中剩余的一第二部分?jǐn)?shù)據(jù)儲(chǔ)存至該第 一暫存器,并將該第一指針更新指向至該第一暫存器中的該第 二部分?jǐn)?shù)據(jù)之后。
8. 根據(jù)權(quán)利要求7所述的數(shù)據(jù)處理系統(tǒng),其特征在于,更 包括一第二暫存器,具有一第二指針指向該第二暫存器中的一 位置;一第二數(shù)據(jù)結(jié)合單元;以及 一第二旋轉(zhuǎn)移位單元,其中,該處理模塊更由該隊(duì)列取出具有該第二暫存器的尺 寸的一第四數(shù)據(jù),依據(jù)一目的地址決定一存取尺寸,由該第四數(shù)據(jù)中選擇 一 第三部分?jǐn)?shù)據(jù),透過該第二數(shù)據(jù)結(jié)合單元將該第 二暫存器中的一第五數(shù)據(jù)與該第三部分?jǐn)?shù)據(jù)進(jìn)行結(jié)合,從而得 到一第六數(shù)據(jù),其中該第六數(shù)據(jù)的尺寸等于該存取尺寸,透過 該第二旋轉(zhuǎn)移位單元依據(jù)該目的地址將該第六數(shù)據(jù)進(jìn)行旋轉(zhuǎn)移 位,且將該第六數(shù)據(jù)寫至該目的地址,且將該第四數(shù)據(jù)中剩余 的一第四部分?jǐn)?shù)據(jù)儲(chǔ)存至該第二暫存器,并更新一第二指針指向至該第二暫存器中的該第四部分?jǐn)?shù)據(jù)之后。
9. 根據(jù)權(quán)利要求7所述的數(shù)據(jù)處理系統(tǒng),其特征在于,該 第一暫存器的尺寸為4字節(jié),且由該數(shù)據(jù)來源接收的該第一數(shù)據(jù) 的尺寸小于或等于4字節(jié)。
10. 根據(jù)權(quán)利要求8所述的數(shù)據(jù)處理系統(tǒng),其特征在于,該 第二暫存器的尺寸為4字節(jié),且該存取尺寸小于或等于4字節(jié)。
11. 根據(jù)權(quán)利要求7所述的數(shù)據(jù)處理系統(tǒng),其特征在于,當(dāng) 該第一指針指向該第一暫存器的尾端時(shí),該第一指針將重新指 向該第一暫存器的頭端。
12.根據(jù)權(quán)利要求8所述的數(shù)據(jù)處理系統(tǒng),其特征在于, 第二指針指向該第二暫存器的尾端時(shí),該第二指針將重新指 該第二暫存器的頭端。
全文摘要
一種數(shù)據(jù)處理方法及系統(tǒng),該數(shù)據(jù)處理方法適用于一數(shù)據(jù)處理系統(tǒng)。首先,由一數(shù)據(jù)來源接收第一數(shù)據(jù)。依據(jù)第一指針指向第一暫存器中的位置將第一數(shù)據(jù)進(jìn)行旋轉(zhuǎn)移位。判斷第一數(shù)據(jù)與第一暫存器中的第二數(shù)據(jù)的總尺寸是否大于或等于第一暫存器的尺寸。若否,將第一數(shù)據(jù)儲(chǔ)存至第一暫存器,且更新第一指針指向至第一暫存器中的第一數(shù)據(jù)之后。若是,將第一暫存器中的第二數(shù)據(jù)取出,依據(jù)第一指針的位置將第二數(shù)據(jù)與第一數(shù)據(jù)中相應(yīng)由第一指針的位置開始的第一部分?jǐn)?shù)據(jù)進(jìn)行結(jié)合成為具有第一暫存器尺寸的第三數(shù)據(jù),且將第三數(shù)據(jù)儲(chǔ)存至隊(duì)列中。將第一數(shù)據(jù)中剩余的第二部分?jǐn)?shù)據(jù)儲(chǔ)存至第一暫存器,且更新第一指針指向至該第一暫存器中的第二部分?jǐn)?shù)據(jù)之后。
文檔編號(hào)G06F13/28GK101149715SQ200710166030
公開日2008年3月26日 申請(qǐng)日期2007年10月30日 優(yōu)先權(quán)日2007年10月30日
發(fā)明者李德建, 楊存永, 鵬 高 申請(qǐng)人:威盛電子股份有限公司