数据传输方法和数据传输装置制造方法及图纸

技术编号:24168411 阅读:30 留言:0更新日期:2020-05-16 02:10
一种数据传输方法和数据传输装置。该数据传输方法,应用于计算机系统中,包括:获取数据搬运信息,数据搬运信息包括源起始地址、目的起始地址和传输数据量,传输数据量的数据包括N个数据序列,分为N次传输;基于数据搬运信息从第一存储单元中读取N个数据序列,N个数据序列中的第一个数据序列的地址包括首地址和源起始地址,在读取的第一个数据序列中,将源起始地址之前的地址中存放的数据移除,并选取从源起始地址开始对应的数据作为有效数据传输;N为大于等于1的整数。该数据传输方法可以解决在数据搬运过程中的地址不对齐的问题,提高数据传输的效率。

Data transmission method and device

【技术实现步骤摘要】
数据传输方法和数据传输装置
本公开的实施例涉及一种数据传输方法和数据传输装置。
技术介绍
DMA(DirectMemoryAccess,直接内存存取)传输装置可以将数据从一个地址空间复制到另外一个地址空间。当中央处理单元(CPU)初始化这个传输动作时,传输动作本身是由DMA传输装置来实行和完成,例如,可以由DMA传输装置移动一个外部内存的区块到芯片内部的内存区。这样的操作并没有让CPU工作拖延,反而可以被重新安排去处理其他的工作,因此,DMA传输装置对于高效能嵌入式系统算法和网络是很重要的。
技术实现思路
本公开至少一实施例提供一种数据传输方法,应用于计算机系统中,该数据传输方法包括:获取数据搬运信息;所述数据搬运信息包括源起始地址、目的起始地址和传输数据量,所述传输数据量的数据包括N个数据序列,分为N次传输;基于所述数据搬运信息从第一存储单元中读取所述N个数据序列;所述N个数据序列中的第一个数据序列的地址包括首地址和所述源起始地址,在读取的所述第一个数据序列中,将所述源起始地址之前的地址中存放的数据移除,并选取从所述源起始地址开始对应的数据作为有效数据传输;N为大于等于1的整数。例如,在本公开至少一实施例提供的数据传输方法中,所述源起始地址对应于所述第一个数据序列的第x位数据,将所述源起始地址之前的地址中存放的数据移除,包括:将所述第一个数据序列包括的第x至第X位数据从所述源起始地址处移动低x-1位,以将所述第x位数据移至所述第一个数据序列的所述首地址处;将移位后的所述第一个数据序列的高x-1位数据赋值为0;x为大于等于1小于等于N的整数,X表示所述第一数据序列的位宽,为大于1的整数。例如,本公开至少一实施例提供的数据传输方法,还包括:基于所述数据搬运信息将从所述第一存储单元读取的所述N个数据序列写入第二存储单元;在第h个数据序列的数据写入过程中,将所述第h个数据序列的首地址处的数据写入到所述目的起始地址处,并从所述目的起始地址开始依次写入所述第h个数据序列中的数据;h为大于等于1且小于等于N的整数。例如,在本公开至少一实施例提供的数据传输方法中,所述第h个数据序列的目的起始地址与所述首地址的差值为y,将第h个数据序列的首地址处的数据写入到所述目的起始地址处,并从所述目的起始地址开始依次写入所述第h个数据序列中的数据,包括:将所述第h个数据序列的数据均移位y位地址,以将所述第h个数据序列的首地址处的数据写入到所述目的起始地址处。例如,在本公开至少一实施例提供的数据传输方法中,所述N个数据序列的位宽相同。例如,在本公开至少一实施例提供的数据传输方法中,在获取数据搬运信息之后,且从第一存储单元中读取所述N个数据序列之前,所述数据传输方法还包括:向所述第一存储单元发送与所述N个数据序列一一对应的读取数据请求;在向所述第一存储单元发送所述读取数据请求时,将标记存储单元中用于存储所述读取数据请求对应的标记信息的地址发送给所述第一存储单元,并标记所述读取数据请求的发送顺序,同时将所述标记信息存储在所述标记存储单元中,所述标记信息包括各个数据序列的所述源起始地址、读取数据序列的位宽以及缓存起始地址。例如,在本公开至少一实施例提供的数据传输方法中,基于所述数据搬运信息将从所述第一存储单元读取的所述N个数据序列写入第二存储单元,包括:响应于顺序发送的所述读取数据请求从所述第一存储单元中乱序返回所述N个数据序列,同时乱序返回与所述N个数据序列一一对应的标记信息的地址,根据所述标记信息的地址读取所述标记存储单元中与读取的数据序列对应的标记信息,以根据所述标记信息将所述源起始地址之前的地址中存放的数据移除;在从所述第一存储单元中乱序返回所述N个数据序列之后,所述数据传输方法还包括:将乱序返回的所述N个数据序列的有效数据、所述读取数据序列的位宽以及所述缓存起始地址写入第一缓存单元,并标记所述第一存储单元响应于读取数据请求返回数据序列的返回顺序。例如,在本公开至少一实施例提供的数据传输方法中,在将读取的所述N个数据序列、所述读取数据序列的位宽以及所述缓存起始地址写入所述第一缓存单元后,所述数据传输方法还包括:从所述第一缓存单元中读取所述N个数据序列,并将所述N个数据序列写入至第三存储单元,在将所述第h个数据序列写入所述第三存储单元的过程中,将所述第h个数据序列的首地址处的数据写入到所述缓存起始地址处,并从所述缓存起始地址开始依次写入所述第h个数据序列中的数据。例如,在本公开至少一实施例提供的数据传输方法中,所述第三存储单元包括第一存储子单元和第二存储子单元,所述数据传输方法还包括:采用乒乓操作将存储在所述第一缓存单元中的所述N个数据序列写入所述第一存储子单元和所述第二存储子单元。例如,在本公开至少一实施例提供的数据传输方法中,在将所述N个数据序列写入至所述第三存储单元后,所述数据传输方法还包括:依序判断对应于所述N个数据序列的所述N个读取数据请求的返回顺序的标记是否有效;如果有效,则从所述第三存储单元中依序读出所述N个数据序列。例如,在本公开至少一实施例提供的数据传输方法中,从所述第三存储单元依序读出所述N个数据序列包括:分别获取所述N个数据序列的读起始地址;在从所述第三存储单元中读取的所述第一个数据序列中,将所述读起始地址处的数据移至所述第一个数据序列的首地址处,以将所述读起始地址之前的地址中存放的数据移除,并选取从所述读起始地址开始对应的数据作为有效数据传输。例如,在本公开至少一实施例提供的数据传输方法中,从所述第三存储单元中依序读出所述N个数据序列之后,所述数据传输方法还包括:将依序读出的所述N个数据序列依序写入第二缓存单元。例如,在本公开至少一实施例提供的数据传输方法中,基于所述数据搬运信息将从所述第一存储单元读取的所述N个数据序列写入第二存储单元,还包括:根据所述标记信息从所述第二缓存单元中依序读出所述N个数据序列,并获取所述N个数据序列的目的起始地址;基于所述N个数据序列的目的起始地址将所述N个数据序列依序写入所述第二存储单元;在第h个数据序列的数据写入过程中,将所述第h个数据序列的首地址处的数据写入到所述目的起始地址处,并从所述目的起始地址开始依次写入所述第h个数据序列中的数据。例如,在本公开至少一实施例提供的数据传输方法中,所述N个数据序列的位宽为32字节或64字节。本公开至少一实施例还提供一种数据传输装置,包括:数据获取单元,配置为获取数据搬运信息,所述数据搬运信息包括源起始地址、目的起始地址和传输数据量,所述传输数据量的数据包括N个数据序列,分为N次传输;数据读取单元,配置为基于所述数据搬运信息从第一存储单元中读取所述N个数据序列,所述N个数据序列中的第一个数据序列的地址包括首地址和所述源起始地址,在读取的所述第一个数据序列中,将所述源起始地址之前的地址中存放的数据移除,并选取从所述源起始地址开始对应的数据作为有效数据传输;N为大于等于1的整数。例如,本公开至少一实施例提供的数据传输装置,还包括:数据写入单元,配置为本文档来自技高网...

