Dma传输控制装置和半导体集成电路装置的制作方法

文档序号:6612158阅读:102来源:国知局
专利名称:Dma传输控制装置和半导体集成电路装置的制作方法
技术领域
本发明涉及用于在装置之间传输数据的DMA传输控制装置。
背景技术
传统地,在装置之间直接进行数据传输而不通过CPU的直接存储器访 问(DMA)传输广为人知。DMA传输用于在两个存储器之间直接进行存储 器数据传输的情况。
在DMA传输中,传输所需的信息,包括数据传输源地址、数据传输目 的地址、数据传输大小等,设置在DMA传输控制装置的寄存器等上。然后, 基于CPU等对传输开始的控制而执行传输操作。由于在传输期间CPU没有 必要进行传输控制,与通过CPU进行传输控制的情况相比,可以高速进行 数据传输,并且可以降低CPU的负载。当与寄存器等设置的大小相等的数 据传输完成时,通过设置DMA传输控制装置来断言DMA传输的完成中断。 当CPU探测到该DMA传输的完成中断时,CPU读取DMA传输控制装置 的寄存器等,然后管理DMA传输的结果和状态。
至于与DMA传输控制装置连接的总线,在很多情况下,可以进行突发 传输,在所述突发传输中,通过每个地址的一次指定,以一批的形式传输两 段以上数据的突发传输。此外,当连接总线协议是可以进行读取命令或写入 命令的优先发布的协议时,在访问具有较长等待时间(过渡延迟)的装置时 可以提高传输速率。
在通常的DMA传输中,所需数据以每次设置的大小读取,并在之后写 入。因此,由于开始写入的时序在读取完成之后,当向等待时间长的装置传 输数据时,传输效率不高。
为了处理这样的问题,如图12所示,传统的DMA传输控制装置包括 先进先出(FIFO),管理FIFO中存储的数据量,.并基于该数据量确定写和 读的时序。更清楚地,该传统的DMA传输控制装置判断FIFO中是否有空 闲区域,当FIFO中有空闲区域时,则读取数据。此外,该传统的DMA传 输控制装置判断是否有可以写入FIFO的数据量,当有可以写入FIFO的数 据量时,将数据写入FIFO。对于这种配置,例如,参照日本专利申请公开 特开平No.2001-142841。
但是,在上述传统传输控制装置中,当出现进行命令优先发布的情况时, 由于仅从FIFO的当前状态确定许可命令发布,而没有识别与进行优先发布 的命令有关的数据量,可能发生溢出或下溢。当发生溢出或下溢时,根据连 接总线协议,可能要一直等待到FIFO的状态返回正常为止。但是,在这样 的情况下,连接总线的总线权继续被占有,结果,当与另一个主控的访问发 生竟争时,可能会导致死锁。此外,当没有进行命令的优先发布时,由于数 据的访问等待时间,不能提高数据传输速度。

发明内容
因此,本发明的主要目的在于提供一种DMA传输控制装置,其可以只 根据不发生内部存储器溢出或内部存储器下溢的时序,进行命令的优先发 布,并且可以缩短数据传输时间。
(1 )依照本发明的DMA传输控制装置是进行从传输源侧到传输目的 侧的直接存储器访问传输的DMA传输控制装置,该装置包括暂时存储读取 数据的内部存储器。所述DMA传输控制装置包括读取数据计数器,配置 为通过在每次发布读取命令时逐次累加应当由所述读取命令获取的读取数 据量,并且在每次读取数据时向下计数,来对未读取数据量即尚未传输的数 据量进行计数;和读取命令发布控制单元,配置为判断一读取数据拒绝的确 定量是否等于或大于下一获取目标的读取数据量,并且当判断结果是肯定的 时,允许发布所述读取命令。所述读取命令拒绝的确定量通过从所述内部存
储器的空闲空间减去所述未读取数据量来获得的。在发布所述读取命令时,所述读取命令发布控制单元判断所述内部存储 器的空闲空间QO是否等于或大于所述将要从现在开始获取的读取数据量QR。所述读取命令拒绝的确定量Jr用于该判断。就读取命令拒绝的确定量 Jr而论,Jr-QO-Qr成立。所述读取命令发布控制单元判断在所述下一获取目 标的读取数据量QR和所述读取命令拒绝的确定量Jr之间是否成立Jr>=QR。 在初始阶段,由于所述未读取数据量Qr=0, Jr=QO,因此判断Jr=QO>=QR。 那么,在初始阶段的判断结果通常是肯定的,并且所述读取命令发布控制单 元允许发布所述读取命令。基于该读取命令的发布,在所述读取数据计数器 中,所述读取数据量QR被加到所述未读取数据量Qr ( Qr—Qr+QR)。读取 命令拒绝的确定量Jr (=QO-Qr)减少的量相当于所述未读取数据量Qr增加 的量。另外,关于这次減少之后读取命令拒绝的确定量Jr,所述读取命令发 布控制单元判断Jr=QO-Qr>=QR是否成立(QR表示所述下一获取目标的读 取数据量)。当该判断结果是肯定的时,所述读取命令发布控制单元允许发 布下一读取命令。这就是所述读取命令的优先发布。通过该优先发布,在所 述读取数据计数器中,下一读取数据量QR被加入未读取数据量Qr,结果所 述读取命令拒绝的确定量Jr减少相当于所述读取数据量QR的量。另 一 方面, 当前述判断结果是否定的时,不允许发布所述下 一读取命令。所述内部存储器的空闲空间QO随着所述读取命令的执行和所述写入命 令的执行而动态地改变。当基于所述写入命令的执行,向所述传输目的侧发 送所述从内部存储器中读取的数据时,所述内部存储器的数据量Q减少, 而所述空闲空间QO增加。此外,当基于所述读取命令的执行而从所述传4lT 源侧读取的数据被存储到内部存储器时,所述内部存储器的数据量Q增加, 所述空闲空间QO减少,并且所述未读取数据量Qr减少。所述未读取数据 量Qr的减少对应于所述读取命令拒绝的确定量Jr=QO-Qr的值的增加。在没 有数据从所述内部存储器发布到所述传输目的侧的时序中,所述空闲空间 QO的减少和所述未读取数据量Qr的减少相抵消,读取命令拒绝的确定量Jr
的值维持不变。因此,以上根据读取命令拒绝的确定量Jr进行的判断结果 没有改变,但是,维持否定状态,并且不允许所述下一读取命令。但是,在 从所述内部存储器向所述传输目的側发布数据的时序中,所述空闲空间Q0 增加的量由所述数据发布引起,结果是,所迷读取命令拒绝的确定量Jr的 值增加。当基于该读取命令拒绝的确定量Jr的增加,Jr=Q0-Qr>=QR ( QR 表示下一获取目标的读取数据量)的判断结果是肯定的时,所述读取命令发 布控制单元允许再次发布所述下一读取命令。这也是所述读取命令的优先发 布。另外,在这种情况下,在所述读取数据计数器中,所述下一读取数据量 QR ,皮加入所述未读取lt据量Qr。
在上文中,在进行所述读取命令的优先发布时,由于所述优先发布是在 利用所述读取命令拒绝的确定量Jr预先避免了内部存储器溢出的条件下进 行的,所以可以缩短所述数据传输时间而不导致溢出。
(2)此外,依据本发明的DMA传输控制装置是进行从传输源侧到传 输目的侧的直接存储器访问传输的DMA传输控制装置,该装置包括暂时存 储读取数据的内部存储器。所述DMA传输控制装置包括写入数据计数器, 配置为通过在每次发布写入命令时逐次累加应当由所述写入命令发布的写 入数据量,并且在每次数据被写入时向下计数,来对未写入数据量即尚未传 输的数据量计数;和写入命令发布控制单元,配置为判断所述写入命令拒绝 的确定量是否等于或大于下一发布目标的写入数据量,并且当所述判断结果 是肯定的时,允许发布所述写入命令,所述写入命令拒绝的确定量通过A/v所 述内部存储器中存储的数据量减去所述未写入数据量而获得。
在发布写入命令时,所述写入命令发布控制单元判断所述内部存储器的 数据量Q是否等于或大于将要从现在开始发布的写入数据量QW。所述写入 命令接受/拒绝确定量Jw用于该判断。就所述写入命令接受/拒绝确定量Jw 而论,Jw=Q-Qw成立。所述写入命令发布控制单元判断在所述下一发布目 标的写入数据量QW和所述读取命令接受/拒绝确定量Jw之间是否成立 Jw>=QW。在初始阶,殳,由于所述未写入数据量Qw=0, Jw=Q,因此在初始
阶段数据量Q很小的情况下,在Jw=Q>=QW的判断中的判断结果通常是否 定的。当所述数据量Q增加时,所述判断结果变为肯定的,所述写入命令发布控制单元允许发布所述写入命令。基于该写入命令的发布,在所述写入数据计数器中,所述写入数据量QW被加入所述未写入数据量Qw (Qw—Qw+QW)。所述写入命令接受/拒绝确定量Jw (=Q-Qw)减少的量 等于未写入数据量Qw中增加的量。另外,关于在这次减少之后的所述写入 命令接受/拒绝确定量Jw,所述写入命令发布控制单元判断Jw=Q-Qw〉=QW 是否成立(QW表示下一获取目标的写入数据量)。当该判断结果是肯定的 时,所述写入命令发布控制单元允许发布所述下一写入命令。这就是所述写 入命令的优先发布。基于该优先发布,在所述写入数据计数器中,所述下一 写入数据量QW被加入未写入数据量Qw,结果,所述写入命令接受/拒绝确 定量Jw減少一等于所述写入数据量QW的量。另一方面,当前述判断结果 是否定的时,不允许发布所述下一写入命令。所述内部存储器的数据量Q随着所述读取命令的执行和所述写入命令 的执行而动态地改变。当通过执行所述读取命令从所述传输源侧读取的数据 被存储到内部存储器时,所述内部存储器的数据量Q增加。此外,当通过时,所述内部存储器的数据量Q减少,并且所述未写入数据量Qw减少。所 述未写入数据量Qw的减少对应于所述写入命令接受/拒绝确定量Jw=Q-Qw 的值的增加。在没有数据从所述传输源侧读入所述内部存储器的时序中,所 述数据量Q的减少和所述未写入数据量Qw的减少相抵消,所述写入命令接 受/拒绝确定量Jw的值维持不变。因此,基于所述写入命令接受/拒绝确定量 Jw的判断结果没有改变,但是维持了否定状态,并且不允许下一写入命令。 但是,在从所述数据源側向所述内部存储器发布数据的时序中,所述数据量 Q增加的量由数据发布引起,结果,所述写入命令接受/拒绝确定量Jw的值 增加。当基于所述写入命令接受/拒绝确定量Jw的增力口, Jw=Q-Qw>=QW(QW 表示所述下一获取目标的写入数据量)的判断结果是肯定的时,所述写入命
令发布控制单元允许再次发布所述下一写入命令。这也是所述写入命令的优 先发布。另外,在这种情况下,在所述写入数据计数器中,所述下一发布目
标的写入数据量QW被加入所述未写入数据量Qw。
在上文中,在进行所述写入命令的优先发布时,由于所述优先发布是在 利用所述写入命令接受/拒绝确定量Jw预先避免了所述内部存储器下溢的条 件下进行的,因此可以缩短所述数据传输时间而不导致下溢。
(3)此外,依照本发明的DMA传输控制装置是进行从传输源侧到传 输目的侧的直接存储器访问传输的DMA传输控制装置,该装置包括暂时存 储读取数据的内部存储器。所述DMA传输控制装置包括读取数据计数器, 配置为通过在每次发布读取命令时逐次累加应当由所述读取命令获取的读 取数据量,并且在每次读取数据时向下计数,来对未读取数据量即尚未传输 的数据量进行计数;读取命令发布控制单元,配置为判断一读取命令拒绝的 确定量是否等于或大于所述下一获取目标的读取数据量,并且当所述判断结 果是肯定的时,允许发布所述读取命令,所述读取命令拒绝的确定量是通过 所述读取数据计数器从所述内部存储器中减去所述读取数据计数器的所述 未读取数据量而获得的;写入数据计数器,配置为通过在每次发布写入命令 时逐次累加应当由该写入命令发布的写入数据量并且在每次数据被写入时 向下计数,来对未写入数据量即尚未传输的数据量进行计数;和写入命令发 布控制单元,配置为判断一写入命令拒绝的确定量是否等于或大于所述下一 发布目标的写入数据量,并且当所述判断结果是肯定的时,允许发布所述写 入命令,所述写入命令拒绝的确定量是通过从所述内部存储器中存储的数据 量中减去所述未写入数据量而获得的。
这对应于结合上述(1)和(2)的配置,并且所述读取命令的优先发布 是在基于所述读取命令拒绝的确定量Jr预先避免了所述内部存储器溢出的 条件下进行的。因此,可以缩短所述数据传输时间而不导致溢出。进一步地, 所述写入命令是在利用所述写入命令接受/拒绝确定量Jw预先避免了所述内 部存储器下溢的条件下发布的。因此,可以缩短所述数据传输时间而不导致下溢。根据一方面,在具有上述配置的dma传输控制装置中,进一步包括读 取主控id发布单元,其配置为在发布所述读取命令时输出为每个信道所共 用的读取主控id。当以这样的方式配置时,也可以将不同信道的传输当作来自相同主控的 传输。即使当较晚发布的读取命令的数据比之前发布的读取命令的数据更早 到达时,所述总线连接等也做出调整,以便所述读取数据以发布所述读取命 令的顺序到达。因此,在有两个以上信道的数据传输中,可以维持数据的一 致性。此外,在具有上述配置的dma传输控制装置中,进一步包括读取命 令发布单元,配置为发布所述读取命令;写入命令发布单元,配置为发布写 入命令;读取数据获取单元,配置为获取所述读取数据;写入数据发布单元, 配置为发布写入数据;和写入响应获取单元,配置为获取写入响应;其中所 述读取命令发布单元包括读取命令发布控制单元和读取主控id发布单元,所述写入命令发布单元包括写入命令发布控制单元、写入主控id发布单元, 并且可以在所述读取命令发布单元、所述写入命令发布单元、所述读取凄丈据 获取单元、所述写入数据发布单元和所述写入响应获取单元中进行不同信道 的数据传输过程。当以这样的方式配置时,在两个以上的信道混合的数据传输中,也可以 顺序地进行所述数据传输的每个过程,并且可以缩短所述数据传输时间。此外,在具有上述配置的dma传输控制装置中,进一步包括信道控制 单元,配置为控制以下操作步骤中的至少一个所述读取数据获取单元从所 述读取命令发布单元继承信道号码的步骤;所述写入命令发布单元从所述读 取命令发布单元继承信道号码的步骤;所述写入数据发布单元从所述写入命 令发布单元继承信道号码的步骤;和所述写入响应获取单元从所述写入数据 发布单元继承信道号码的步骤。或者,所述信道控制单元包括用于信道的fifo;所述用于信道的fifo
包括以下以下读取指针中的至少一种用于所述读取命令发布单元的读取指针、用于所述写入命令发布单元的读取指针、用于所述写入数据发布单元的 读取指针和用于所述写入响应获取单元的各读取指针,它们分别独立地操作。当如上述所配置时,在所述数据传输的每次处理中,由于可以正确识别 在当前数据处理完成之后处理后续数据的信道,因此即使当有两个以上信道 时,也可以正确地进行所述数据传输。此外,在具有上述配置的DMA传输控制装置中,利用由前述DMA传 输控制装置设置的单位大小来表达所述读取数据计数器中的未读取数据量、 和/或所述写入数据计数器中的未写入数据量、和/或待发布的所述读取命令 中获取目标的读取数据量、和/或待发布的所述写入命令中发布目标的写入 数据量。当以这样的方式配置时,由于以单位大小计算所述数据量,不需要所述 数据量的详细计算,可以减少所述数据量的计算时间和电路面积。另外,在具有上述配置的DMA传输控制装置中,所述内部存储器由 FIFO组成,所述FIFO的数据宽度为所述单位大小,即使在所述读取数据信 道改变时的最后读取数据不足所述单位大小的情况下,也向前移动写入指 针,并且即使在所述写入数据信道改变时的最后写入数据不足所述单位大小 时,也向前移动读取指针。当如上述所配置时,在信道中的改变中,由于有效数据是从单位大小的 头部开始的,可以很容易地进行数据量的计算。或者,在具有上述配置的DMA传输控制装置中,所述内部存储器由 FIFO组成;所述FIFO具有的数据宽度为所述单位大小,即使当所述读取凄t 据的连续区域的最后读取数据不足所述单位大小时,也向前移动写入指针, 并且即使当所述写入数据的连续区域的最后写入数据不足所述单位大小时, 也向前移动读取指针。当上述所配置时,由于所述有效数据是从所述单位大小的头部开始的,
在数据的不连续部分的头部,可以很容易地计算所述数据量。
此外,根据本发明的半导体集成电路装置包括上述数据传输控制装置
之一;和作为所述数据传输控制装置的传输源侧或传输目的侧的外部存储 器。
当以这样的方式配置时,即使在访问诸如SDRAM的存取等待时间很长 的外部存储器时,也可以通过加速所述命令的优先发布来阻止访问性能恶 化。
另外,本发明还包括适当地组合以上所说明的两个以上方面的配置的 DMA传输控制装置。
根据本发明,即使在进行所述命令的优先发布时,也可以缩短所述数据 传输时间,而不导致所述内部存储器中存储的数据溢出或下溢。此外,由于 不需要基于所述优先发布的命令的量进行控制,因此不需要限制所述优先 发布的数量。此外,由于可以基于设置的单位大小来进行,因此控制所述命 令的发布所需的计算变得更容易。此外,可以正确地进行有两个以上信道的 数据传输。
由于本发明的所述DMA传输控制装置可以在考虑所述内部存储器的状 态的同时,以最优时序进行所述命令的优先发布,因此可以缩短所述数据传 输时间。另外,即使在两个以上信道混合的传输中,由于没有出现由信道改 变引起的退化,因此可以进行灵活传输设置。另外,在包括所述DMA传输 控制功能的总线适配器中,可以缩短在具有不同协议的总线之间的数据传输 时间。


