数据传送方法

文档序号:6458147阅读:125来源:国知局
专利名称:数据传送方法
技术领域
本发明有关于一种数据传输,且特别有关于一种要求特定长度与地址对齐(Address Aligned)的突发(Burst)的数据传送方法及系统。
背景技术
数据传输是影响计算机系统效能的 一 个重要关键。硬件设 计者必须面对改善数据传输效率的挑战。举例来说,操作软件 可以使用虚拟地址来表示数据储存的位置。虚拟地址可以对映 至一相应的实体地址,实体地址用以表示数据实际在硬件(存储 器)中的位置。为了安全与其他理由,储存于连续虚拟地址的数 据可以被分割为对映至不同实体地址的多个数据区块。这些数 据区块可以随机地在存储器中安排。当存取储存于连续虛拟地 址的数据时将会需要较多的操作,且降低数据传输的效率。举例来说,上述数据传输可以在AMBA(Advanced Microcontroller Bus Architecture,进阶孩i处理器总线架构)中实 行,其中AMBA定义一种芯片上的总线标准。在AMBA中,多 种的系统元件,如控制器、存储器与外围接口等可以连接至总 线上。在AMBA中,高频宽总线,如AHB(Advanced High-performance Buses,进阶高效能总线)可以^是供来在多个主 动装置(Master)与从动装置(Slave)间进行数据传输。举例来说, 一控制器(主动装置)可以通过AHB存取一装置(从动装置),如存 储器。此装置可以是支持突发与管线(Pipeline)数据传输程序的 DMA(Direct Memory Access,存储器直接存取)类型装置。数 据传输程序包括同意(Grant)、地址/控制与数据等周期。在同意周期中, 一主动装置首先要求对于总线进行存取,且一 仲裁器由主动装置接收要求,且同意主动装置的要求,以在总 线上进行传输操作。在地址与控制周期中,传输信息,如传输 的起始地址、方向与尺寸以及相应的包类型会进4亍沟通。之后, 在数据周期中进行数据传输。举例来说,其中一个主动装置可 以被同意来拥有总线。拥有总线的主动装置可以通过总线传送 数据至一从动装置(写操作),或是以一反方向通过总线由一从 动装置要求一突发的数据(读操作)。类似地,其中一个从动装 置可以被同意来拥有总线。拥有总线的从动装置可以通过总线 传送数据,使得数据被要求此数据的主动装置进行读取。已知地,当具有特定长度的数据被要求,且数据的起始地址并没有与存储器进行地址对齐(不在存储器的双字(D W , Double-Word)边界,如4DW/8DW/16DW上)时,主动装置可以 使用 一非特定长度的突发来由存储器要求数据。由于数据的起 始地址并没有地址对齐,主动装置将会要求一个跨越地址边界 的突发,如此的突发将会降低存取的效能。由于非特定长度的 突发无法提供长度信息,也会使得从动装置的效能降低。另夕卜, 主动装置可以使用更多特定长度的突发来由存储器要求数据。 主动装置会将一要求分为多个小要求,从而使得总线的效率降 低。类似地,由于数据的起始地址并没有地址对齐,主动装置 将会要求一个跨越地址边界的突发,如此的突发将会降低存取 的效能。发明内容本发明所述的数据传送方法首先由一主动装置接收包括传 输信息的一要求,其中,传输信息包括一起始地址与一长度。 依据传输信息决定一第一突发的一突发类型,其中,第一突发对齐于从动装置的至少一地址边界。接着,通过一总线将具有 此突发类型的第一突发传送至一从动装置。之后,由从动装置 接收相应第 一 突发的数据,且将数据传送至主动装置。本发明所述的数据传送方法亦可用以由一存储器存取数据,其中,存储器被分为多个区段(Section),且每一区段具有 一数据间隔的多个个地址边界。当接收用以数据传输的一要求 时,其中,要求包括相应一存取数据的一起始地址与一长度, 依据起始地址决定一选定区段的一起始地址边界,且依据起始 地址与相应存取数据的长度决定此选定区,殳的 一结束地址边 界。依据决定的地址边界,存取由起始地址边界至结束地址边 界的数据,其中,起始地址落于起始地址边界至结束地址边界 之中。本发明上述方法可以通过程序码方式收录于实体介质中。 当程序码被机器载入且执行时,机器变成用以实行本发明的装置。本发明所述的数据传送方法,可改善总线效率与系统效能。


