CN1252566A - 直接存储器存取控制方法和装置 - Google Patents
直接存储器存取控制方法和装置 Download PDFInfo
- Publication number
- CN1252566A CN1252566A CN 99122084 CN99122084A CN1252566A CN 1252566 A CN1252566 A CN 1252566A CN 99122084 CN99122084 CN 99122084 CN 99122084 A CN99122084 A CN 99122084A CN 1252566 A CN1252566 A CN 1252566A
- Authority
- CN
- China
- Prior art keywords
- transmission
- byte
- address
- bytes
- dma
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Bus Control (AREA)
Abstract
一种DMA控制装置,当利用多于或等于两个字节的总线宽度在具有多个字节总线宽度的总线上传输数据时,其连接一个从偶数地址开始传输最低数位地址的总线系统。该DMA控制装置具有传输长度确定装置,根据传输源和传输终点的地址区和传输字节数求出用于传输过程中各次数据传输的最佳传输字节长度(即总线宽度)。
Description
本发明一般涉及一种用于进行DMA(直接存储器存取)传输的DMA控制装置,具体涉及一种能够自动改变传输长度(transfer size)的DMA控制装置。
通常,为了在例如两个存储器之间直接进行存储器到存储器的数据传输,常用的方法是一种不用通过CPU,而直接在传输双方之间进行数据传送的DMA即直接存储器存取传输方法。与通过CPU来传输数据的方法相比,利用DMA传输方法进行数据传输时,其速度要快许多。
图10所示为用于进行常规DMA传输的DMA控制装置的简要结构方框图。如图10所示,DMA控制装置1具有一个用于保存传输源地址的传输源地址寄存器2,一个用于保存传输终点地址的传输终点地址寄存器3,一个用于保存全部传输字节数的传输字节数寄存器4,用于指明单次传输长度的传输长度寄存器5,以及一个总线周期发生器(BCU)6。总线周期发生器6通过总线7与传输源存储器8和传输终点存储器9相连,并产生对传输源存储器8和传输终点存储器9的存储器存取。
在此种DMA控制装置1中,当需要进行传输而输入有传输请求信号时,对应于传输字节数的数据将从由传输源地址寄存器2所指定的传输源存储器8传送到,由传输终点地址寄存器3所指定的传输终点存储器9中。
然而,此种数据传输是利用与传输期间的总线宽度相对应的单次传输字节数而进行的,而其由传输长度寄存器5进行定义,用以指明对于具有多个字节宽度的总线,具体要利用对应于多少字节的总线宽度来进行数据传输,因此为了传输其总长度等于由传输字节数寄存器4所定义的传输字节数的数据,需要进行(所要传输的总字节数/单次传输字节数)次数据传输。
换句话说,将传输字节数寄存器4所指明的值除以传输长度寄存器5所指明的值所得结果即为所需进行数据传输的次数。这是因为单次传输长度是由传输长度寄存器5所指定的,而例如,当传输源地址A为0000001F而传输长度S为257字节时,如果假定已经为读取DRAM(动态随机存取存储器)而进行了对齐(alignment),则尽管总线宽度为多个字节,但其仍只能将传输长度S设置为1个字节。因为对于其中从偶数地址开始传送最低数位地址的总线系统而言,本领域的技术人员所公知的一个常识是,传输长度数必须是2的n次幂,而当传输字节数为257时,则能够传输257字节的最大传输长度数是一个字节。
其结果是,传输的过程如下:
A:0000000F,S:257字节,第一次传输:1字节
A:00000010,S:256字节,第二次传输:1字节
A:00000011,S:255字节,第三次传输:1字节
A:0000010F,S:1字节,第257次传输:1字节
A:00000110,传输结束
因此对应于传输长度S的值将需要进行总计达257次数据传输。
尽管作为用于示意一种DMA控制方法的例子,在DMA传输中可以采用JP-A-67035/1993中所公开的一种数据对齐系统,但即便如此,由于传输是仍是由CPU来进行控制的,所以占用CPU处理时间的现象将仍不可避免。
本发明的目的就是提供一种DMA控制方法和装置,当数据是任意字节数的数据时,能够减少数据传输的传输次数,并缩短进行DMA传输所需的传输时间。
为了实现上述目的,其中当利用多于或等于两个字节的总线宽度在具有多个字节总线宽度的的总线上来传输数据时,将与一种用于从偶数地址开始传输最低位地址的总线系统相连,根据本发明的DMA控制方法的特征在于,对于每一次数据传输,均将根据传输源和传输终点的地址区和传输字节数求出最佳传输字节长度(即数据传输期间所用的总线宽度)。
通过上述配置,当连接有用于从偶数地址开始传输最低数位地址的总线系统,且同时是利用多于或等于两个字节的总线宽度在具有多个字节总线宽度的总线上来传输数据时,则根据传输源和传输终点的地址区和传输字节数,可以求出用于每一次数据传输的最佳传输字节长度(即数据传输期间所用的总线宽度)。因此,其将能够减少数据传输的次数,并缩短利用DMA传输来传送任意字节数的数据所需的传输时间。
本发明的目的是通过这样一种DMA控制装置来实现的:当数据是利用多于或等于两个字节的总线宽度在具有多个字节的总线宽度的总线上进行传输时,该DMA控制装置能够连接到用于从偶数地址开始传输最低数位地址的总线系统上,所述DMA控制装置包括传输长度确定装置,用于根据传输源和传输终点的地址区和传输字节数,求出用于每次数据传输的最佳传输字节长度(即数据传输期间所用的总线宽度)。
另外,利用根据本发明的DMA控制装置,还能够实现如上所述的DMA控制方法。
参考接下来的详细说明和附图,将会对本发明的上述和其它目的、特性和优点有更清楚的理解。
图1所示为根据本发明第一实施例的DMA控制装置的简要结构方框图;
图2A和2B所示为图1所示的地址对齐字节确定装置,其中图2A为前半部分的电路图,而图2B为后半部分的电路图。
图3A和3B所示为图1所示的对齐字节数确定装置,其中图3A为前半部分的电路图,而3B为后半部分的电路图。
图4所示为图1所示的对齐字节数综合器(integrator)的电路图;
图5所示为图1所示的最小对齐字节发生器的电路图;
图6所示为用于向图1所示的DMA控制装置中的传输终点写入数据的过程的流程图;
图7所示为根据本发明第二实施例的DMA控制装置的简要结构方框图;
图8所示为用于向图7所示的DMA控制装置中的传输终点写入数据的过程的流程图;
图9所示为根据本发明第三实施例的DMA控制装置的简要结构方框图;
图10所示为用于进行常规DMA传输的DMA控制装置的简要结构方框图。
接下来将参照附图对本发明的多种实施例进行说明。[第一实施例]
图1所示为根据本发明第一实施例的DMA控制装置的简要结构方框图。如图1所示,DMA控制装置11具有一个用于保存传输源地址的传输源地址寄存器11,一个用于保存传输终点地址的传输终点地址寄存器12,一个用于保存全部传输字节数的传输字节数寄存器13,一个传输长度确定装置14,一个总线周期发生器(BCU)15,以及一个DMA传输控制器16。总线周期发生器15通过宽度为64字节的总线17与传输源存储器18和传输终点存储器19相连。
在利用DMA控制装置10进行DMA传输的过程中,传输长度确定装置14计算各次传输时所要传输的传输字节长度,并进行评定以确定实际传输字节长度。总线周期发生器15产生对由传输源地址寄存器11所指定的传输源存储器18、以及对由传输终点地址寄存器12所指定的传输终点存储器19的存储器存取。当需要进行数据传输而输入了传输请求信号a时,DMA传输控制器16将指示利用DMA控制装置10执行DMA传输。
传输长度确定装置14具有一个传输源地址对齐字节确定装置20,一个传输终点地址对齐字节确定装置21,一个对齐字节数确定装置22,一个对齐字节数综合器23,以及一个最小对齐字节发生器24。
传输源地址寄存器11与传输源地址对齐字节确定装置20相连,而传输终点地址寄存器12则与传输终点地址对齐字节确定装置21相连。传输字节数寄存器13与对齐字节数确定装置22相连。
图2A和2B所示为图1所示的传输源和传输终点地址对齐字节确定装置20和21的示意图,其中图2A为前半部分的电路图,而图2B为后半部分的电路图。如图2A和2B所示,传输源地址对齐字节确定装置20和传输终点地址对齐字节确定装置21具有相同的结构,并被分为前半部分和后半部分两个部分。利用这些地址对齐字节确定装置20和21,便能够找出输入地址所满足的最大对齐边界(alignmentboundary)。
前半部分(参见图2A)是一种用于译解输入地址是沿边界与多少字节相对齐的地址。这里,其将构成一个用于确定LSB(最低有效位:位线的最低位)中1最先出现的位置的首1检测器(lead-one-detector)。
后半部分(参见图2B)是一种用于用一个由加权位位置所表示的代码来替换所对齐的n字节边界(例如,用二进制数位值来替换如图2B所示的十进制数位)的电路,其输出作为传输源地址的对齐信息的地址对齐字节数,以及TAdrBND[7:0]或DAdrBND[7:0]。
换句话说,传输字节数寄存器13是一种其中存储有所要传输的字节数(257)的寄存器,并通过前半部分的译码器找出所能进行传输的最大传输字节数。如果译码器为A,其最多传输多于或等于1个字节,如果译码器为B,其最多传输多于或等于2个字节,如果译码器为C,其最多传输多于或等于4个字节,如果译码器为D,其最多传输多于或等于8个字节,如果译码器为E,其最多传输多于或等于16个字节,如果译码器为F,其最多传输多于或等于32个字节,如果译码器为G,其最多传输多于或等于64个字节,如果译码器为H,则最多传输多于或等于128个字节。
图3A和3B所示为图1所示的对齐字节数确定装置22的示意图,其中3A为前半部分的电路图,而3B为后半部分的电路图。如图3A和3B所示,对齐字节数确定装置22被分为前半部分和后半部分两个部分,其用于计算不超过输入字节数且值等于2的n次幂的最大字节数。
前半部分的电路(参见3A)用于确定输入字节数范围内的2的n次幂的值。这里,其构成了一个用于确定MSB(最高有效位:位线的最高位)中1最先出现的位置的首1检测器。
后半部分(参见3B)是一种用于用由加权位位置所表示的一个代码来替换2的n次幂值的电路,其输出满足传输长度数的最大对齐字节数,以及restBytE[7:0]。
图4所示为图1所示的对齐字节数综合器23的电路图。如图4所示,对齐字节数综合器23由多个OR(或门)电路构成,其对从地址对齐字节确定装置20和21以及对齐字节数确定装置22所输入的各个加权代码进行逻辑和运算(OR运算),并将它们彼此组合在一起从而形成一个信息。
其结果是,利用传输源地址的地址对齐字节数TAdrBND[7]和DAdrBND[7],以及满足传输字节数的最大对齐字节数restBytE[7]的输入,将输出综合对齐信息Accsiz[7]。随后以相同方式输出综合对齐信息Accsiz[6],…,Accsiz[0]。此外,每个加权代码是由地址对齐字节确定装置20和21,以及对齐字节数确定装置22进行编码的信息。
图5所示为图1所示的最小对齐字节发生器24的电路图。最小对齐字节发生器24分为前半部分和后半部分两个部分,其根据来自对齐字节数综合器23的对齐字节数综合信息产生最小对齐字节。其结果是,可以确定传输字节长度。
图5中前半部分是一种用于通过找出所输入的对齐信息的LSB中1最先出现的位置而取出最小对齐信息的电路。后半部分是一种用于用由加权位位置所表示的代码来替换此最小对齐信息,同时将其转换为一个字节数并作为传输长度进行输出的电路。
因此,利用传输长度确定装置14,可以通过用于找出输入地址所满足的最大对齐边界并针对传输源地址和传输终点地址对其进行编码的第一处理步骤、用于计算不超过输入传输字节数且值为2的次幂的最大字节数并对其进行编码的第二处理步骤、用于对由上述第一和第二处理编码所得的信息,与综合对齐信息进行逻辑和运算的第三处理步骤、用于从由上述第三处理综合所得的对齐信息中取出最小对齐信息并将该最小对齐信息转换成字节数的第四处理步骤来求出最佳传输字节长度。
当来自此最小对齐字节发生器24的输出被输入到总线周期发生器15中时,总线周期发生器15将根据基于输入传输字节长度的字节数从传输源中读出数据,并将其写入到传输终点中。
图6所示为用于例示图1所示的DMA控制装置中将数据写入到传输终点中的过程的流程图。如图6所示,首先,其先确定是否需要进行DMA传输(步骤S101),而如果不需要(否),则将继续进行循环判断。在进行判断时,利用CPU的控制命令,将传输源地址,传输终点地址和传输长度数已分别设置到DMA控制装置10的各相应寄存器中。
接下来,如果需要进行DMA传输(是),则CPU将向DMA控制装置10发指令进行DMA传输,并从DMA控制装置中取出传输源地址(步骤S102)。紧接着取出此传输源地址之后,将取出传输字节数(步骤S103),而另外,还将取出传输终点地址(步骤S104),随后将从传输源地址,传输长度数和传输终点地址这些数据中求出传输长度(步骤S105)。
接下来,DMA控制装置10根据所求得的传输长度从传输源地址开始读取其长度与传输长度相对应的数据,并将其写入到传输终点地址中(步骤S106)。
通过对应于此传输长度来进行数据读取和写入操作,将更新传输源地址(步骤S107),更新传输终点地址(步骤S108)以及更新传输长度数(步骤S109)。
之后,其将确定传输字节数是否为0(步骤S110),如果传输字节数不是0(否),则进程将返回到步骤S102并再次取出传输源地址,重复执行随后的步骤,直到传输字节数变为0。如果传输字节数为0(是),则利用此种DMA控制装置10所进行的DMA传输便结束了。
其结果是,通过输入到DMA控制装置10的传输请求信号,将把对应于传输字节长度的数据,从传输源存储器18(由传输源地址寄存器11所指定)传输到传输终点存储器19(由传输终点地址寄存器12所指定)。
如上所述,DMA控制装置10根据所求得的传输长度从传输源地址读出与传输长度相对应的数据,并将其写入到传输终点地址中,接下来将对其特定示例进行说明。
在进行数据传输时,将利用如下算法在每次传输时计算一次数据传输所传输的次数。
当传输字节数多于或等于64字节时,64字节,
当传输字节数多于或等于32字节时,32字节,
当传输字节数多于或等于16字节时,16字节,
当传输字节数多于或等于8字节时,8字节,
当传输字节数多于或等于4字节时,4字节,
当传输字节数多于或等于2字节时,2字节,
当传输字节数多于或等于1字节时,1字节,
以及
当传输源地址为64字节对齐地址时,64字节,
当传输源地址为32字节对齐地址时,32字节,
当传输源地址为16字节对齐地址时,16字节,
当传输源地址为8字节对齐地址时,8字节,
当传输源地址为4字节对齐地址时,4字节,
当传输源地址为2字节对齐地址时,2字节,
当传输源地址为1字节对齐地址时,1字节,
因而将求出一个同时满足两种条件,并具有当自下向上计数时最先遇到的最大字节数的地址。换句话说,进行逻辑和运算。
其结果是,当例如传输源地址A为0000000F而传输长度S为257字节时,所进行的多次数据传输中各次传输的传输长度数如下:
A:0000000F,S:257字节,第一次传输:1字节
A:00000010,S:256字节,第二次传输:16字节
A:00000020,S:240字节,第三次传输:32字节
A:00000040,S:208字节,第四次传输:64字节
A:00000080,S:144字节,第五次传输:64字节
A:000000C0,S:80字节,第六次传输:64字节
A:00000100,S:16字节,第七次传输:16字节
A:00000110,传输结束
因此,传输总共分为7次完成。在上述示例中,尽管在第四次传输中所能传输的最大字节数为64字节,但另外也可以利用地址在字节对齐中的所处位置来确定单次传输的字节数。
以此方式,DMA控制装置10将根据传输源和传输终点地址区,以及传输字节数求出单次数据传输期间总线上的最佳传输字节长度,并自动地更新传输长度。
因此,当利用多于或等于两个字节的总线宽度在具有多个字节总线宽度上传输数据时,将连接一个用于从偶数地址开始传输最低数位地址的总线系统,同时根据地址在字节对齐中的所处位置确定一次所能传输的字节数,与常规情况下传输字节数(例如,1字节)取为固定值的情况相比,本发明则可以将通过计算每一次所能传输的字节数所求出的最大值的最大传输字节数设置为传输长度。
换句话说,可以从用于传输源地址和传输终点地址的最大地址对齐的各字节数中计算出最大对齐字节数,并与传输字节数进行比较,便可求出最佳传输字节长度。
其结果是,在传输任意确定传输长度数的数据时,由于为了进行传输而需要存取由传输源地址所指示的传输源存储器和由传输终点地址所指示的传输目的存储器的次数得到了减少,所以与现有技术相比,其能够减少数据传输的次数,并且还能够缩短传输的时间。[第二实施例]
图7所示为根据本发明第二实施例的DMA控制装置的简要结构方框图。如图7所示,DMA控制装置30配置有一个传输长度确定装置31,其中分别配备有两个对齐字节数确定装置22、两个对齐字节数综合器23和两个最小对齐字节发生器24(在DMA控制装置10中它们各只有一个),以及一个缓冲器22,其它与DMA控制装置10的结构相同。
在上述第一实施例中,是利用一个具有一种其中传输源地址、传输字节数和传输终点地址的地址对齐彼此重合的组合的字节数来进行传输的。然而,在第一实施例中,当传输源地址和地址对齐和传输终点地址的地址对齐并不总是彼此重合时,则进行传输时每次将只能传输一个字节,与其中只要求传输源地址和传输字节数的地址对齐彼此重合的情况相比,其条件限制相对要严格许多。
因此,在本第二实施例中,通过分别提供两个地址对齐字节确定装置,两个对齐字节数确定装置,两个对齐字节数综合器和两个最小对齐字节发生器24,将使上述条件限制得到改善。
传输长度确定装置31具有一个传输源地址对齐字节确定装置20,一个传输终点地址对齐字节确定装置21,两个对齐字节数确定装置22和33,两个对齐字节数综合器23和34,两个最小对齐字节发生器24和35,以及一个缓冲器传输字节数寄存器36。
传输源地址寄存器11与传输源地址对齐字节确定装置20相连,而传输字节数寄存器13与对齐字节数确定装置22相连。传输源地址对齐字节确定装置20和对齐字节数确定装置22分别与对齐字节数综合器23相连,对齐字节数综合器23与最小对齐字节发生器24相连,而最小对齐字节发生器24则分别与总线周期发生器15和缓冲器传输字节数寄存器36相连。
缓冲器传输字节数寄存器36与对齐字节确定装置33相连,对齐字节确定装置33与对齐字节数综合器34相连,对齐字节数综合器34又与最小对齐字节发生器35相连,而最小对齐字节发生器35则与总线周期发生器15相连。
从传输源地址寄存器11到总线周期发生器15的操作,除了对齐字节数综合器23的输入数有所变化之外,其它均与第一实施例相同。总线周期发生器15根据由最小对齐字节发生器24所指示的字节数,从传输源存储器18中传输数据。在该第二实施例中,传输源存储器18中的数据被传输到DMA控制装置30内的缓冲器32中。传输到缓冲器32的数据的字节数被存储于缓冲器传输字节数寄存器36中,而来自传输终点地址寄存器36的输出则被输入到对齐字节确定装置33中。
将传输终点地址寄存器12中传输终点地址输入到传输终点地址对齐字节确定装置21中,而来自传输终点地址对齐字节确定装置21的输出、以及来自对齐字节确定装置33的输出则由对齐字节数综合器34进行综合。来自对齐字节数综合器34的输出被输入到最小对齐字节发生器35中,而传输字节数(即来自最小对齐字节发生器35的输出)则从缓冲器32传输到传输终点存储器19中。
图8所示为图7所示的DMA控制装置中用于将数据写入到传输终点中的过程的流程图。如图8所示,首先,其先确定是否需要进行DMA传输(步骤S201),如果不需要(否),则将继续进行循环判断。在进行判断的同时,将利用CPU的控制命令,分别将传输源地址、传输终点地址和传输字节数设置到DMA控制装置30的各相应寄存器中。
接下来,如果需要进行DMA传输(是),则CPU将向DMA控制装置30发指令以开始进行DMA传输,于是先从DMA控制装置中取出传输源地址(步骤S202)。紧接着取出此传输源地址之后,将取出传输字节数(步骤S203),随后将从传输源地址和传输字节数中求出传输长度(步骤S204)。
接下来,DMA控制装置30根据所求出的传输长度,从传输源地址开始将数据读取到缓冲器32中(步骤S205),而已进行过的数据读取所用的传输长度(将来所要从缓冲器内读出的字节数)将被寄存为缓冲器传输字节数(步骤S206)。以此方式,将把从传输源地址和传输字节数中求出的传输长度数设置为传输字节数,并与传输源地址一起继续进行计算。在对缓冲器传输字节数进行完寄存之后,传输源地址被更新(步骤S207),而另外,传输字节数也将被更新(步骤S208)。
接着,将根据所寄存的缓冲器传输字节数,以及从传输终点地址寄存器12中取出的传输终点地址,计算第二传输长度(步骤S209)。随后根据此第二传输长度,进行从缓冲器32到传输终点存储器19的数据写入操作(步骤S210)。在完成了向传输终点存储器19写入数据的操作之后,传输终点地址将被更新(步骤S211),而进一步地,缓冲器传输字节数也被更新(步骤S212)。
此后,其将判断缓冲器传输字节数是否为0(步骤S213),如果该传输字节数不为0(否),则进程将返回到步骤S209,计算第二传输长度,并重复执行随后各步骤,直到传输字节数变为0。如果缓冲器传输字节数为0(是),则其将判断传输字节数是否为0(步骤S214),而如果传输字节数非0(否),则进程将返回到步骤S202,取出传输源地址,并重复执行随后各步骤,直到传输字节数变为0。如果传输字节数为0(是),则利用此种DMA控制装置30所进行的DMA传输便结束了。
以此方式,通过将与确定对齐字节数的有关的处理分为对两个传输源地址和传输字节数、以及传输终点地址和缓冲器传输字节数进行处理,可以实现具有较大对齐字节数的高效传输。
当然,利用其中传输源地址寄存器11与传输终点地址对齐字节确定装置21相连,而传输终点地址寄存器12与传输源地址对齐字节确定装置20相连的配置,也能实现同样的目的。在此情况中,其将能够对作为来自最小对齐字节发生器35的输出结果的传输字节数进行多次读取,并最终将其长度为来自传输源存储器18的传输字节数的数据(由最小对齐字节发生器24产生)存储到缓冲器32中,而此后,将其长度等于传输字节数的数据一并从缓冲器32传送到由最小对齐字节发生器24所指示的传输终点存储器19中。利用此方法,能够以更高的效率进行数据传输。[第三实施例]
图9所示为根据本发明第三实施例的DMA控制装置的简要结构方框图。如图9所示,DMA控制装置40,除了用传输长度确定装置41替换了第二实施例中所示的传输长度确定装置31之外,与DMA控制装置30的结构相同。
传输长度确定装置41是通过在传输长度确定装置31上增加两个最大传输长度设置寄存器42和43来形成的,最大传输长度设置寄存器42与对齐字节数综合器23相连,而另一个最大传输长度设置寄存器43则与对齐字节数综合器34相连。
在利用DMA传输进行处理的总线系统中,由于受到传输源存储器18和传输终点存储器19配置的限制,不能总能实现无限的传输长度,而对于对于传输源存储器18和传输终点存储器19,其所能连续传输的传输长度分别存在极限。
在本第三实施例中,其能够分别对传输源读取操作和传输终点写入操作的最大传输长度提供限制。利用此方法,当从传输源存储器18的地址对齐和传输长度数中计算出的传输长度大于由最大传输长度设置寄存器42和43所指定的传输长度时,则将利用由最大传输长度设置寄存器42和43所指定的值来进行传输源读取操作和传输终点写入操作。
以此方式,根据本发明的DMA控制装置,通过输入在需要进行传输时输入传输请求信号,可以将对应于传输字节数的数据从由传输源地址寄存器11所指定的传输源存储器18传输到由传输终点地址寄存器12所指定的传输终点存储器19中。其数据传输过程分多次来进行,在分多次进行时,由传输长度确定装置14,31或41计算用于各次传输的传输长度,并利用所求出的传输长度来进行数据传输。在分多次进行传输时,其能够一直用不超过长度上限的最大传输长度来进行传输,并以此长度来分别对各传输终点存储器和传输源存储器一并进行读取和写入操作。
此外,近年来,由于将传输源地址和传输终点地址保存在诸如DRAM等类型的存储器中(对其能够通过猝发存取来进行高速存取)已成为一种标准类型,如果利用根据上述DMA控制装置10、30或40的传输方法,则将能够通过猝发存取来对传输字节数较大的数据进行传输,从而不仅传输次数能够得到减少,单次传输的所花时间也将缩短许多。
如上所述,根据本发明,由于当连接有传输从偶数地址开始传输最低数位地址的总线系统,而同时数据是利用多于或等于两个字节的总线宽度在具有多个字节总线宽度的总线上进行传输时,则根据地址区和传输源和传输终点的传输字节数,就能够求出数据传输过程中每次传输的最佳传输长度(也就是总线宽度),因此,当利用DMA传输来传送任意字节数的数据时,能够减少传输的次数,并缩短传输所用的时间。
另外,利用根据本发明的DMA控制装置,能够实现上述DMA控制方法。
Claims (10)
1.一种直接存储器存取控制方法,其中当利用多于或等于两个字节的总线宽度在具有多个字节宽度的总线上传输数据时,将连接一个用于从偶数地址开始传输最低数位地址的总线系统,
其特征在于,根据传输源和传输终点的地址区和传输字节数,可以求出数据传输过程中的最佳传输字节长度,即总线宽度。
2.如权利要求1所述的直接存储器存取控制方法,其特征在于,所述最佳传输字节的长度是通过计算传输源地址和传输终点地址的最大地址对齐的各字节数,并根据所要传输数据的字节数求出最大对齐字节数来获得的。
3.如权利要求1所述的直接存储器存取控制方法,其特征在于所述最佳传输字节长度是通过如下方法得到的:
第一处理步骤,找出输入地址所满足的最大对齐边界,并针对传输源地址和传输终点地址对其进行编码;
第二处理步骤,计算不超过所传输字节的输入数且值为2的n次幂的最大字节数,并对其进行编码;
第三处理步骤,对由所述第一和第二处理步骤编码所得的信息进行逻辑和运算,并对对齐信息进行综合;
第四处理步骤,从由所述第三处理步骤综合所得的对齐信息中取出最小对齐信息,并将其转换成字节数。
4.一种直接存储器存取控制装置,当数据是利用多于或等于两个字节的总线宽度在具有多个字节的总线上进行传输时,该直接存储器存取控制装置与从偶数地址开始传输最低数位地址的总线系统相连,
所述直接存储器存取控制装置特征在于包括传输长度确定装置,用于根据传输源地址和传输终点地址的地址区和传输字节数,求出用于数据传输过程中每次数据传输的最佳传输字节长度,即总线宽度。
5.如权利要求4所述的直接存储器存取控制装置,其特征在于另外包括:
传输源地址寄存器,用于向所述传输长度确定装置输出传输源地址信息;
传输终点地址寄存器,用于向所述传输长度确定装置输出传输终点地址信息;
传输字节数寄存器,用于向所述传输长度确定装置输出传输字节数信息;
总线周期发生装置,用于根据来自所述传输长度确定装置的输出信息产生存储器存取;以及
直接存储器存取传输控制装置,用于利用在需要进行传输时所输入的传输请求信号,指示开始执行直接存储器存取传输。
6.如权利要求4或权利要求5所述的直接存储器存取控制装置,所述传输长度确定装置包括用于通过计算传输源地址和传输终点地址的最大地址对齐的各字节数,以及从所传输数据的字节数中计算出最大对齐字节数,来求出所述最佳传输字节长度的装置。
7.如权利要求4所述的直接存储器存取控制装置,所述传输长度确定装置包括用于根据已被传输到传输终点地址和缓冲器中的字节数,计算从缓冲器传输到由传输终点地址所指定的存储器中的字节数。
8.如权利要求4所述的直接存储器存取控制装置,所述传输长度确定装置包括:
传输源地址对齐字节确定装置,用于找出输入传输源地址所满足的最大对齐边界,并用一个加权位位置代码来替换其;
传输终点地址对齐字节确定装置,用于找出输入传输终点地址所满足的最大对齐边界,并用一个加权位位置代码来替换其;
对齐字节数确定装置,用于计算不超过所传输字节的输入数且值为2的n次幂的最大字节数,并用一个加权位位置代码来替换其;
对齐字节数综合装置,用于对从所述传输源地址对齐字节确定装置、所述传输终点地址对齐字节确定装置和所述对齐字节数确定装置分别输出的信息进行逻辑和运算,并对对齐信息进行综合;
最小对齐字节发生装置,用于从由所述对齐字节数综合装置综合所得的对齐信息中取出最小对齐信息,并将其转换为一个字节数。
9.如权利要求8所述的直接存储器存取控制装置,另外包括:
两个所述对齐字节数综合装置、两个所述对齐字节数确定装置和两个最小对齐字节发生装置;
第一对齐字节数综合装置,用于对其中输入有传输字节数的第一对齐字节数确定装置、以及所述传输源地址对齐字节确定装置分别输出的信息进行逻辑和运算;
第一最小对齐字节发生装置,用于从由所述第一对齐字节数综合装置综合所得的对齐信息中取出最小对齐信息;
第二对齐字节数确定装置,用于根据来自所述第一最小对齐字节发生装置的输出信息,输入缓冲器传输字节数的传输终点地址;
第二对齐字节数综合装置,用于对从所述第二对齐字节数确定装置和所述传输终点地址对齐字节确定装置分别输出的信息进行逻辑和运算;以及
第二最小对齐字节发生装置,用于从由所述第二对齐字节数综合装置综合所得的对齐信息中取出最小对齐信息。
10.如权利要求9所述的直接存储器存取控制装置,另外包括:
第一最大传输字节数设置装置,用于在所述第一对齐字节数综合装置中设置最大传输字节数;
第二最大传输字节数设置装置,用于在所述第二对齐字节数综合装置中设置最大传输字节数。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP306562/1998 | 1998-10-28 | ||
JP30656298A JP3206568B2 (ja) | 1998-10-28 | 1998-10-28 | Dma制御方法及び装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN1252566A true CN1252566A (zh) | 2000-05-10 |
Family
ID=17958557
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 99122084 Pending CN1252566A (zh) | 1998-10-28 | 1999-10-28 | 直接存储器存取控制方法和装置 |
Country Status (3)
Country | Link |
---|---|
EP (1) | EP0997822A3 (zh) |
JP (1) | JP3206568B2 (zh) |
CN (1) | CN1252566A (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1300715C (zh) * | 2001-03-09 | 2007-02-14 | 国际商业机器公司 | 直接存储器存取传送控制方法和控制装置 |
CN100388254C (zh) * | 2005-01-27 | 2008-05-14 | 富士通株式会社 | 直接存储器存取控制方法、直接存储器存取控制器、信息处理系统 |
CN100395742C (zh) * | 2005-04-14 | 2008-06-18 | 光宝科技股份有限公司 | 可快速地于不同储存装置间传输数据的计算机系统 |
CN100421097C (zh) * | 2003-06-30 | 2008-09-24 | 英特尔公司 | 可重寻址的虚拟dma控制和状况寄存器 |
CN100470525C (zh) * | 2007-03-07 | 2009-03-18 | 威盛电子股份有限公司 | 直接存储器访问控制装置及控制其传输的方法 |
CN101276315B (zh) * | 2007-03-30 | 2011-06-22 | 财团法人工业技术研究院 | 动态调整传输数据宽度的直接存储器存取控制器与方法 |
CN102541752A (zh) * | 2011-12-26 | 2012-07-04 | 苏州国芯科技有限公司 | 嵌入式系统可寻址空间的分区方法 |
CN104021095A (zh) * | 2013-02-28 | 2014-09-03 | 佳能株式会社 | 数据处理设备和控制方法 |
CN111159075A (zh) * | 2019-12-31 | 2020-05-15 | 成都海光微电子技术有限公司 | 数据传输方法和数据传输装置 |
CN115237962A (zh) * | 2022-09-20 | 2022-10-25 | 南京芯驰半导体科技有限公司 | 一种数据查找的方法及装置 |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003281074A (ja) | 2002-03-19 | 2003-10-03 | Fujitsu Ltd | ダイレクトメモリアクセス装置 |
DE10213839B4 (de) * | 2002-03-27 | 2016-11-03 | Advanced Micro Devices, Inc. | DMA-Mechanismus für einen Hochgeschwindigkeitspaketbus |
TWI346873B (en) * | 2007-03-27 | 2011-08-11 | Ind Tech Res Inst | A direct memory access controller with dynamic data width adjustment, method thereof, and computer accessible storage media to store program thereof |
WO2009037798A1 (ja) * | 2007-09-21 | 2009-03-26 | Mitsubishi Electric Corporation | データ転送装置及びデータ転送方法 |
GB0724439D0 (en) * | 2007-12-14 | 2008-01-30 | Icera Inc | Data transfer |
JP2010027032A (ja) | 2008-06-17 | 2010-02-04 | Nec Electronics Corp | Fifo装置及びfifoバッファへのデータ格納方法 |
JP4956848B2 (ja) * | 2009-01-20 | 2012-06-20 | Necエンジニアリング株式会社 | Dma転送制御装置 |
JP5803000B2 (ja) * | 2011-03-17 | 2015-11-04 | 株式会社Pfu | Dma装置、情報処理装置、及びデータ転送方法 |
JP5955489B1 (ja) * | 2015-11-26 | 2016-07-20 | 三菱電機株式会社 | データ転送装置、データ転送方法及びデータ転送プログラム |
KR102448331B1 (ko) * | 2020-11-05 | 2022-09-27 | 김정민 | 애완동물용 그루밍 브러쉬 |
CN117807001B (zh) * | 2024-02-29 | 2024-05-24 | 山东云海国创云计算装备产业创新中心有限公司 | 一种基于dma/直接内存访问的任务处理方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU652371B2 (en) * | 1990-06-29 | 1994-08-25 | Fujitsu Limited | Data transfer system |
-
1998
- 1998-10-28 JP JP30656298A patent/JP3206568B2/ja not_active Expired - Fee Related
-
1999
- 1999-10-28 CN CN 99122084 patent/CN1252566A/zh active Pending
- 1999-10-28 EP EP99121507A patent/EP0997822A3/en not_active Withdrawn
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1300715C (zh) * | 2001-03-09 | 2007-02-14 | 国际商业机器公司 | 直接存储器存取传送控制方法和控制装置 |
CN100421097C (zh) * | 2003-06-30 | 2008-09-24 | 英特尔公司 | 可重寻址的虚拟dma控制和状况寄存器 |
CN100388254C (zh) * | 2005-01-27 | 2008-05-14 | 富士通株式会社 | 直接存储器存取控制方法、直接存储器存取控制器、信息处理系统 |
CN100395742C (zh) * | 2005-04-14 | 2008-06-18 | 光宝科技股份有限公司 | 可快速地于不同储存装置间传输数据的计算机系统 |
CN100470525C (zh) * | 2007-03-07 | 2009-03-18 | 威盛电子股份有限公司 | 直接存储器访问控制装置及控制其传输的方法 |
CN101276315B (zh) * | 2007-03-30 | 2011-06-22 | 财团法人工业技术研究院 | 动态调整传输数据宽度的直接存储器存取控制器与方法 |
CN102541752A (zh) * | 2011-12-26 | 2012-07-04 | 苏州国芯科技有限公司 | 嵌入式系统可寻址空间的分区方法 |
CN102541752B (zh) * | 2011-12-26 | 2015-04-15 | 苏州国芯科技有限公司 | 嵌入式系统可寻址空间的分区方法 |
CN104021095A (zh) * | 2013-02-28 | 2014-09-03 | 佳能株式会社 | 数据处理设备和控制方法 |
CN111159075A (zh) * | 2019-12-31 | 2020-05-15 | 成都海光微电子技术有限公司 | 数据传输方法和数据传输装置 |
CN115237962A (zh) * | 2022-09-20 | 2022-10-25 | 南京芯驰半导体科技有限公司 | 一种数据查找的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
JP2000132497A (ja) | 2000-05-12 |
JP3206568B2 (ja) | 2001-09-10 |
EP0997822A2 (en) | 2000-05-03 |
EP0997822A3 (en) | 2001-10-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1252566A (zh) | 直接存储器存取控制方法和装置 | |
KR101150162B1 (ko) | 데이터 저장 시스템에서 심볼 빈도 레벨링 | |
US8791843B2 (en) | Optimized bitstream encoding for compression | |
CN1178134C (zh) | 执行于板上系统内的中间对象代码程序的数据压缩方法 | |
CN1029047C (zh) | 具有把组块脉冲式操作转换为流水线操作装置的数据处理系统 | |
CN1530836A (zh) | 非易失性存储器装置和数据处理系统 | |
CN1950802A (zh) | 存储器分配 | |
CN1794236A (zh) | 高效的基于cam在分组有效载荷中进行串搜索的技术 | |
CN1655118A (zh) | 处理器和编译器 | |
CN101034372A (zh) | 非易失存储系统和非易失存储器的管理方法 | |
US9035809B2 (en) | Optimizing compression engine throughput via run pre-processing | |
CN1149218A (zh) | 维特比解码方法和维特比解码装置 | |
CN1254921C (zh) | 改进的哈夫曼译码方法和装置 | |
CN101079042A (zh) | 一种快速查询黑白名单的系统及方法 | |
CN1826586A (zh) | 软件原子化 | |
CN1855032A (zh) | 微处理系统、总线地址转换方法以及程序修补方法 | |
CN1893282A (zh) | 一跨序列排序涡轮码系统和其操作方法 | |
CN1601519A (zh) | 文档变换系统 | |
CN1278931A (zh) | 特别适于译码数字音频信号的数字信号处理器 | |
CN1949221A (zh) | 存储元素的方法与系统及查找元素的方法与系统 | |
CN1858999A (zh) | 伪随机序列发生装置 | |
CN1381797A (zh) | 高速信息检索系统 | |
CN1570878A (zh) | 信息家电软件升级方法及其升级数据的编码解码方法 | |
CN1250995A (zh) | 数据包滤波装置 | |
CN1804789A (zh) | 具有包括数据部分和相关计数器的条目的硬件堆栈 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C06 | Publication | ||
PB01 | Publication | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |