数据处理方法及系统的制作方法

文档序号:6613054阅读:135来源:国知局
专利名称:数据处理方法及系统的制作方法
技术领域
本发明有关于一种数据处理方法及系统,且特别有关于一 种除了队列之外可以额外提供暂存器的数据处理方法及系统。
背景技术
在ARM相容的总线,如AHB (进阶高效能总线)的数据传输 中,DMA(存储器直接存取)控制器可以利用 一个FIFO队列在数 据来源端与目的地端来暂存数据,如图1所示。其中,FIFO队 列120可以用来緩冲数据由数据来源110读入与数据写至目的地 址130时可能发生的不同步现象。在32位的AHB中提供了 8位、16位以及32位等三种传输尺 寸的数据传输。已知地,当DMA开始进行数据传输之前,必须 先组态设定传输尺寸的模式,且在每一种模式中间无法更改传 输尺寸。在一些情况中,如数据来源的起始地址不位于地址边 界之上或是数据来源端与目的地端的数据分布地址(Data Pattern)不相同时,已知DMA控制器必须在传输间重复组态设定 传输尺寸的模式,将使得效能大打折扣。图2显示一已知存储器对存储器的数据传输,其中,数据来 源端与目的地端的数据地址并没有落于4字节的地址边界之上。 数据来源端与目的地端的数据分布地址相同。首先,D M A控制器组态设定传输尺寸的模式为8位模式, 以由数据来源端读取数据区块l,并将数据区块l储存至目的地 端。之后,由于数据区块2 13落于4字节的地址边界之上,DMA 控制器重新组态设定传输尺寸的模式为32位模式,以由数据来 源端分别读取数据区块2 5、 6~9与10~13,并将数据区块2-5、 6 9与10~13储存至目的地端。之后,DMA控制器重新组态设 定传输尺寸的模式为16位模式,以由数据来源端读取数据区块 14与15,并将数据区块14与15储存至目的地端。最后,DMA 控制器重新组态设定传输尺寸的模式为8位模式,以由数据来 源端读取数据区块16,并将数据区块16储存至目的地端,以完 成整个数据传输操作。如前所述,DMA控制器必须在传输间重 复组态设定传输尺寸的模式,使得效能大打折扣。发明内容有鉴于此,本发明提供数据处理方法及系统。本发明实施例的数据处理方法,适用于一数据处理系统。首先,由一数据来源接收一第一数据。依据一第一指针指向一第 一 暂存器中的位置将第 一数据进行旋转移位。判断第 一数据 与第一暂存器中的一第二数据的总尺寸是否大于或等于第一暂存器的尺寸。若否,将第一数据储存至第一暂存器,且更新第 一指针指向至第一暂存器中的第一数据之后。若是,将第一暂 存器中的第二数据取出,依据第一指针的位置将第二数据与第 一数据中相应由第一指针的位置开始的一第一部分数据进行结 合成为具有第一暂存器尺寸的一第三数据,且将第三数据储存 至一队列中。将第一数据中剩余的一第二部分数据储存至第一 暂存器,且更新第一指针指向至该第一暂存器中的第二部分数 据之后。本发明实施例的数据处理系统包括一第一暂存器、 一第一 旋转移位单元、 一第一数据结合单元、 一队列与一处理模块。 第一暂存器具有一第一指针指向第一暂存器中的一位置。第一 旋转移位单元由一数据来源接收一第一数据,且依据第一指针 指向第一暂存器中的位置将第一数据进行旋转移位。当第一数
据与第一暂存器中的一第二数据的总尺寸并未大于或等于第一 暂存器的尺寸时,处理模块将第一数据储存至第一暂存器,且 将第一指针更新指向至第一暂存器中的第一数据之后。当第一 数据与第一暂存器中的第二数据的总尺寸大于或等于第一暂存 器的尺寸时,处理模块将第一暂存器中的第二数据取出,透过 第 一数据结合单元依据第 一 指针的位置将第二数据与第 一数据 中相应由第一指针的位置开始的一第一部分数据进行结合成为 具有第一暂存器尺寸的一第三数据,且将第三数据储存至队列 中。处理模块将第一数据中剩余的一第二部分数据储存至第一 暂存器,并将第 一指针更新指向至第 一 暂存器中的第二部分数 据之后。本发明上述方法可以透过程序码方式收录于实体介质中。 当程序码被机器载入且执行时,机器变成用以实行本发明的装置。本发明所述的数据处理方法及系统,数据传输间无须重复 组态设定传输尺寸的模式,进而提升效能。