图1为 一 示意图显示依据本发明实施例的数据传送系统。 图2为 一 流程图显示依据本发明实施例的数据传送方法。 图3显示记录相应传输信息的突发类型。 图4为一示意图显示依据本发明实施例的存储器中的区段。 图5A与图5B为流程图显示依据本发明实施例的数据传送 方法。图6显示相应存储器的 一数据传送例子。
具体实施方式
为使本发明的上述目的、特征和优点能更明显易懂,下文 特举实施例,并配合所附图示,详细i兌明如下。请参考图1,图l依据本发明实施例所示的数据传送系统,其中,数据传送系统100可以是一AMBA系统。数据传送系统100包括一AHB主动装置110、 一AHB主动接 口 120与一AHB从动装置130;其中,AHB主动装置110例如是 USB(Universal Serial Bus,通用串行总线)主才几控制器,AHB从 动装置130例如是存储器等,而AHB主动装置110可以通过AHB 主动接口 120使用AHB与AHB从动装置130进行通信。举例来说,AHB主动装置110可以通过AHB主动接口 120由 AHB从动装置130存取(读/写)数据。AHB主动接口 120由AHB主 动装置110接收包括传输信息的要求,且产生与传送突发至AHB 从动装置130。 AHB主动接口 120亦可由AHB从动装置130接收 相应的数据,且将数据传送至AHB主动装置110。 AHB主动接 口 120包括一突发类型控制器121与一数据管理器122。突发类型 控制器121可以依据传输信息来判断至少 一 突发的突发类型,其 中,传输信息包括在AHB从动装置130中欲被存取的数据的一 起始地址与 一长度。数据管理器122可以依据传输信息将由 AHB从动装置130所接收的数据中丟弃多余的数据。请参考图2,图2是依据本发明实施例所示的数据传送方法。如步骤S210,由 一例如是AHB主动装置IIO的总线主动装 置,接收包括传输信息的一要求;其中,传输信息包括一起始 地址与一长度。如步骤S220,依据传输信息决定一突发的一突发类型。注 意的是,此突发对齐于总线从动装置,如AHB从动装置130的 至少一地址边界。在一些实施例中,地址边界可以是4DW(双字)、8DW与16DW。值得注意的是, 一个要求可以产生多个突 发。之后,如步骤S230,通过一总线,如AHB将具有此突发类 型的突发传送至从动装置。如步骤S240,判断是否有数据由从动装置接收。如果没有, 继续步骤S240的判断。如果由从动装置接收到相应突发的数据,则如步骤S250, 依据传输信息由接收的数据中找出多余的数据,且将其丟弃。 值得注意的是,如果接收的数据中没有多余的数据,则没有数 据会被丟弃。如步骤S260,将数据传送至主动装置。之后,如步骤S270,依据突发更新传llr信息。举例来说, 将传输信息中的长度减去相应目前突发的数据长度,且起始地 址加上相应目前突发的数据长度。如步骤S280,判断产生的突发是否已经完成相应的要求(判 断相应要求的数据传输是否已经完成),即判断更新后传输信息 中的长度是否等于O。如果长度等于O,则结束数据传输程序。 如果长度不等于O,流程回到步骤S220,直至数据传输程序结 束。值得注意的是,在一些实施例中,接收的数据可以先被收 集且在 一 次传输中将数据传送至主动装置。在一些实施例中,突发类型控制器121可以包括一表格300, 用以记录相应不同传输信息的突发类型,如图3所示。其中,列 表示起始地址(后4位),行表示长度(DW),且列与行的交集为突 发的类型。在表格300中,S表示具有一个DW长度的突发(或称 为一数据传输);IN4(增额4)表示由一地址边界开始的具有四个 DW(4DWs)长度的突发(或称为一数据传输);IN8(增额8)表示由 一地址边界开始的具有八个DW(8DWs)长度的突发(或称为一 数据传输);以及IN16(增额16)表示由一地址边界开始的具有十六个DW(16DWs)长度的突发(或称为 一数据传输)。 一旦由主动 装置接收到传输信息, 一 第 一 突发的类型便可以依据传输信息 通过查询表格来决定。类似地,后续突发的类型亦可以依据更 新后的传输信息决定。值得注意的是,图3中的表格为一例子, 本发明并不限定于此。图4显示依据本发明实施例的存储器中的区段。存储器被分 为多个区段(Section),且每一区段具有在一列中依序安排的多 个单元(Unit)。在图4显示的实施例中,每一单元是一个DW的 数据。为了容易理解,图4中区段的起始地址为nnn0, nnnl, nnn2,..., nnnf,其中n是一 个十六进制数字。为了数据传输的效 率,存储器中地址边界的指定依照存储器的硬件设计与存储器 存取协议的定义来进行。在此实施例中,IN16突发是由一地址 边界开始的具有16DW长度的突发,如具有地址[nnn0-nnnf]的突 发。IN8突发是由一地址边界开始的具有8DW长度的突发,如 具有i也址[rmn0-min7]或[mni8-nrmf]的突发。类似、i也,IN4突发 是由 一 地址边界开始的具有4DW长度的突发,如具有地址 [nrm0-nnn3]、 [nrm4-imn7] 、 [nrm8-nnnb]或[rmnc-nrmf]的突发。请参考图5A及图5B,图5A及图5B显示依据本发明实施例 的数据传送方法。在此实施例中,突发类型控制器121可以依据 传输信息直接决定突发的类型。如步骤S402所示,首先判断传输信息中的长度是否大于或 等于16DW。若长度大于或等于16DW,则如步骤S404,判断传 输信息中起始地址的最后第5个位是否等于1 。若起始地址的最 后第5个位不等于1,则如步骤S406,判定突发的类型为IN16突 发。若起始地址的最后第5个位等于1(步骤S404的是),则如步 骤S408,判断起始地址的最后第4个位是否等于0。若起始地址的最后第4个位等于0(步骤S408的是),则如步骤S410,判定突 发的类型为IN8突发。若起始地址的最后第4个位不等于O(步骤S408的否),如步 骤S412,判定突发的类型为IN4突发。接着,若长度不大于且不等于16DW(步骤S402的否),则如 步骤S414,判断长度是否大于或等于8DW。若长度大于或等于 8DW,则如步骤S416,判断起始地址的最后第5个位是否等于0, 且一结束地址的最后第5个位是否等于1,其中,结束地址等于 起始地址再加上长度。若起始地址的最后第5个位等于0,且结束地址的最后第5 个位等于1(步骤S416的是),则如步骤S406,判定突发的类型为 IN16突发。若起始地址的最后第5个位不等于0,或结束地址的最后第5 个位不等于1(步骤S416的否),则如步骤S408,判断起始地址的 最后第4个位是否等于0。如果起始地址的最后第4个位等于0(步 骤S408的是),则如步骤S410,判定突发的类型为IN8突发。如果起始地址的最后第4个位不等于O(步骤S408的否),则 如步骤S412,判定突发的类型为IN4突发。接着,若长度不大于且不等于8DW(步骤S414的否),则如 步骤S418,判断长度是否大于或等于4DW。若长度大于或等于 4DW(步骤S418的是),则如步骤S420,判断起始地址的最后第5 个位是否等于O,且结束地址的最后第5个位是否等于1。若起始 地址的最后第5个位等于0,且结束地址的最后第5个位等于1(步 骤S420的是),则如步骤S406,判定突发的类型为IN16突发。若起始地址的最后第5个位不等于0,或结束地址的最后第5 个位不等于1(步骤S420的否),则如步骤S422,判断起始地址的 最后第5个位是否等于1,且起始地址的最后第4个位是否等于1。如果起始地址的最后第5个位等于1,且起始地址的最后第4个位等于1(步骤S422的是),如步骤S412,判定突发的类型为IN4突 发。如果起始地址的最后第5个位不等于1,或起始地址的最后 第4个位不等于1(步骤S422的否),如步骤S410,判定突发的类 型为IN8突发。判断长度是否等于1DW。若长度不等于1DW(步骤S424的否), 如步骤S426,判断起始地址的最后第5个位是否等于0,且结束 地址的最后第5个位是否等于1。若起始地址的最后第5个位等于 0,且结束地址的最后第5个位等于1(步骤S426的是),则如步骤 S406,判定突发的类型为IN16突发。若起始地址的最后第5个位不等于0,或结束地址的最后第5 个位不等于1(步骤S426的否),则如步骤S428,判断起始地址的 最后第4个位是否等于0,且结束地址的最后第4个位是否等于1。 如果起始地址的最后第4个位等于0,且结束地址的最后第4个位 等于1(步骤S428的是),则如步骤S410,判定突发的类型为IN8 欠发。如果起始地址的最后第4个位不等于0,或结束地址的最后 第4个位不等于1(步骤S428的否),则如步骤S412,判定突发的 类型为IN4突发。若长度等于1DW(步骤S424的是),则如步骤S430,判定突 发的类型为S突发(单一DW突发)。需要注意的是,当突发的类 型为S突发时,则流程结束。在突发类型决定且相应的数据接收之后,则如步骤S 4 3 2, 依据突发决定丢弃多余的数据,且更新长度。接着,如步骤 S434,判断相应要求的数据传输是否已经完成(更新后的长度等 于0)。如果尚未完成,流程则回到步骤S402;如果相应要求的数据传输已经完成,则结束流程。请参考图6,图6显示相应存储器的一数据传送例子。存储器的第 一 个区段61 O是由地址OOOO至OOOf组成。存储器的第二个 区段620是由地址0010至001f组成。每一数才居地址具有l个双字 的容量。当 一总线主动装置想要存取储存于存储器中地址 0009-0011的数据,如长度为9个双字的数据时,总线主动装置 将会发出相应数据传输的一要求给总线接口 。相应数据传输的 要求中包括传输信息,如数据的起始地址为0009且数据长度为 9。总线接口定位至起始地址所处于的第一区段610,且由于在 地址0008起端的地址边界是最接近起始地址0009,因此,选择 在地址0007尾端与在地址0008起端的开始地址边界。依据数据 的起始地址与长度可以知道有其他数据在其他的区块中。因此, 结束地址边界选4奪为地址0 0 0 f的尾端。依据开始地址边界与结 束地址边界,总线接口发出一IN8突发给存储器,如要求由地 址0008至000f的数据传输。由于突发长度为8DW且起始地址为 0009,因此,总线接口可以知道存取数据中包括了多余的1DW 数据(ED)以及数据存取长度为7DW。更具体的说,多余的数据 (E D)是在相应存储器中地址为0 0 0 8的数据。由存储器接收到数 据之后,总线接口将多余数据(ED)忽略,再将剩余的数据传送 至总线主动装置。总线接口也会依据存取数据的长度更新传输 信息。举例来i兌,起始地址一皮更新为OOIO,且长度一皮更新为2。 前述步骤重复,由于起始地址0010在区段620中,因此总线接口 选择第二个区段620。起始地址边界选择为地址0010的起端,且 结束地址边界选择为地址0013的尾端。之后,总线接口发出一 IN4突发给存储器,以存取由地址0010至0013的数据。类似地, 在由存储器接收到数据之后,总线接口将会忽略2 D W的多余数 据,再将剩余的数据传送至总线主动装置。通过此实施例的步骤,可以利用 一个IN8突发与一个IN4突发来完成由存储器存取 地址0009-0011的数据。值得注意的是,所有的突发都会对齐至 地址边界。当主动装置存取从动装置时,将会产生具有一特定长度的 至少一突发,如S(单一DW), IN4、 IN8与IN16突发。其中,突 发的起始地址会对齐于地址边界,如4DW、 8DW与16DW。在 本发明中,当相应数据传输的要求跨越快取存储器(Cache)线 (Line)与容量,如1K边界时,主动装置不需要分割相应数据传 输的要求。另外,要求小量数据的要求的数目将会降低,从而 改善总线效率与系统效能。本发明的方法,或特定型态或其部分,可以以程序码的型 态包含于实体介质,如软盘、光盘片、硬盘或是任何其他机器 可读取(如计算机可读取)储存介质,其中,当程序码被机器, 如计算机载入且执行时,此机器变成用以参与本发明的装置。本发明的方法与装置也可以以程序码型态通过 一 些传送介质, 如电线或电缆、光纤或是任何传输型态进行传送,其中,当程 序码被机器,如计算机接收、载入且执行时,此机器变成用以 参与本发明的装置。当在一般用途处理器实作时,程序码结合 处理器提供 一 操作类似于应用特定逻辑电路的独特装置。以上所述仅为本发明较佳实施例,然其并非用以限定本发 明的范围,任何熟悉本项技术的人员,在不脱离本发明的精神 和范围内,可在此基础上做进一步的改进和变化,因此本发明 的保护范围当以本申请的权利要求书所界定的范围为准。附图中符号的筒单说明如下100:数据传送系统110: AHB主动装置120: AHB主动接口121:突发类型控制器 122:数据管理器 130: AHB从动装置 AHB:进阶高效能总线S210、 S220..... S280:步骤300:表格S、 IN4、 IN8、 IN16:突发类型S402、 S404..... S434:步骤610、 620:存储器区段 ED:多余数据。
权利要求
1.一种数据传送方法,其特征在于,包括下列步骤由一主动装置接收包括传输信息的一要求,其中该传输信息包括一起始地址与一长度;依据该传输信息决定一第一突发的一突发类型,其中该第一突发对齐于一从动装置的至少一地址边界;通过一总线将具有该突发类型的该第一突发传送至该从动装置;由该从动装置接收相应该第一突发的数据;以及将该数据传送至该主动装置。
2. 根据权利要求l所述的数据传送方法,其特征在于,更 包括下列步骤依据该传输信息判断该数据中的多余数据;以及 由该数据中丟弃该多余数据。
3. 根据权利要求l所述的数据传送方法,其特征在于,更 包括下列步骤判断该第一突发是否完成该要求;若该第一突发并未完成该要求,依据该第一突发更新该传 输信息;依据更新过的该传输信息决定 一 第二突发的 一 突发类型; 通过该总线将具有该突发类型的该第二突发传送至该从动 装置;由该从动装置接收相应该第二突发的数据;以及 将相应该第二突发的该数据传送至该主动装置。
4. 根据权利要求l所述的数据传送方法,其特征在于,该 突发类型包括一单一突发、 一增额4突发、 一增额8突发与一增 额16突发。
5. 根据权利要求4所述的数据传送方法,其特征在于,更包括下列步骤检查该长度是否大于或等于16双字;若该长度大于或等于16双字,检查该起始地址的最后第五 个位是否等于l,若起始地址的最后第五个位不等于l,决定该 第一突发的该突发类型为该增额16突发;当该长度不大于且不等于16双字时,检查该长度是否大于 或等于8双字,若该长度大于或等于8双字,检查该起始地址的 最后第五个位是否等于O,且一结束地址的最后第五个位是否等 于l,其中该结束地址等于该起始地址加上该长度;以及若该起始地址的最后第五个位等于O,且该结束地址的最后 第五个位等于1 ,决定该第 一 突发的该突发类型为该增额16突 发。
6. 根据权利要求5所述的数据传送方法,其特征在于,更 包括下列步骤检查该起始地址的最后第四个位是否等于0;以及 若该起始地址的最后第四个位不等于O,决定该第一突发的 该突发类型为该增额4突发。
7. 根据权利要求5所述的数据传送方法,其特征在于,当检查该长度是否大于或等于4双字;若该长度大于或等于4双字,检查该起始地址的最后第五个 位是否等于O,且该结束地址的最后第五个位是否等于l;若该起始地址的最后第五个位等于0,且该结束地址的最后 第五个位等于1 ,决定该第 一 突发的该突发类型为该增额16突 发;以及当该长度不大于且不等于4双字时,检查该长度是否等于l 双字,若该长度等于l双字,决定该第一突发的该突发类型为该单一突发;当该长度不等于l双字时,检查该起始地址的最后第五个位 是否等于O,且该结束地址的最后第五个位是否等于l;以及若该起始地址的最后第五个位等于0,且该结束地址的最后 第五个位等于1,决定该第 一 突发的该突发类型为该增额16突发。
8. —种数据传送方法,用以由一存储器存取数据,其特征 在于,该存储器被分为多个区段,且每一区段具有一数据间隔 的多个地址边界,该数据传送方法包括下列步骤接收用以数据传输的一要求,其中该要求包括相应一存取数据的一起始地址与一长度;依据该起始地址选才奪所述区段中其中之一 ;依据该起始地址决定相应的选定区4史的 一起始地址边界;依据该起始地址与相应该存取数据的该长度,决定相应该选定区段的 一 结束地址边界;以及存取由该起始地址边界至该结束地址边界的 一 数据,其中该起始地址落于该起始地址边界至该结束地址边界之中。
9. 根据权利要求8所述的数据传送方法,其特征在于,更 包括依据该起始地址与该结束地址边界决定一数据存取长度, 当该数据存取长度小于该存取数据的该长度时,依据该数据存 取长度更新相应该存取数据的该起始地址与该长度。
10. 根据权利要求8所述的数据传送方法,其特征在于,更 包括依据该起始地址与该起始地址边界由该数据中丢弃 一 多余 数据。
11. 根据权利要求8所述的数据传送方法,其特征在于,该 起始地址边界是在该起始地址之前,且最接近该起始地址的一 地址边界。
12. 根据权利要求8所述的数据传送方法,其特征在于,每一所述区段具有16双字的长度,且该数据间隔具有4双字的长度。
13. 根据权利要求8所述的数据传送方法,其特征在于,由 该起始地址边界至该结束地址边界的该数据具有4双字、8双字 或16双字的长度。
14. 根据权利要求8所述的数据传送方法,其特征在于,更 包括当该存取数据的该长度为l时,存取由该起始地址指定的数 据。
全文摘要
本发明提供一种数据传送方法,同时涉及一种数据传送系统,该数据传送系统包括一总线、一从动装置、一主动装置与一主动接口。主动装置传送包括传输信息的一要求,其中传输信息包括一起始地址与一长度。主动接口由主动装置接收此要求。主动接口依据传输信息决定一第一突发的一突发类型,且通过总线将具有此突发类型的第一突发传送至从动装置。其中,第一突发对齐于从动装置的至少一地址边界。主动接口更由从动装置接收相应第一突发的数据,且将数据传送至主动装置。本发明所述的数据传送方法,可改善总线效率与系统效能。
文档编号G06F13/28GK101241478SQ20081000776
公开日2008年8月13日 申请日期2008年3月7日 优先权日2008年3月7日
发明者李德建, 李文彬 申请人:威盛电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1