如果理解了以下所描述的实施例,则本发明的其它目的变得清楚,它们 将在所附的权利要求中详细说明。并且,如果本发明被实施,本领域技术人 员将意识到本申请文件没有触及的许多利益。
在附图中 图1是示出根据本发明第 一 实施例的DMA传输控制装置的示意性配置 的方框图;图2示出根据本发明第一实施例的传输控制实例图; 图3是示出根据本发明第二实施例的DMA传输控制装置的示意性配置 的方框图;图4示出根据本发明第二实施例的信道控制实例图; 图5示出根据本发明第二实施例的传输控制实例图; 图6是示出根据本发明第三实施例的DMA传输控制装置的示意性配置 的方框图;图7示出根据本发明第三实施例的信道控制实例图; 图8是示出根据本发明第四实施例的DMA传输控制装置的示意性配置 的方框图;图9是示出根据本发明第五实施例的DMA传输控制装置的示意性配置 的方框图;图10示出根据本发明第五实施例的信道控制实例图; 图11是示出根据本发明第六实施例的DMA传输控制装置的示意性配 置的方框图;图12是示出根据现有技术的DMA传输控制装置的示意性配置的方框图。
具体实施方式
以下,将参照附图,详细说明根据本发明的DMA传输控制装置的实施例。(第一实施例)图1是示出根据本发明第一实施例的DMA传输控制装置100的示意性 配置的方框图。本实施例的DMA传输控制装置100通过总线A与传输源装 置连接,并通过总线B与传输目的装置连接。在图l中,附图标记l表示存
储传输信息的设置寄存器。该设置寄存器1的传输信息包括传输大小、传输
源起始地址、传输目的起始地址,传输源连续区域(continuum region )大小、 传输目的连续区域大小、传输源数据的宽度、传输目的数据的宽度等。附图 标记2表示内部存储器,由总线A向该内部存储器供应读取数据Dr,该内 部存储器向总线B输出写入数据Dw。附图标记11表示读取命令发布控制 单元。附图标记13表示读取数据计数器,其对未读取数据量Qr计数,Qr 示出虽然读取命令发布控制单元11发布读取命令,但是尚未获取的数据量。 附图标记21表示写入命令发布控制单元。附图标记23表示写入数据计数器, 其对未写入数据量Qw计数,Qw示出虽然写入命令发布控制单元21发布写 入命令,但是尚未发布的数据量。该实施例的DMA传输控制装置100向读 取命令发布控制单元11供应内部存储器2的空闲空间量Q0和读取数据计 数器13的未读取数据量Qr,并且向写入命令发布控制单元21供应内部存 储器2的数据量Q和写入数据计数器23的未写入数据量Qw。
另外,存储传输所必需的信息的设置寄存器1不局限于以上所述。可以 将设置寄存器1配置为通过不同的方法给出传输信息,例如从外部终端输入 传输信息。
接下来,说明如上所述的本实施例的DMA传输控制装置的操作。当向 未读取数据量Qr发布读取命令时,读取数据计数器13只增加从读取命令中 获得的读取数据量QR,然后在数据被实际读取时进行递减计数。类似地, 当向未写入数据量Qw发布写入命令时,写入数据计数器23只增加由写入 命令发布的写入数据量QW,然后在数据被实际写入时进行递减计数。
当开始数据传输时,首先,以设置寄存器1为基础确定发布的读取命令, 并计算该读取命令获取的读取数据量QR。通过从内部存储器2的空闲空间 Q0减去读取数据计数器13的未读取数据量Qr,读取命令发布控制单元11 计算读取命令拒绝Jr的确定量(Jr=Q0-Qr)。进一步地,读取命令发布控制 单元11判断该读取命令拒绝的确定量Jr是否等于或大于上述读取数据量
QR ( Jr>=QR)。
当上述的判断结果是肯定的时,即当满足以下条件时,读取命令发布控 制单元11允许发布读取命令。条件如下
读取数据量QR等于或小于读取命令拒绝的确定量Jr,并且 即使内部存储器2中的读取数据增加,也不超过内部存储器2的容量。 所发布的读取命令通过总线A发送到传输源装置,来自传输源装置的 读取数据Dr顺序地通过总线A发送到DMA传输控制装置100。读取数据 Dr —次性写入内部存储器2中。
在写入侧,写入数据计数器23以设置寄存器1中的、用于进行传输的 信道的寄存器为基础,确定待发布的写入命令,并计算要通过该写入命令发 布的写入数据量Qw。通过从内部存储器2的数据量Q減去写入数据计数器 23的未写入数据量Qw,写入命令发布控制单元21计算写入命令接受/拒绝 确定量Jw ( Jw=Q-Qw)。进一步地,写入命令发布控制单元21判断该写入 命令接受/拒绝确定量是否等于或大于上述的写入数据量QW(Jw〉二QW)。
当上述的判断结果是肯定的时,即当满足以下条件时,写入命令发布控 制单元21允许发布写入命令。条件如下
写入数据量QW等于或小于写入命令接受/拒绝确定量Jw,并且 即使从内部存储器2中发布写入数据,内部存储器2的数据量也不为负数。
所发布的写入命令通过总线B发送到传输目的装置。内部存储器2根 据该写入命令发布写入数据Dw。所发布的写入数据Dw通过总线B发送到 传输目的装置。
图2示出了传输的一个实例。假设设置寄存器2的设置如下 传输大小为12字节; 读取数据宽度为1字节; 写入数据宽度为1字节;并且
所有的连续区域被传输。此外,还假设内部存储器2的容量为IO字节,并且以连接总线A和B的协议为基础,将根据一条命令的数据突发个数定 义为4次或更少。在下文中将概括论述图2的内容。当空闲空间Q0被加到内部存储器2 的数据量Q时,结果总是10 (Q+Q0=10)。读取命令拒绝的确定量Jr为通 过从空闲空间Q0中减去未读取数据量Qr而获得的数量(Jr=Q0-Qr)。写入 命令接受/拒绝确定量Jw为通过从数据量Q中减去未写入数据量Qw而获得 的数量(Jw=Q-Qw)。白圈意味着1字节的读取数据Dr被读入内部存储器 2。黑圏意味着从内部存储器2中发布l字节的写入数据Dw。当读取命令拒 绝的确定量Jr比读取数据量QR大4字节以上时,允许读取命令(优先发布)。 当写入命令接受/拒绝确定量Jw比写入数据量QW大4字节以上时,允许写 入命令(优先发布)。首先,在图2的(a)处,读取命令发布控制单元11以待发布的读取命 令为基础,计算待获取的读取数据量QR。在此,基于读取数据宽度(1字 节)和突发的最大个数(4次),该读取数据量QR被确定为为4字节(QR=1 x4=4)。此外,通过从10字节的内部存储器2空闲空间Q0中减去0字节 的未读取数据量Qr,读取命令发布控制单元11计算出读取命令拒绝的确定 量Jr (=QO-Qr=10-0)为10字节。比较该读取命令拒绝的确定量Jr与上述 读取数据量QR (=4字节),Jr>=QR (10>4)成立。因此,可以认为即4吏 在读取数据时,内部存储器2也没有溢出(可以认为可以避免溢出)。因此, 读取命令发布控制单元12允许发布读取命令。此外,读取数据计数器13以 读取命令的发布为基础,将计数得到的未读取数据量Qr增加4字节 (Qr—Qr+QR=0+4=4 )。接下来,在图2的(b)处,读取命令发布控制单元11以待发布的读取 命令为基础,确定待获取的读取数据量QR为4字节。进一步地,通过从内 部存储器2的空闲空间QO (IO字节)中减去未读取数据量Qr (4字节),
读取命令发布控制单元11计算出读取命令拒绝的确定量Jr (=Q0-Qr=10-4) 为6字节。比较该读取命令拒绝的确定量Jr(6字节)与上述读取数据量QR (4字节),Jr>=QR (6>4)成立。因此,可以认为即使在读取数据时,内 部存储器2没有溢出(可以认为可以避免溢出)。因此,读取命令发布控制 单元11允许再次发布读取命令。虽然这时没有完成前一次的读取命令,但 是可以通过发布该读取命令作为优先发布来缩短读取数据获取过程所需的 时间。写入命令发布控制单元21计算写入数据量Qw。写入数据量Qw是以待 发布的写入命令为基础而发布的。在此,基于写入数据宽度(1字节)和突 发的最大个数(4次),确定写入数据量Qw为4字节(QW=1 x 4=4 )。当 以发布读取命令为基础获取读取数据Dr时,数据在内寄存器2中积累。在 图2的(c)处,虽然内部存储器2的数据量Q为4字节,从该数据量Q中 减去0字节的未读取数据量Qw,计算出写入命令接受/拒绝确定量Jw (=Q-Qw=4-0)为4字节。比较该写入命令接受/拒绝确定量Jw (4字节) 和上述写入数据量QW (4字节),Jw〉二QW成立。因此,可以认为确保写 入所必需的数据(可以认为可以避免下溢)。因此,写入命令发布控制单元21允许发布写入命令。此外,在图2的(d)处,前一次的读取命令尚未完成。但是,由于内 部存储器2的数据量Q为5字节,通过从该数据量Q中减去未写入数据量 Qw ( 1字节),写入命令发布控制单元21计算出写入命令接受/拒绝确定量 Jw ( =Q-QW=5-1 )为4字节。比较该写入命令接受/拒绝确定量Jw ( 4字节) 与上述写入数据量QW (4字节),Jw〉-QW成立。因此,可以确i人写入所 必需的数据量。因此,写入命令发布控制单元21进行写入命令的优先发布。 因此,顺序地执行包括优先发布的读取和写入。另外,这些说明仅仅是实例,并不局限于以上所述。根据以上说明的方 法,可以根据内部存储器的状态以最优时序进行命令的优先发布,并且可以
缩短数据传输时间。 (第二实施例)图3是示出根据本发明第二实施例的DMA传输控制装置IOO的示意性 配置的方框图。就本实施例的DMA传输控制装置100而论,读取命令发布 单元10和读取数据获取单元14通过连接到传输源装置的总线A连接,而 写入命令发布单元20、写入数据发布单元24和写入响应获取单元25通过 连接到传输目的装置的总线B连接。设置寄存器1存储每个信道的传输信息。 就传输信息而论,与第一实施例类似。读取命令发布单元10包括读取命令 发布控制单元11和读取主控ID发布单元12,所述读取主控ID发布单元12 发布各信道共用的读取主控ID;而写入命令发布单元20包括写入命令发布 控制单元21和写入主控ID发布单元22,所述写入主控ID发布单元22发 布各信道共用的写入主控ID。从读取数据获取单元14向内部存储器2供应 读取数据Dr,内部存储器2还向写入数据发布单元24输出写入数据Dw。 附图标记3为信道控制单元,其控制由所有部分传输的信道。附图标记31 表示的FIFO存储由读取命令发布单元10执行的信道信息,附图标记32表 示的FIFO存储由读取数据获取单元14执行的信道信息,附图标记33表示 的FIFO存储由写入命令发布单元20执行的信道信息,附图标记34表示的 FIFO存储由写入数据发布单元24执行的信道信息。至于向读取命令发布控 制单元11供应内部存储器2的空闲空间Q0和读取数据计数器13的未读取^ 数据量Qr,和向写入命令发布控制单元21供应内部存储器2的数据量Q和 写入数据计数器23的未写入数据量Qw,与第一实施例类似。由于其它配置 与第一实施例类似,因此省略关于其的说明。接下来,说明如上配置的该实施例的DMA传输控制装置的操作。当读 取命令发布单元10向总线A发布读取命令时,读取数据计数器13将未读 取数据量Qr增加由读取命令获取的读取数据量QR,并且在每次读取数据获 取单元14从总线A获取读取数据Dr并将读取数据Dr存储到内部存储器2 中时,进行递减计数。类似地,当写入命令发布单元20向总线B发布写入 命令时,写入数据计数器23将由写入命令发布的写入数据量QW与未写入 数据量Qw相加,并且在每次写入数据发布单元24从内部存储器2中读取 写入数据并向总线B发布该写入数据时,进行递减计数。接下来,说明在本实施例的D M A传输控制装置中进行数据传输的方法。 首先,由读取命令发布单元10指派一信道,信道控制单元3向该信道传输 数据。读取命令发布单元10以设置寄存器1的被指派信道的寄存器为基础, 确定待发布的读取命令,并以该读取命令为基础,计算所获取的读取数据量 QR。在通过从内部存储器2的空闲间Q0中减去读取数据计数器13的未读 取数据量Qr ( Jr=QO-Qr)而计算出读取命令拒绝的确定量Jr之后,读取命 令发布控制单元11判断该读取命令拒绝的确定量Jr是否等于或大于上述读 取数据量QR ( Jr>=QR)。当上述判断结果是肯定的时,即当满足以下条件时,读取命令发布控制 单元11允许发布读取命令。条件包括如下读取数据量QR等于或小于读取命令拒绝的确定量Jr,并且 即使内部存储器2中的读取数据增加,也没有超过内部存储器2的容量。 在读取命令发布的同时,读取主控ID发布单元12发布读取主控ID, 用来识别发起传输的主控。在此,即使是不同的信道,读取主控ID发布单 元12发布相同的读取主控ID。此外,读耳又主控ID发布单元12将以读取命 令为基础的所获取读取数据数量QR加到读取数据计数器13的未读取数据 量Qr (Qr—Qr+QR)。进一步地,在发布每个信道的第一读取命令的同时, 读取主控ID发布单元12将信道识别信息存储到用于该信道的FIFO中。所发布的读取命令通过总线A发送到传输源装置,并且来自传输源装 置的读取数据顺序地通过总线A发送到读取数据获取单元14。总线A可以 保留数据Dr,进一步检查通过总线A的读取命令的读取主控ID,并在发布 了两个以上具有相同的读取主控ID的读取命令时,做出调整,以发布命令 的顺序向主控发送读取数据Dr。在此,当较晚发布的读取命令的数据比较 早发布的读取命令的数据更早到达时,总线A保留该数据而不向主控发送 该数据。然后,当较早发布的读取命令的数据到来时,总线A向主控发送 该较早发布的数据,然后向主控发送较晚发布的被总线A保留的数据。因 此,在同时有两个以上信道的情况下,保持了数据传输中数据的完整性。当完成获取数据或处于初始状态时,读取数据获取单元14根据FIF031 的最前信道的标识号确定所执行的信道,并开始获取读取数据。读取数据获 取单元14参照设置寄存器1中对应信道的寄存器的内容,确定待获取读取 数据的数量和地址位置。另外,由于在发布读取命令的时候,读取主控ID 为信道所共用,所以即使当较晚发布另一个信道的读取命令时,读取数据也 以发布命令的顺序到达读耳又数据获取单元14。待获取的数据被一次性写入 内部存储器2,这时读取数据计数器13将未读取数据量Qr减一(Qr—Qr-l )。 此外,读取数据获取单元14对于每个信道将用于信道的信道标识号与第一 读取数据获取同时存储到用于该信道的FIFO 32。当完成发布命令或处于初始状态时,写入命令发布单元20根据FIF032 的最先信道的标识号确定所执行的信道,然后开始发布写入命令。即写入命 令发布单元20首先以设置寄存器1的上述指派信道的寄存器为基础,确定 待发布的写入命令,并以该写入命令为基础,计算待发布的写入数据量QW。 在通过从内部存储器2的数据量Q中减去写入数据计数器23的未读取数据 量Qw,计算出写入命令接受/拒绝确定量Jw (Jw=Q-Qw)之后,写入命令 发布控制单元21判断该写入命令接受/拒绝确定量Jw是否等于或大于上述 写入数据量QW (Jw〉=QW)。当上述判断结果是肯定的时,即当满足以下条件时,写入命令发布控制 单元21允许发布写入命令。条件如下写入数据量QW等于或小于写入命令接受/拒绝确定量Jw,并且即使从内部存储器2中发布写入数据,内部存储器2的数据量也不为负 数。虽然在发布写入命令的同时,写入主控ID发布单元22发布用于识别进行传输的主控的写入主控ID,但是即使在不同信道的情况下,写入主控ID 发布单元22也发布相同的写入主控ID。此外,写入主控ID发布单元22将 以写入命令为基础发布的写入数据量加到写入数据计数器23的未写入数据 量Qw。进一步地,在发布每个信道的第一写入命令的同时,写入主控ID 发布单元22将信道标识号存储到用于该信道的FIF033。当已经完成发布数据或处于初始状态时,在根据FIF033的最先信道的 标识号确定所执行的信道之后,写入数据发布单元24开始发布写入数据。 根据设置寄存器中对应该信道的寄存器来确定待发布的写入数据的数量和 地址位置。虽然从内部存储器2接收的写入数据被发送到总线B,但是这时 写入数据计数器将未写入数据量Qw减一 (Qw—Qw-l)。进一步地,在发 布每个信道的第一写入命令的同时,写入数据发布单元24将信道标识号存 储到用于该信道的FIFO 34。所发布的写入命令和写入数据通过总线B发送到传输目的装置,而来 自传输目的装置的写入响应信号顺序地通过总线B发送到写入响应获取单 元25。总线B可以保留写入响应信号,检查经过总线B的写入命令的写入 主控ID,并当写入数据发布单元24发布了具有相同写入主控ID的两个以 上写入命令时,做出调整,来将写入响应以发布命令的顺序向DMA传输控 制装置100发送写入响应。当较晚发布的写入命令的响应比较早发布的写入 命令的响应更早到达时,总线B保留该响应,而不向DMA传输控制装置 100发送该响应。然后,当较早发布的写入命令的响应到来时,总线B向 DMA传输控制装置100发送较早发布的响应,然后向主控发送被总线B保 留的响应。因此,在同时有两个以上信道的情况下,保持了数据传输的完整 性。当已经完成获取响应或处于初始状态时,写入响应获取单元25根据 FIF0 34的最先信道的标识号确定所执行的信道,并开始获取响应。根据设 置寄存器1中对应信道的寄存器,来确定获取的响应的数量。当获取了必需 数量的响应时,写入响应获取单元25确定对应信道的数据传输完成,并#丸 行完成中断和其它过程。另外,由于在发布写入命令的时候,写入主控ID 为信道所共用,因此即使当稍后发布另一个信道的写入命令时,响应也以发 布命令的顺序到达写入响应获取单元25。图4示出了控制信道的实例。该图示出了在以CHO、 CH1、 CH2、 CH3 和CH4的顺序进行的DMA传输中,在某一时刻,每个控制单元中#1传送的 信道及其FIFO的状态。每个信道的状态如下,即CHO处于写入数据的发 布过程完成(complete up)和写入响应的获取正在进行的状态;CH1处于读 取数据的发布和写入命令的发布过程完成、正在进行写入数据的状态;CH2 处于读取命令的发布过程完成、正在进行读取数据的获取、而尚未执行写入的状态;CH3处于读取命令发布过程完成、尚未获取读取数据的状态;CH4 处于正在进行读取命令的发布、而尚未获取读取数据的状态。在每个控制单 元中,当传输当前信道完成时,数据从接下来要执行的信道所连接到的FIFO 中发送。因此,可以根据正确的时序进行信道控制。图5示出了利用两个以上信道传输的一个实例。在该实例中,将设置寄 存器1设置为满足以下条件在信道CH0中传输大小为16字节;读取数据宽度为2字节;并且写入数据宽度为2字节。在信道CH1中传输大小为8字节;读取数据宽度为2字节;并且写入数据宽度为4字节。在每个信道中所有的连续区域被传输。此外,内部存储器2的容量假设为20字节,并且基于所连接的总线A 的协议和所连接总线B的协议,假设由一条命令引起的数据突发的个数为4 次。假设以CHO和CH1的顺序进行传输。首先,在图5的(a)处,读取命令发布控制单元11以待发布的CHO读取命令为基础计算待获取的读取数据量QR。在此,基于读取数据宽度(2字节)和突发的最大个数(4次),确定该读取数据量QR为8字节(QR=2 x4=8)。此外,通过从20字节的内部存储器2的空闲空间Q0中减去0字 节的未读取数据量Qr,读取命令发布控制单元11计算出读取命令拒绝的确 定量Jr ( =Q0-Qr=20-0 )为20字节。比较该读取命令拒绝的确定量Jr和上 述的读取数据量QR (=8字节),Jr>=QR ( 20〉8 )成立。因此,可以认为 即使在读取数据时,内部存储器2也没有溢出(可以认为可以避免溢出)。因 此,读取命令发布控制单元11允许发布读取命令。此外,读取数据计数器 13以发布读取命令为基础,将未读取数据量Qr增加8字节 (Qr—Qr+QR=0+8=8 )。接下来,在图5的(b)处,读取命令发布控制单元11以发布的读取命 令为基础确定待获取的读取数据量QR为8字节。进一步地,通过从内部存 储器2的空闲空间Q0 (20字节)中减去未读取数据量Qr (8字节),读取 命令发布控制单元11计算出读取命令拒绝的确定量Jr ( =Q0-Qr=20-8 )为 12字节。比较该读取命令拒绝的确定量Jr ( 12字节)和上述的读取数据量 QR ( 8字节),Jr>=QR ( 12>8 )成立。因此,可以认为即使在读取数据时, 内部存储器2也没有溢出(可以认为可以避免溢出)。因此,读取命令发布 控制单元11允许再次发布读取命令。虽然这时尚未完成前一次的读取命令, 但是可以通过将读取命令发布为优先发布来缩短获取读取数据所需的时间。 写入命令发布控制单元21以待发布的写入命令为基础计算所发布的写
入数据的数据量(以下成为"写入数据量QW")。在此,基于写入数据宽度(2字节)和突发的最大个数(4次),确定写入数据量QW为8字节(QW-2 x4=8)。当以发布读取命令为基础获取读取数据Dr时,数据在内部存储器 2中积累。在图5的(c)处,虽然内部存储器2的数据量为8字节,写入命 令发布控制单元21从该数据量Q中减去0字节的未读取数据量Qw,计算 出写入命令接受/拒绝确定量Jw为8字节(=Q-Qw=8-0 )。比较该写入命令 接受/拒绝确定量Jw( 8字节)和上述的写入数据量QW( 8字节),Jw>=QW 成立。因此,可以认为确保需要写入的数据(可以认为可以避免下溢)。因 此,写入命令发布控制单元21允许发布写入命令。此外,在图5的(d)处,虽然读取命令发布控制单元11在CHO的传 输期间发布CH1的读取命令,由于未读取数据量Qr和内部存储器2的空闲 空间Q0为信道所共用,由读取命令发布控制单元11进行发布控制的方法 不随信道而变化。此外,在图5的(e)处,虽然在CHO的传输期间发布 CH1的写入命令,如在读取时的情况,写入命令发布控制单元21进行发布 控制的方法不随信道而变化。因此,可以无信道差别地顺序执行包括优先发 布的读if又和写入。另外,这些说明仅仅是实例。如果总线协议不需要写入响应,那么写入 响应获取单元25可以省略。此外,写入主控ID可以是每个信道中的固有ID。 同样地,配置不局限于以上所述。根据本实施例,在每次读取或写入的处理中,由于可以根据内部存储器 的状态以最优的时序进行多个信道的传输,即使在两个以上信道的传输被混 合时,也可以缩短数据的传输时间。 (第三实施例)图6是示出根据本发明第三实施例的DMA传输控制装置IOO的示意性 配置的方框图。在图6中,与用于第二实施例的图3相同的附图标记意味着 相同的配置元件。在该实施例中,在所有的部分中控制数据传输的信道控制
单元3具有用于该信道的FIF0 4。由于其它配置与第二实施例类似,因此省 略关于其的说明。接下来,说明该实施例的DMA传输控制装置中的数据传输的方法。除 了信道控制,关于数据处理方法,与第二实施例完全相同。说明信道控制的 方法。首先,数据所传输到的信道被写入用于信道的FIFO 4中。用于信道 的FIF0 4具有针对以下每个控制单元的读取指针读取命令发布单元10、 读取数据获取单元14、写入命令发布单元20、写入数据发布单元24和写入 响应获取单元25。每个处于传输完毕状态或初始状态的控制单元,逐步向 前移动读取指针,并开始读取该指针所指示的信道的传输过程。用于信道的 FIFO 4中所写入的信道号码以针对读取命令发布单元10、读取数据获取单 元14、写入命令发布单元20、写入数据发布单元24和写入响应获取单元 25的读取指针的顺序读取。因此,每个信道的传输都正确进行。图7示出了信道控制的实例。该图示出了在以CH0、 CH1、 CH2、 CH3 和CH4的顺序进行的DMA传输中,在特定时间内在每个控制单元中传输的 信道的状态。每个信道的状态如下CH0处于发布写入数据的过程完成、而正在进行写入响应获取的状态;CH1处于发布读取数据的过程完成、而正在进行写入命令和写入数据发 布的状态;CH2处于发布读取命令的过程完成、正在进行读取数据获取,而尚未执 行写入的状态;CH3处于发布读取命令的过程完成、而尚未获取读取数据的状态;而虽然每个控制单元向前移动读取指针,并指派当目前信道的传输完成时 接下来执行的信道,但是由于针对该信道直到前一控制单元的处理已经完 成,因此可以根据正确的时序进行传输。另外,这些说明仅仅是实例。如果总线协议不需要写入响应,则可以省
略写入响应获取单元25。此外,写入主控ID可以是每个信道中的固有ID。 同样地,配置不局限于以上所述。根据该实施例,在每次读取或写入的处理中,由于可以根据内部存储器 的状态以最优时序进行多个信道的传输,因此即使当两个以上信道的传输混 合时,也可以缩短数据的传输时间。 (第四实施例)图8是示出根据本发明第四实施例的DMA传输控制装置IOO的示意性 配置的方框图。在图8中,与第三实施例的图6中相同的附图标记意味着相 同的配置元件。在该实施例中,写入响应获取单元25具有针对每条信道的 响应计数器26。由于其它配置与第三实施例相同,因此省略关于其的说明。接下来说明在本实施例的DMA传输控制装置中进行数据传输的方法。 除了关于写入响应的操作,该方法与第三实施例相同。从现在开始,讨论与 第三实施例不同的部分。首先,用于信道的FIFO 4具有针对以下每个控制 单元的读取指针读取命令发布单元10、读取数据获取单元14、写入命令 发布单元20和写入数据发布单元24。但是,用于信道的FIFO 4不具有针对 写入响应获取的读取指针。因此,用于信道的FIFO 4不具有控制写入响应 获取单元25的信道,并能够接收所有信道的写入响应。此外,在发布写入命令的时候,写入主控ID发布单元22发布不为所有 信道所共用、而是信道之间彼此不同的ID。因此,返回写入响应的顺序并 不需要按照发布写入命令的顺序。用于写入响应获取单元25中每个信道的响应计数器26在信道发布写入 命令时,逐次累加计数,而在获取了该信道的写入响应时,向下计凄史。在该 信道的所有需要的传输都被发布的状态下,当该信道的响应计数器26设置 为0时,可以识别该信道的传输完成。另外,这些说明仅仅是实例,并不局 限于此。根据该实施例,在每次读取或写入的处理中,可以根据内部存储器的状
态,以最优时序进行每个信道的传输。因此,即使当两个以上信道的传输混 合时,也可以缩短数据的传输时间,并且可以以向信道的写入较早完成的顺序来通知信道的DMA传输完成。 (第五实施例)图9是示出根据本发明第五实施例的DMA传输控制装置IOO的示意性 配置的方框图。在图9中,与第三实施例的图6相同的附图标记意味着相同 的配置元件。在该实施例中,提供用于数据的FIF0 2a代替内部存储器2, FIFO 2a在从读取数据获取单元14中供应读取数据Dr时,向写入数据发布 单元24输出写入数据Dw。此外,向读取命令发布控制单元11通知用于数 据的FIFO 2a的空闲空间的段数N0 ,并向写入命令发布控制单元21通知用 于数据的FIF0 2a的数据量的段数N。由于其它配置与第三实施例类似,因 此省略关于其的说明。接下来,说明在该实施例的DMA传输控制装置中进行数据传输的方法。 除了涉及数据量计算的部分,该方法与第三实施例完全相同。在用于数据的 FIFO 2a中,特定的单位大小为FIFO的数据宽度。当从总线A中获取的读 取数据达到上述单位大小时,读取数据获取单元14将读取数据Dr写入用于 数据的FIF0 2a。但是,即使在未达到上述单位大小时,在信道改变的时候 或在从读取数据的一连续区域跳转到随后的连续区域的时候,读取数据Dr 也被写入用于数据的FIFO 2a。读取数据计数器13对未读取数据量Qr以上述单位大小为单位的未读取 数据量个数Nr计数。在发布读取命令的时候,读取数据计数器13顺序地将 个数NR,或者将命令中的读取数据量QR除以单位大小得到的商,加上计 数器值。当在读取数据量个数NR中出现分数时,读取数据计数器13上舍 入(round up)读取数据量个数NR,并实施上述加法过程。此外,读取数 据计数器13根据数据从读取数据获取单元14中写入用于数据的FIFO 2a的 时序,递减计凄t。
另外在写入数据计数器23中,以类似的方法进行计数器控制。写入数 据计数器23对未写入数据量Qw以上述单位大小为单位的未写入数据量个 数Nw计数。在发布读取命令的时候,写入数据计数器23顺序地将个数(在 下文中,称为"写入数据量NW,,)、或者将命令中的写入数据量QW除以 单位大小时得到的商,加上计数器值。当写入数据量个数NW中出现分数时, 写入数据计数器23上舍入写入数据量个数NW,并将其加入计数器值。此 外,写入数据计数器根据数据从用于数据的FIFO 2a向数据发布单元24写 入数据的时序,递减计数。读取命令发布单元10以设置寄存器1的对应信道的寄存器为基础,确 定待发布的读取命令,并以该读取命令为基础,计算待获取的读取数据量个 数NR。当读取数据量个数NR中出现分数时,读取命令发布单元10上舍入 读取数据量个数NR。通过从用于数据的FIFO 2a的空闲空间的段数N0中 减去读取数据计数器13的未读取数据量个数Nr,读取命令发布控制单元11 计算读取命令拒绝的确定量jr(=N0-Nr)。然后,读取命令发布单元10判断 该读取命令拒绝的确定量Jr是否等于或大于上述读取数据量个数NR (Jr〉=NR)。当上述判断结果是肯定的时,即当满足以下条件时,读取命令发布单元IO允许发布写入命令。条件如下读取数据量个数NR等于或小于读取命令拒绝的确定量Jr,并且 即使当用于数据的FIFO 2a中的读取数据增加时,用于数据的FIFO 2a也没有溢出。写入命令发布单元20以设置寄存器1的对应信道的寄存器为基础,确 定待发布的写入命令,并以该写入命令为基础,计算所发布的写入数据量的 个数(在下文中,称为"写入数据量个数NW,,)。当计算时在写入数据量 个数NW中出现分数时,写入命令发布单元20上舍入该值。写入命令发布 控制单元21从用于数据的FIFO 2a的数据量的段数N中减去写入数据计数
器23的未写入数据量个数Nw,并计算写入命令接受/拒绝确定量Jw (=N-Nw),然后判断计算出的写入命令接受/拒绝确定量Jw是否等于或大于上述写入数据量个数NW (Jw>=NW)。当上述的判断结果是肯定的时,即当满足以下条件时,写入命令发布单元20允许发布写入命令。条件如下写入数据量个数NW等于或小于写入命令接受/拒绝确定量Jw,并且 即使当发布写入数据时,用于数据的FIFO 2a中的写入数据没有下溢。 图10示出了利用该实施例进行传输的实例。在该实例中,将设置寄存器设置为满足以下条件在信道CHO,传输大小为18字节,读取数据宽度为2字节,写入数据宽度为2字节;在信道CH1,传输大小为8字节,读取数据宽度为2字节,写入数据宽 度为4字节;所有信道中的任意信道传输连续的区域;单位大小为4字节;用于数据的FIF0 2a中的数据宽度为4字节,容量为5段; 以所连接总线A的协议和所连接总线B的协议为基础, 一条命令引发 的数据突发的个数指定为4次;并且 以CH0和CH1的顺序进行传输。首先,在图10的(a)处,读取命令发布控制单元11以待发布的CH0 读取命令为基础,计算待获取的读取数据量个数NR。以读取数据宽度(2 字节)和突发的最大个数(4次)为基础,确定读取数据量QR为8字节。 该读取数据量QR等于两个数据单位大小(NR=8/4=2)。此外,读取命令发 布控制单元11从用于数据的FIFO 2a的空闲空间的段数N0 ( 5 )中减去未 读取数据量个数Nr (0),然后计算出读取命令拒绝的确定量Jr为5段 (=N0-Nf5-0)。比较该读取命令拒绝的确定量Jr和上述读取数据量个数Nr(二2段),Jr>=NR ( 5>2)成立。因此,可以认为即使当读取数据时,用 于数据的FIF0 2a没有溢出(可以认为可以避免溢出)。因此,读取命令发 布控制单元11允许发布读取命令。此外,读取数据计数器13以命令的发布 为基础,将未读取数据量个数Nr增加2段(Nr—Nr+NR=0+2=2 )。接下来,在图10的(b)处,读取命令发布控制单元11确定要基于待 发布读取命令获取的读取数据量QR为8字节。这意味着按照所述单位大小, 读取数据量个数NR为2段。此外,通过从用于数据的FIFO 2a的空闲空间 的段数N0 ( 5段)中减去未读取数据量个数Nr ( 2段),读取命令发布控 制单元11计算出读取命令拒绝的确定量Jr (=N0-Nr=5-2)为3段。比较该 读取命令拒绝的确定量Jr和上述读取数据量个数Nr ( =2段),Jr〉=NR(3>2) 成立。因此,可以认为即使当读取数据时,用于数据的FIF0 2a没有溢出(可 以认为可以避免溢出)。因此,读取命令发布控制单元11允许发布读耳又命 令,虽然这时没有完成前一次的读取命令,但是可以通过发布读取命令作为 优先发布来缩短读取数据获取所需的时间。接下来,在图10的(c)处,读取命令发布控制单元11确定要基于待 发布读取命令获取的读取数据量个数为2字节(18-8-8=2)。因此,所确定 的读取数据量个数NR没有达到单位大小一一4字节。但是,由于它是CH0 的最后读取数据,读取命令发布控制单元11通过上舍入计算读取数据量个 数NR,然后认为所计算的读取数据量个数NR为一个单位大小(NR=1)。 此外,通过从用于数据的FIFO 2a的空闲空间的段数NO ( 5段)中减去未读 取数据量个数Nr(4段),读取命令发布控制单元11计算出读取命令拒绝 的确定量Jr (=N0-Nr=5-4)为1段。比较该读取命令拒绝的确定量Jr和上 述读取数据个数Nr (=1段),Jr〉Nr成立。因此,可以认为即使当读取数 据时,用于数据的FIF0 2a没有溢出(可以认为可以避免溢出)。因此,读 取命令发布控制单元11允许发布读取命令,然后继续进行优先发布。写入命令发布控制单元21以待发布的写入命令为基础,计算所发布的
写入数据量个数NW。基于写入数据宽度(2字节)和突发的最大个数(4 次),写入命令发布控制单元21确定写入数据量QW为8字节。该写入数 据量QW等于2个数据单位大小(NW=8/4=2)。当以读取命令的发布为基 础,继续获取读取数据Dr时,数据在用于数据的FIF0 2a中积累。在图10 的(d)处,虽然用于数据的FIFO 2a的数据量段数N为2段,但是通过从 该数据量中减去未写入数据量个数Nw (0段),写入命令发布控制单元21 计算出写入命令拒绝的确定量Jw为8段(=N-Nw=2-0 )。比较该写入命令 接受/拒绝确定量Jw和上述写入数据量个数NW (=2字节),Jw>=NW成 立。因此,可以认为确保写入所需的数据(可以认为可以避免下溢)。因此, 写入命令发布控制单元21允许发布写入命令。在图10的(e)处,虽然待获取的读取数据为2字节,并且不能达到4 字节一一单位大小,但是由于它是CH0的最后读取数据,因此用于数据的 FIFO 2a向前移动指针。据此,用于数据的FIFO 2a的空闲空间的段数N0 和用于数据的FIFO 2a的数据量的段数N被改变。从在图10的(f)处发布的写入命令开始,基于写入数据宽度和突发的 最大个数,写入命令发布控制单元21计算出基于接下来待发布的写入命令 的写入数据量个数NW为2字节。虽然该写入数据量个数NW没有达到单 位大小的4字节,但是由于该数据是CH0的最后写入数据,因此写入命令 发布控制单元21通过上舍入计算写入数据量个数NW,并认为其为一个单 位大小。在图10的(g)处,根据图10 (e)处的读取数据,数据量的FIFO 段数N为3段;通过从该数据量的FIFO段数N中减去2段的未写入数据量 个数,写入命令发布控制单元21计算出写入数据量个数NW为l段。将其 与上述写入数据量个数NW(=1段)进行比较,可以认为确保写入所需的 数据(可以认为可以避免下溢)。因此,写入命令发布控制单元21允许发 布写入命令。这时,虽然从用于数据的FIF0 2a中读取4字节的数据,但是 由于只有2字节的数据有效,因此这2字节的数据被用作写入数据。因此, 即使在出现单位大小分数时,也可以正确识别数据量,并且可以执行数据传 输。另外,这些说明仅仅是实例,如果总线协议不需要写入响应,则可以省略写入响应获取单元25。此外,写入主控ID可以为每个信道中的固有ID。 同样地,配置不局限于以上所述。根据该实施例,在每次读取和写入的处理中,可以根据内部存储器的状 态以最优时序进行多个信道的传输。此外,可以降低用于计算最优时序的计 算时间和电路面积。 (第六实施例)图11是示出根据本发明第六实施例的半导体集成电路装置200的示意 性配置的方框图。本实施例的半导体集成电路装置200包括集成电路40、 SDRAM50和外围装置60。集成电路40包括CPU41、 DAM传输控制装置 100、存储器控制器42和外围控制器43,它们通过总线44互相连接。存储 器控制器42连接到SDRAM50,而外围控制器43连接到外围装置60。此外, DMA传输控制装置100包括本发明的命令优先发布功能,该功能在第一到 第五实施例之 一 中说明。在半导体集成电路装置200中,考虑利用DMA传输控制装置100进行 从SDRAM50到外围装置60的数据传输的情况。在DMA传输控制装置100 中发布命令时,基于第一到第五实施例中之一所说明的方法,以最优时序优 先发布命令。虽然读取命令通过存储器控制器42发送到SDRAM50,在那 种情况下,SDRAM50在等待一定时长之后,向DMA传输控制装置100返 回读取数据Dr。因此,传输速率变慢。但是,在该实施例中,当通过命令 的优先发布,接收两个以上读取命令时,接收后一个的读取命令,并且并行 进4亍对后一个读取命令的处理和对前一个读取命令的处理。因此,在DMA 传输控制装置100中,可以实现这样的操作在发布两个以上读取命令之后, 立即返回两个以上读取数据Dr, 乂人而阻止传输速率降低。
此外,在向外围装置60发布写入命令时,可以类似地通过以最优时序优先发布命令来提高吞吐量。此外,在进行从外围装置60到SDRAM50的 数据传输的情况下,可应用相同的方法。因此,本发明不仅在像SDRAN这样的外部存储器中有效,而且在等待 时间长的外围装置中也有效,因此,很显然,本发明不局限于外部存储器。 本发明在访问位于集成电路40外部的、等待时间很长的内部功能块中也有 效。自然地,关于实现本发明的方法,也可以通过对上述实施例中所描述的 两个以上配置进行组合来实现本发明。此外,也可以根据协议采用不同的配 置。例如,当协议是根据写入响应请求来返回写入响应时,将针对每个信道 的ID用作写入主控ID,并且在写入发布时,将写入响应请求信号加入每个 信道的最后传输。从而,写入响应获取单元可以不利用计数器而识别信道传 输完成。此外,即使在使用安装有总线适配器的集成电路来代替具有本发明 的功能的DMA传输控制装置的情况下,同样可以阻止访问性能恶化。因此, 这些所指示的配置不是限制性的。另外,上述本发明的实施例中所采用的技术和配置是实例,本发明不局 限于此。虽然详细说明了关于本发明的最优具体实例,但是可以以不同的方式改 变较佳实施例的部件的组合和排列,只要它们在随后所要求的本发明的精神 和保护范围之内。
权利要求
1、一种DMA传输控制装置,其进行从传输源侧到传输目的侧的直接存储器访问传输,并包括暂时存储读取数据的内部存储器,该DMA传输控制装置包括读取数据计数器,配置为通过在每次发布读取命令时逐次累加应当由所述读取命令获取的读取数据量,并且在每次读取数据时向下计数,来对未读取数据量即尚未传输的数据量进行计数;和读取命令发布控制单元,配置为判断一读取数据拒绝的确定量是否等于或大于下一获取目标的读取数据量,并当所述判断结果是肯定的时,允许发布所述读取命令,所述读取命令拒绝的确定量是通过从所述内部存储器的空闲空间减去所述未读取数据量而获取的。
2、 一种DMA传输控制装置,其进行从传输源侧到传输目的侧的直接存储 器访问传输,并包括暂时存储读取数据的内部存储器,该DMA传输控制装置 包括写入数据计数器,配置为通过在每次发布写入命令时逐次累加应当由所述 写入命令发布的写入数据量,并且在每次写入数据时向下计数,来对未写入数 据量即尚未传输的数据量进行计数;和写入命令发布控制单元,配置为判断一写入命令拒绝的确定量是否等于或 大于下一发布目标的写入数据量,并且当所述判断结果是肯定的时,允许发布 所述写入命令,所述写入命令拒绝的确定量是通过从所述内部存储器中存储的 数据量减去所述未写入数据量而获得的。
3、 一种DMA传输控制装置,其进行从传输源侧到传输目的侧的直接 存储器访问传输,并且包括暂时存储读取数据的内部存储器,该DMA传输 控制装置包括读取数据计数器,配置为通过在每次发布读取命令时逐次累加应当由所 述读取命令获取的读取数据量,并且在每次读取数据时向下计数,来对未读 取数据量即尚未传输的数据量进行计数;读取命令发布控制单元,配置为判断一读取命令拒绝的确定量是否等于 或大于下一获取目标的读取数据量,并且当所述判断结果是肯定的时,允许 发布所述读取命令,其中所述读取命令拒绝的确定量是通过从所述内部存储器的空闲空间减去所述读取数据计数器的所述未读取数据量而获得的;写入数据计数器,配置为通过在每次发布所述写入命令时逐次累加应当由所述写入命令发布的写入数据量,并且在每次写入数据时向下计数,来对未写入数据量即尚未传输的数据量进行计数;和写入命令发布控制单元,配置为判断 一 写入命令拒绝的确定量是否等于或大于下一发布目标的写入数据量,并且当所述判断结果是肯定的时,允许发布所述写入命令,所述写入命令拒绝的确定量是通过从所述内部存储器中存储的数据量减去所述未写入数据量而获得的。
4、 根据权利要求1所述的DMA传输控制装置,进一步包括 读取主控ID发布单元,配置为在发布所述读耳又命令的时候,输出为每个信道所共用的读取主控ID。
5、 根据权利要求2所述的DMA传输控制装置,进一步包括 读取主控ID发布单元,配置为在发布所述读取命令的时候,输出为每个信道所共用的读取主控ID。
6、 根据权利要求3所述的DMA传输控制装置,进一步包括 读取主控ID发布单元,配置为在发布所述读取命令的时候,输出为每个信道所共用的读取主控ID。
7、 根据权利要求1所述的DMA传输控制装置,进一步包括 读取命令发布单元,配置为发布所述读取命令; 写入命令发布单元,配置为发布写入命令; 读取数据获取单元,配置为获取所述读取数据; 写入数据发布单元,配置为发布写入数据;和 写入响应获取单元,配置为获取写入响应;其中 ID发布单元,并且所述写入命令发布单元包括写入命令发布控制单元和写入主控ID发布 单元,并且可以在所述读取命令发布单元、所述写入命令发布单元、所述读取数据 获取单元、所述写入数据发布单元和所述写入响应获取单元中进行不同信道 的数据传输过程。
8、 根据权利要求2所述的DMA传输控制装置,进一步包括 读取命令发布单元,配置为发布所述读取命令; 写入命令发布单元,配置为发布写入命令; 读取数据获取单元,配置为获取所述读取数据; 写入数据发布单元,配置为发布写入数据;和 写入响应获取单元,配置为获取写入响应;其中所述读取命令发布单元包括读取命令发布控制单元和读取主控ID发布 单元,所述写入命令发布单元包括写入命令发布控制单元和写入主控ID发布 单元,并且可以在所述读取命令发布单元、所述写入命令发布单元、所述读取数据 获取单元、所述写入数据发布单元和所述写入响应获取单元中进行不同信道 的数据传输过程。
9、 根据权利要求3所述的DMA传输控制装置,进一步包括 读取命令发布单元,配置为发布所述读取命令; 写入命令发布单元,配置为发布写入命令; 读取数据获取单元,配置为获取所述读取数据; 写入数据发布单元,配置为发布写入数据;和 写入响应获取单元,配置为获取写入响应;其中 所述读取命令发布单元包括读取命令发布控制单元和读取主控ID发布单元,所述写入命令发布单元包括写入命令发布控制单元和写入主控ID发布 单元,并且可以在所述读取命令发布单元、所述写入命令发布单元、所述读取数据的数据传输过程。
10、 根据权利要求7所述的DMA传输控制装置,进一步包括 信道控制单元,配置为控制以下操作步骤中的至少一个所述读取数据获取单元从所述读取命令发布单元继承信道号码的步骤,所述写入命令发布 单元从所述读取数据获取单元继承信道号码的步骤,所述写入数据发布单元 从所述写入命令发布单元继承信道号码的步骤,和所述写入响应获取单元从 所述写入数据发布单元继承信道号码的步骤。
11、 根据权利要求8所述的DMA传输控制装置,进一步包括 信道控制单元,配置为控制以下操作步骤中的至少一个所述读取数据获取单元从所述读取命令发布单元继承信道号码的步骤,所述写入命令发布 单元从所述读取数据获取单元继承信道号码的步骤,所述写入数据发布单元 从所述写入命令发布单元继承信道号码的步骤,和所述写入响应获取单元从 所述写入数据发布单元继承信道号码的步骤。
12、 根据权利要求9所述的DMA传输控制装置,进一步包括 信道控制单元,配置为控制以下操作步骤中的至少一个所述读取数据获取单元从所述读取命令发布单元继承信道号码的步骤,所述写入命令发布 单元从所述读取数据获取单元继承信道号码的步骤,所述写入数据发布单元 从所述写入命令发布单元继承信道号码的步骤,和所述写入响应获取单元从 所述写入数据发布单元继承信道号码的步骤。
13、 根据权利要求IO所述的DMA传输控制装置,其中取数据获取单元和所述写入命令发布单元之间、在所述写入命令发布单元和 所述写入数据发布单元之间、或在所述写入数据发布单元和所述写入响应获取单元之间,进一步提供至少一个用于信道的FIFO。
14、 根据权利要求11所述的DMA传输控制装置,其中 至少在所述读取命令发布单元和所述读取数据获取单元之间、在所述读取数据获取单元和所述写入命令发布单元之间、在所述写入命令发布单元和 所述写入数据发布单元之间或在所述写入数据发布单元和所述写入响应获 取单元之间,进一步提供至少一个用于信道的FIFO。
15、 根据权利要求12所述的DMA传输控制装置,其中 至少在所述读取命令发布单元和所述读取数据获取单元之间、在所述读取数据获取单元和所述写入命令发布单元之间、在所述写入命令发布单元和 所述写入数据发布单元之间或在所述写入数据发布单元和所述写入响应获 取单元之间,进一步提供至少一个用于信道的FIFO。
16、 根据权利要求IO所述的DMA传输控制装置,其中 所述信道控制单元包括用于信道的FIFO;并且所述用于信道的FIFO包括以下读取指针中的至少一种用于所述读取 命令发布单元的读取指针、用于所述读取数据获取单元的读取指针,用于所述写入命令发布单元的读取指针、用于所述写入数据发布单元的读取指针和 用于所述写入响应获取单元的各读取指针,所述读取指针分别独立地操作。
17、 根据权利要求11所述的DMA传输控制装置,其中 所述信道控制单元包括用于信道的FIFO;并且所述用于信道的FIFO包括以下读取指针中的至少一种用于所述读取 命令发布单元的读取指针、用于所迷读取数据获取单元的读取指针,用于所述写入命令发布单元的读取指针、用于所述写入数据发布单元的读取指针和用于所述写入响应获取单元的各读取指针,所述读取指针分别独立地操作。
18、 根据权利要求12所述的DMA传输控制装置,其中 所述用于信道的FIFO包括以下读取指针中的至少一种用于所述读取命令发布单元的读取指针、用于所述读取数据获取单元的读取指针,用于所 述写入命令发布单元的读取指针、用于所述写入数据发布单元的读取指针和 用于所述写入响应获取单元的各读取指针,所述读取指针分别独立地操作。
19、 根据权利要求1所述的DMA传输控制装置,其中 利用所述DMA传输控制装置所设置的单位大小来表示所述读取数据计数器中的未读取数据量,和所述待发布读取命令中获取目标的读取数据量。
20、 根据权利要求2所述的DMA传输控制装置,其中 利用所述DMA传输控制装置所设置的单位大小来表示所述写入数据计数器中的未写入数据量,和所述待发布写入命令中发布目标的写入数据量。
21、 根据权利要求3所述的DMA传输控制装置,其中 利用所述DMA传输控制装置所设置的单位大小来表示所述读取数据计数器中的未读取数据量,所述写入数据计数器中的未写入数据量,所述待发 布读取命令中获取目标的读取数据量,和所述待发布写入命令中发布目标的 写入数据量。
22、 根据权利要求19所述的DMA传输控制装置,其中 所述内部存储器由FIFO组成;并且所述FIFO的数据宽度为所述单位大小,即使在所述读取数据信道变化 时的最后读取数据不足所述单位大小的情况下,也向前移动写入指针,并且 即使在所述写入数据信道变化时的最后写入数据不足所述单位大小时,也向 前移动读取指针。
23、 根据权利要求20所述的DMA传输控制装置,其中 所述内部存储器由FIFO组成;并且所述FIFO的数据宽度为所述单位大小,即使在所述读取数据信道变化 时的最后读取数据不足所述单位大小的情况下,也向前移动写入指针,并且 即使在所述写入数据信道变化时的最后写入数据不足所述单位大小时,也向 前移动读取指针。
24、 根据权利要求21所述的DMA传输控制装置,其中 所述内部存储器由FIFO组成;并且 所述FIFO的数据宽度为所述单位大小,即使在所述读取数据信道变化 时的最后读取数据不足所述单位大小的情况下,也向前移动写入指针,并且 即使在所述写入数据信道变化时的最后写入数据不足所述单位大小时,也向 前移动读取指针。
25、 根据权利要求19所述的DMA传输控制装置,其中 所述内部存储器由FIFO组成;并且所述FIFO的数据宽度为所述单位大小,即使当所述读取数据的连续区 域的所述最后读取数据不足所述单位大小时,也向前移动写入指针,并且即使当所述写入数据的连续区域的最后写入数据不足所述单位大小时,也向前 移动读取指针。
26、 根据权利要求20所述的DMA传输控制装置,其中 所述内部存储器由FIFO组成;并且所述FIFO的数据宽度为所述单位大小,即使当所述读取数据的连续区 域的所述最后读取数据不足所述单位大小时,也向前移动写入指针,并且即 使当所述写入数据的连续区域的最后写入数据不足所述单位大小时,也向前 移动读取指针。
27、 根据权利要求21所述的DMA传输控制装置,其中 所述内部存储器由FIFO组成;并且所述FIFO的数据宽度为所述单位大小,即使当所述读取数据的连续区 域的所述最后读取数据不足所述单位大小时,也向前移动写入指针,并且即 使当所述写入数据的连续区域的最后写入数据不足所述单位大小时,也向前 移动读取指针。
28、 半导体集成电路装置,包括 根据权利要求1所述的DMA数据传输装置;和 作为所述数据传输装置的传输源侧或传输目的侧的外部存储器。
29、 半导体集成电路装置,包括 根据权利要求2所述的DMA数据传输装置;和 作为所述数据传输装置的传输源侧或传输目的侧的外部存储器。
30、半导体集成电路装置,包括根据权利要求3所述的DMA数据传输装置;和作为所述数据传输装置的传输源侧或传输目的侧的外部存储器。
全文摘要
DMA传输控制装置和半导体集成电路装置。读取数据计数器通过在每次发布读取命令时增加应当由所述读取命令获取的读取数据量,并在每次读取数据时递减计数,来对未读取数据量即尚未传输的数据量进行计数。读取命令发布控制单元判断读取命令拒绝的确定量是否等于或大于下一获取目标的读取数据量,并当所述判断结果是肯定的时,允许发布所述读取命令,所述读取命令拒绝的确定量是通过从内部存储器的空闲空间减去所述未读取数据量而获得的。
文档编号G06F13/28GK101154204SQ20071015174
公开日2008年4月2日 申请日期2007年9月27日 优先权日2006年9月27日
发明者泽井隆二 申请人:松下电器产业株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1