图l为一示意图显示已知数据传输架构。图2为一示意图显示已知存储器对存储器的数据传输。 图3为 一 示意图显示依据本发明实施例的数据处理系统。 图4为 一 流程图显示依据本发明实施例的数据处理方法。 图5为 一 示意图显示依据本发明实施例的数据处理系统。 图6为 一 流程图显示依据本发明实施例的数据处理方法。 图7显示依据本发明实施例的数据处理例子。 图8显示依据本发明实施例的数据处理例子。 图9为一示意图显示结合图3与图5的依据本发明实施例的
数据处理系统。
具体实施方式
为使本发明的上述目的、特征和优点能更明显易懂,下文特举实施例,并配合所附图示,详细i兌明如下。图3显示依据本发明实施例的数据处理系统。依据本发明实 施例的数据处理系统可以适用于以AHB架构的系统中的DMA控制器。依据本发明实施例的数据处理系统300包括一第 一旋转移 位单元310、 一第一暂存器320、 一第一数据结合单元330、 一 FIFO队列340与 一处理模块350。 一第 一指针(未显示)指向第一 暂存器320中的一位置。第一旋转移位单元310由一数据来源接 收数据,且可以依据第 一 指针指向第 一 暂存器3 2 0中的位置将数 据进行旋转移位。第 一 数据结合单元3 3 0可以依据第 一 指针的位 置将接收数据的 一 部分或是全部与第 一 暂存器320中的数据进 行结合,并将结合得到的数据输出至队列340。处理模块350用 以执行本发明的数据处理方法,细节将于后说明。 图4显示依据本发明实施例的数据处理方法。 如步骤S410,由数据来源接收数据。值得注意的是,数据 的起始地址可以指定来由数据来源读取数据。另外,在一些实 施例中,当数据的起始地址并非落于地址边界之上,部分多余 的数据则须进行过滤。如步骤S420,透过第一旋转移位单元依 据第 一指针指向第 一 暂存器中的位置将接收的数据进行旋转移 位。举例来说,假设第一暂存器的尺寸为4字节,且第一指针指 向第二个字节时,则接收的数据的开始地址必须旋转移位至第 一指针所指向的第二个字节。接着,如步骤S430,判断接收的 数据与第一暂存器中的数据的尺寸总和是否大于或等于第一暂存器的尺寸。若否(步骤S430的否),如步骤S440,将接收的数 据储存至第一暂存器,且更新第一指针指向至第一暂存器中相 应此接收的数据之后。若是(步骤S430的是),如步骤S450,将 第一暂存器中的数据取出,并如步骤S460,透过第一数据结合 单元依据第一指针的位置将第一暂存器所取出的数据与接收的 数据的 一 部分或是全部进行结合,并将结合得到的数据储存至 队列中。值得注意的是,接收的数据的一部分是指相应由第一 指针的位置开始的部分数据。另外,结合得到的数据的尺寸等 于第一暂存器的尺寸。如步骤S470,将接收的数据中并未进行 结合的剩余部分数据储存至第 一 暂存器,且更新第 一 指针指向 至第一暂存器中相应此剩余部分数据之后。之后,如步骤S480, 判断数据来源的数据是否都已接收完毕。若尚未接收完毕(步骤 S480的否),流程回到步骤S410。若已经接收完毕(步骤S480的 是),结束流程。举一 例子进行说明。图7显示依据本发明实施例的数据处理 例子。其中,第一暂存器的尺寸为4字节。 一开始第一暂存器中 没有数据,且第一指针Ptr—l指向第一暂存器中的第一个位置。 首先,由数据来源接收数据区块l,并将数据区块l旋转移位至 第 一 指针P t r — 1的位置。由于由数据来源接收的数据与第 一 暂存 器中的数据(一 开始并没有数据)并未大于或等于第 一 暂存器的 尺寸。因此,数据区块l储存至第一暂存器中,且更新第一指针 Ptr—l指向第 一 暂存器中数据区块l后的位置。由于数据区块2 5 落于4字节的地址边界之上,因此,由数据来源接收数据区块 2 5 ,且将数据区块2 5依据第 一 指针P t r — 1的位置进行旋转移 位。由于由数据来源接收的数据与第 一 暂存器中的数据的总尺 寸大于第一暂存器的尺寸(4+1〉4),因此数据区块2 4被选定来 与原先在第一暂存器中的数据区块l进行结合,并储存至队列
中。未被选取的数据区块5则储存至第一暂存器中,且更新第一指针Ptr一l指向第一暂存器中数据区块5后的位置。之后,由数 据来源接收数据区块6 7,且将数据区块6 7依据第 一 指针Ptr一 1 的位置进行旋转移位。由于由数据来源接收的数据与第一暂存 器中的数据的总尺寸小于第一暂存器的尺寸(2+1<4),因此数据 区块6 7直接储存至第一'暂存器中,且更新第一指针Ptr—l指向 第一暂存器中数据区块7后的位置。最后,由数据来源接收数据 区块8 ,且将数据区块8依据第 一 指针Ptr—1的位置进行旋转移 位。由于由数据来源接收的数据与第 一 暂存器中的数据的总尺 寸等于第一暂存器的尺寸(1+3=4),因此数据区块8被选定来与 原先在第一暂存器中的数据区块5 7进行结合,并储存至队列 中,以完成作业。图5显示依据本发明实施例的数据处理系统。类似地,依据 本发明实施例的数据处理系统可以适用于以AHB架构的系统 中的DMA控制器。依据本发明实施例的数据处理系统500包括一 FIFO队列 510、第二暂存器520、第二数据结合单元530、第二旋转移位单 元540与一处理模块550。 一第二指针(未显示)指向第二暂存器 520中的一位置。第二数据结合单元530可以依据第二指针的位 置将由队列510接收的数据的一部分或是全部与第二暂存器520 中的数据进行结合,并将结合得到的数据输出至第二旋转移位 单元540。第二旋转移位单元540可以依据目的地址将数据进行 旋转移位,并将旋转移位后的数据写至目的地址。处理模块550 用以执行本发明的数据处理方法,细节将于后说明。图6显示依据本发明实施例的数据处理方法。 如步骤S610,由队列510取出数据。其中, 一次由队列510 取出数据的大小等于第二暂存器520的尺寸。如步骤S620,依 据数据欲写入的目的地址决定一存取尺寸。之后,如步骤S630, 由队列510所取出的数据中选择部分或是全部的数据,并如步骤 S640,透过第二数据结合单元530依据第二指针的位置将第二 暂存器520中的数据与前述选定的部分或是全部数据进行结合, 其中结合得到的数据的尺寸等于存取尺寸。如步骤S650,透过 第二旋转移位单元540依据目的地址将结合得到的数据进行旋 转移位,且将旋转移位后的数据写至目的地址。之后,如步骤 S660,将由队列510所取出的数据中并未选取的剩余部分数据 储存至第二暂存器520,并更新第二指针指向至第二暂存器520 中相应此剩余部分数据之后。值得注意的是,在一些实施例中, 可以判断由队列510取出的数据与第二暂存器5 2 0中数据的总尺 寸是否大于或等于存取尺寸。若是,则由队列510所取出的数据 中选择部分或是全部数据,且将第二暂存器520中的数据与选定 的部分或是全部数据进行结合。之后,再将结合得到的数据进 行旋转移位,并写至目的地址。若由队列510取出的数据与第二 暂存器520中数据的总尺寸并未大于或等于存取尺寸,则由队列 510取出的数据将会直接储存至第二暂存器520中。另外,若第 二暂存器5 2 0中并未存在数据,则可以直接判断由队列510取出 的数据的尺寸是否大于或等于存取尺寸。若是,则直接由队列 510所取出的数据中选择部分或是全部数据,再将选定的部分或 是全部数据进行旋转移位,并写至目的地址。之后,如步骤 S670,判断队列中的数据是否都已取出。若否(步骤S670的否), 流程回到步骤S610。若是(步骤S670的是),结束流程。举一例子进行说明。图8显示依据本发明实施例的数据处理 例子。其中,第二暂存器的尺寸为4字节。 一开始第二暂存器中 没有数据,且第二指针Ptr—2指向第二暂存器中的第一个位置。 首先,由数据来源接收数据区块1 4。由于由队列取得的数据 大于由目的地址所决定的存取尺寸(4〉2),因此,由数据区块1 4 中选择数据区块1 2,且依据目的地址进行旋转移位,并将旋 转移位后的数据区块1 2写至目的地址。未选取的数据区块3 4 则储存至第二暂存器中,且更新第二指针Ptr一2指向第二暂存器 中数据区块4后的位置。接着,由数据来源接收数据区块5 8。 由于由队列取得的数据与第二暂存器中数据的总尺寸大于由目 的地址所决定的存取尺寸(4+2〉4),因此,由数据区块5 8中选 择数据区块5 6。依据第二指针Ptr一2的位置将第二暂存器中的 数据区块3 4与数据区块5 6结合,且依据目的地址进行旋转移 位,并将旋转移位后的数据区块3 6写至目的地址。未选取的 数据区块7 8则储存至第二暂存器中,且更新第二指针Ptr一2指 向第二暂存器中数据区块8后的位置。最后,由于队列数据都已 经取出,直接依据目的地址将第二暂存器中的数据区块7 8进 行旋转移位,并写至目的地址,以完成作业。值得注意的是,在一些实施例中,由数据来源接收数据再 储存至队列以及由队列取出数据再写至目的地址可以进行结合 为完整的数据传输作业。其架构图如图9所示。在本发明中,数据来源的数据可以透过暂存器的使用,先 进行结合(对齐),再储存至队列中。另外,写至目的地址的数 据亦可以透过暂存器的使用,先由队列中取出对齐的数据,如 32位数据,再将需求的数据写入目的地址而不需的数据储存至 暂存器中。透过本发明的数据处理方法及系统,数据传输间无 须重复组态设定传输尺寸的模式,进而提升效能。本发明的方法,或特定型态或其部分,可以以程序码的型 态包含于实体介质,如软盘、光盘片、硬盘、或是任何其他机 器可读取(如计算机可读取)储存介质,其中,当程序码被机器, 如计算机载入且执行时,此机器变成用以参与本发明的装置。
本发明的方法与装置也可以以程序码型态透过一些传送介质, 如电线或电缆、光纤、或是任何传输型态进行传送,其中,当 程序码被机器,如计算机接收、载入且执行时,此机器变成用 以参与本发明的装置。当在一般用途处理器实作时,程序码结 合处理器提供 一 操作类似于专用逻辑电路的独特装置。以上所述仅为本发明较佳实施例,然其并非用以限定本发 明的范围,任何熟悉本项技术的人员,在不脱离本发明的精神 和范围内,可在此基础上做进一步的改进和变化,因此本发明 的保护范围当以本申请的权利要求书所界定的范围为准。附图中符号的简单说明如下110:数据来源120: FIFO队列130:目的i也址300:数据处理系统310:第一旋转移位单元320:第一暂存器330:第一数据结合单元340: 队列350:处理模块S410、 S420..... S480:步骤500: ^:据处理系统510:队列520:第二暂存器530:第二数据结合单元540:第二旋转移位单元550:处理模块S610、 S620..... S670:步骤Ptr—1:第一指针 Ptr—2:第二指针。
权利要求
1.一种数据处理方法,适用于一数据处理系统,其特征在于,包括下列步骤由一数据来源接收一第一数据;依据一第一指针指向一第一暂存器中的位置将该第一数据进行旋转移位;判断该第一数据与该第一暂存器中的一第二数据的总尺寸是否大于或等于该第一暂存器的尺寸;若否,将该第一数据储存至该第一暂存器,且更新该第一指针指向至该第一暂存器中的该第一数据之后;以及若是,将该第一暂存器中的该第二数据取出,依据该第一指针的位置将该第二数据与该第一数据中相应由该第一指针的位置开始的一第一部分数据进行结合成为具有该第一暂存器尺寸的一第三数据,且将该第三数据储存至一队列中,并将该第一数据中剩余的一第二部分数据储存至该第一暂存器,且更新该第一指针指向至该第一暂存器中的该第二部分数据之后。
2. 根据权利要求l所述的数据处理方法,其特征在于,更 包括下列步骤由该队列取出具有 一 第二暂存器的尺寸的 一 第四数据; 依据一 目的地址决定一存取尺寸; 由该第四数据中选择一第三部分数据; 将该第二暂存器中的 一 第五数据与该第三部分数据进行结 合,从而得到一第六数据,其中该第六数据的尺寸等于该存取尺寸;依据该目的地址将该第六数据进行旋转移位,且将该第六 数据写至该目的地址;以及将该第四数据中剩余的 一 第四部分数据储存至该第二暂存 器,且更新一第二指针指向至该第二暂存器中的该第四部分数 据之后。
3. 根据权利要求l所述的数据处理方法,其特征在于,该第 一 暂存器的尺寸为4字节,且由该数据来源接收的该第 一 数据 的尺寸小于或等于4字节。
4. 根据权利要求2所述的数据处理方法,其特征在于,该 第二暂存器的尺寸为4字节,且该存取尺寸小于或等于4字节。
5. 根据权利要求l所述的数据处理方法,其特征在于,更 包括当该第一指针指向该第一暂存器的尾端时,该第一指针将 重新指向该第一暂存器的头端。
6. 根据权利要求2所述的数据处理方法,其特征在于,更 包括当该第,二指针指向该第二暂存器的尾端时,该第二指针将 重新指向该第二暂存器的头端。
7. —种数据处理系统,其特征在于,包括 一第一暂存器,具有一第一指针指向该第一暂存器中的一位置;一第一旋转移位单元,用以由一数据来源接收一第一数据, 且依据该第一指针指向该第一暂存器中的位置将该第一数据进 行旋转移位;一第一数据结合单元;一队列;以及一处理模块,用以当该第一数据与该第一暂存器中的一第 二数据的总尺寸并未大于或等于该第 一 暂存器的尺寸时,将该 第一数据储存至该第一暂存器,且将该第一指针更新指向至该 第 一暂存器中的该第 一数据之后,当该第 一数据与该第 一暂存 器中的该第二数据的总尺寸大于或等于该第 一 暂存器的尺寸时,将该第一暂存器中的该第二数据取出,透过该第一数据结 合单元依据该第 一指针的位置将该第二数据与该第 一数据中相 应由该第一指针的位置开始的一第一部分数据进行结合成为具 有该第 一 暂存器尺寸的 一 第三数据,且将该第三数据储存至该 队列中,且将该第一数据中剩余的一第二部分数据储存至该第 一暂存器,并将该第一指针更新指向至该第一暂存器中的该第 二部分数据之后。
8. 根据权利要求7所述的数据处理系统,其特征在于,更 包括一第二暂存器,具有一第二指针指向该第二暂存器中的一 位置;一第二数据结合单元;以及 一第二旋转移位单元,其中,该处理模块更由该队列取出具有该第二暂存器的尺 寸的一第四数据,依据一目的地址决定一存取尺寸,由该第四数据中选择 一 第三部分数据,透过该第二数据结合单元将该第 二暂存器中的一第五数据与该第三部分数据进行结合,从而得 到一第六数据,其中该第六数据的尺寸等于该存取尺寸,透过 该第二旋转移位单元依据该目的地址将该第六数据进行旋转移 位,且将该第六数据写至该目的地址,且将该第四数据中剩余 的一第四部分数据储存至该第二暂存器,并更新一第二指针指向至该第二暂存器中的该第四部分数据之后。
9. 根据权利要求7所述的数据处理系统,其特征在于,该 第一暂存器的尺寸为4字节,且由该数据来源接收的该第一数据 的尺寸小于或等于4字节。
10. 根据权利要求8所述的数据处理系统,其特征在于,该 第二暂存器的尺寸为4字节,且该存取尺寸小于或等于4字节。
11. 根据权利要求7所述的数据处理系统,其特征在于,当 该第一指针指向该第一暂存器的尾端时,该第一指针将重新指 向该第一暂存器的头端。
12.根据权利要求8所述的数据处理系统,其特征在于, 第二指针指向该第二暂存器的尾端时,该第二指针将重新指 该第二暂存器的头端。
全文摘要
一种数据处理方法及系统,该数据处理方法适用于一数据处理系统。首先,由一数据来源接收第一数据。依据第一指针指向第一暂存器中的位置将第一数据进行旋转移位。判断第一数据与第一暂存器中的第二数据的总尺寸是否大于或等于第一暂存器的尺寸。若否,将第一数据储存至第一暂存器,且更新第一指针指向至第一暂存器中的第一数据之后。若是,将第一暂存器中的第二数据取出,依据第一指针的位置将第二数据与第一数据中相应由第一指针的位置开始的第一部分数据进行结合成为具有第一暂存器尺寸的第三数据,且将第三数据储存至队列中。将第一数据中剩余的第二部分数据储存至第一暂存器,且更新第一指针指向至该第一暂存器中的第二部分数据之后。
文档编号G06F13/28GK101149715SQ200710166030
公开日2008年3月26日 申请日期2007年10月30日 优先权日2007年10月30日
发明者李德建, 杨存永, 鹏 高 申请人:威盛电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1