【技术保护点】
1.一种数据传输方法,应用于计算机系统中,所述数据传输方法包括:/n获取数据搬运信息,其中,所述数据搬运信息包括源起始地址、目的起始地址和传输数据量,所述传输数据量的数据包括N个数据序列,分为N次传输;/n基于所述数据搬运信息从第一存储单元中读取所述N个数据序列,其中,所述N个数据序列中的第一个数据序列的地址包括首地址和所述源起始地址,/n其中,在读取的所述第一个数据序列中,将所述源起始地址之前的地址中存放的数据移除,并选取从所述源起始地址开始对应的数据作为有效数据传输;/n其中,N为大于等于1的整数。/n

【技术特征摘要】
1.一种数据传输方法,应用于计算机系统中,所述数据传输方法包括:
获取数据搬运信息,其中,所述数据搬运信息包括源起始地址、目的起始地址和传输数据量,所述传输数据量的数据包括N个数据序列,分为N次传输;
基于所述数据搬运信息从第一存储单元中读取所述N个数据序列,其中,所述N个数据序列中的第一个数据序列的地址包括首地址和所述源起始地址,
其中,在读取的所述第一个数据序列中,将所述源起始地址之前的地址中存放的数据移除,并选取从所述源起始地址开始对应的数据作为有效数据传输;
其中,N为大于等于1的整数。


2.根据权利要求1所述的数据传输方法,其中,所述源起始地址对应于所述第一个数据序列的第x位数据,
将所述源起始地址之前的地址中存放的数据移除,包括:
将所述第一个数据序列包括的第x至第X位数据从所述源起始地址处移动低x-1位,以将所述第x位数据移至所述第一个数据序列的所述首地址处;
将移位后的所述第一个数据序列的高x-1位数据赋值为0;
其中,x为大于等于1小于等于N的整数,X表示所述第一数据序列的位宽,为大于1的整数。


3.根据权利要求1或2所述的数据传输方法,还包括:
基于所述数据搬运信息将从所述第一存储单元读取的所述N个数据序列写入第二存储单元;
其中,在第h个数据序列的数据写入过程中,将所述第h个数据序列的首地址处的数据写入到所述目的起始地址处,并从所述目的起始地址开始依次写入所述第h个数据序列中的数据;
其中,h为大于等于1且小于等于N的整数。


4.根据权利要求3所述的数据传输方法,其中,所述第h个数据序列的目的起始地址与所述首地址的差值为y,
将第h个数据序列的首地址处的数据写入到所述目的起始地址处,并从所述目的起始地址开始依次写入所述第h个数据序列中的数据,包括:
将所述第h个数据序列的数据均移位y位地址,以将所述第h个数据序列的首地址处的数据写入到所述目的起始地址处。


5.根据权利要求1-4任一所述的数据传输方法,其中,所述N个数据序列的位宽相同。


6.根据权利要求3所述的数据传输方法,其中,在获取数据搬运信息之后,且从第一存储单元中读取所述N个数据序列之前,
所述数据传输方法还包括:
向所述第一存储单元发送与所述N个数据序列一一对应的读取数据请求,
其中,在向所述第一存储单元发送所述读取数据请求时,将标记存储单元中用于存储所述读取数据请求对应的标记信息的地址发送给所述第一存储单元,并标记所述读取数据请求的发送顺序,同时将所述标记信息存储在所述标记存储单元中,所述标记信息包括各个数据序列的所述源起始地址、读取数据序列的位宽以及缓存起始地址。


7.根据权利要求6所述的数据传输方法,其中,基于所述数据搬运信息将从所述第一存储单元读取的所述N个数据序列写入第二存储单元,包括:
响应于顺序发送的所述读取数据请求从所述第一存储单元中乱序返回所述N个数据序列,同时乱序返回与所述N个数据序列一一对应的标记信息的地址,根据所述标记信息的地址读取所述标记存储单元中与读取的数据序列对应的标记信息,以根据所述标记信息将所述源起始地址之前的地址中存放的数据移除;
其中,在从所述第一存储单元中乱序返回所述N个数据序列之后,所述数据传输方法还包括:
将乱序返回的所述N个数据序列的有效数据、所述读取数据序列的位宽以及所述缓存起始地址写入第一缓存单元,并标记所述第一存储单元响应于读取数据请求返回数据序列的返回顺序。


8.根据权利要求7所述的数据传输方法,其中,在将读取的所述N个数据序列、所述读取数据序列的位宽以及所述缓存起始地址写入所述第一缓存单元后,所述数据传输方法还包括:
从所述第一缓存单元中读取所述N个数据序列,并将所述N个数据序列写入至第三存储单元,
其中,在将所述第h个数据序列写入所述第三存储单元的过程中,将所述第h个数据序列的首地址处的数据写入到所述缓存起始地址处,并从所述缓存起始地址开始依次写入所述第h个数据序列中的数据。


9.根据权利要求8所述的数据传输方法,其中,所述第三存储单元包括第一存储子单元和第二存储子单元,所述数据传输方法还包括:
采用乒乓操作将存储...

【专利技术属性】
技术研发人员:沈祥
申请(专利权)人:成都海光微电子技术有限公司
类型:发明
国别省市:四川;51

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1