【技术实现步骤摘要】
数据搬移方法、装置及系统
本申请涉及数据处理领域,特别是涉及一种数据搬移方法、一种数据搬移装置和一种数据搬移系统。
技术介绍
存储空间直接访问(DirectMemoryAccess,DMA)表示一种快速搬移数据的机制,例如,将外部I/O设备的数据搬移到上位机的机制。DMA控制器为用于完成数据搬移的控制器。目前,DMA控制器搬移数据的过程包括:DMA控制器在接收到I/O设备的DMA请求后,在DMA控制器处于准备搬移数据的状态下,给I/O设备回复应答信号;并将DMA请求中用于表示待搬移数据大小的数据量分割为多个子数据量,针对每个子数据量,DMA控制器向读总线发送读请求与向写总线发送写请求。但是,会出现读总线被挂死和/或写总线效率低的问题。
技术实现思路
基于此,本申请提出了一种数据搬移方法,用以实现总线在响应读请求时被挂死和/或防止写入上位机的数据被覆盖。本申请还提供了一种基于FPGA的数据搬移装置与一种数据搬移系统,用以保证上述方法在实际中的实现及应用。本申请提供的技术方案为:本申请提供了一种数据搬移方法,应用于DMA控制器,所述DMA控制器将I/O设备的待搬移数据搬移到上位机,包括:按照预设拆分规则,对I/O设备发送的DMA请求中的数据量进行分割,得到多个子数据量;在对目标子数据量进行响应之前,确定所述DMA控制器当前已响应的子数据量的个数;所述目标子数据量为任一个所述子数据量;通过检测所述多个子数据量对应的数据是否都被写入预设目标存储空间,检测预设目标存储空间中当前是否存在可用存储空间;所述预设目标存储空间为上位机中用于存储所述I/O设备的数据的存储空间;在 ...
【技术保护点】
1.一种数据搬移方法,应用于DMA控制器,所述DMA控制器将I/O设备的待搬移数据搬移到上位机,其特征在于,包括:按照预设拆分规则,对I/O设备发送的DMA请求中的数据量进行分割,得到多个子数据量;在对目标子数据量进行响应之前,确定所述DMA控制器当前已响应的子数据量的个数;所述目标子数据量为任一个所述子数据量;通过检测所述多个子数据量对应的数据是否都被写入预设目标存储空间,检测预设目标存储空间中当前是否存在可用存储空间;所述预设目标存储空间为上位机中用于存储所述I/O设备的数据的存储空间;在所述当前已响应的子数据量的个数不大于预设数量阈值,和/或,所述预设目标存储空间存在可用存储空间,将所述目标子数据量的数据读入所述DMA控制器的预设存储空间,并将所述目标子数据量的数据从所述预设存储空间写入所述上位机;所述预设数量阈值表示所述预设存储空间能够存储的数据对应的子数据量的总个数。
【技术特征摘要】
1.一种数据搬移方法,应用于DMA控制器,所述DMA控制器将I/O设备的待搬移数据搬移到上位机,其特征在于,包括:按照预设拆分规则,对I/O设备发送的DMA请求中的数据量进行分割,得到多个子数据量;在对目标子数据量进行响应之前,确定所述DMA控制器当前已响应的子数据量的个数;所述目标子数据量为任一个所述子数据量;通过检测所述多个子数据量对应的数据是否都被写入预设目标存储空间,检测预设目标存储空间中当前是否存在可用存储空间;所述预设目标存储空间为上位机中用于存储所述I/O设备的数据的存储空间;在所述当前已响应的子数据量的个数不大于预设数量阈值,和/或,所述预设目标存储空间存在可用存储空间,将所述目标子数据量的数据读入所述DMA控制器的预设存储空间,并将所述目标子数据量的数据从所述预设存储空间写入所述上位机;所述预设数量阈值表示所述预设存储空间能够存储的数据对应的子数据量的总个数。2.根据权利要求1所述的方法,其特征在于,所述将所述目标子数据量的数据读入所述DMA控制器的预设存储空间,并将所述目标子数据量的数据从所述预设存储空间写入所述上位机,包括:将用于搬移所述目标子数据量的数据的读请求挂在内部总线;在所述内部总线将所述目标子数据量的数据读入所述预设存储空间后,将用于搬移所述目标子数据量的数据的写请求挂在所述内部总线,使得所述内部总线将所述目标子数据量的数据从所述预设存储空间写入所述上位机。3.根据权利要求1所述的方法,其特征在于,在所述将所述目标子数据量的数据读入所述DMA控制器的预设存储空间之后,还包括:将所述当前已响应的子数据量的个数加1。4.根据权利要求1所述的方法,其特征在于,在所述将所述目标子数据量的数据从所述预设存储空间写入所述上位机之后,还包括:将所述当前已响应的子数据量的个数减1。5.根据权利要求1所述的方法,其特征在于,在所述将所述目标子数据量的数据从所述预设存储空间写入所述上位机之后,还包括:在所述多个子数据量对应的数据都被写入所述预设目标存储空间后,向上位机发送中断指令;所述中断指令用于指示所述上位机将所述预设目标存储空间中的数据进行移除。6.一种数据搬移装置,所述数据搬移装置与内部总线连接,其特征在于,包括:分包模块、流控模块和搬移模块;所述分包模块,用于按照预设拆分规则,对I/O设备发送的DMA请求中的数据量进行分割,得到多个子数据量;所述流控模块,用于确定当前已响应的子数据量的个数,并依据所述当前已响应的子数据量的个数是否大于预设数量阈值,确定预设指示信号的电平值;所述预设数量阈值表示所述搬移装置的预设存储空间能够存储的数据对应的子数据量的总个数;所述流控模块,还用于通过检测预设目标存储空间中是否存在可用存储空间,确定所述I/O设备对应的使能信号的电平值;所述预设目标存储空间为上位机中用于存储所述I/O设备的数据的预设存储空间;所述分包模块,还用于在满足预设条件时,向所述搬移模块发送预设信息;所述预设条件包括:预设指示信号的电平值表示所述当前已响应的子数据量的个数不大于所述预设数量阈值,和/或,所述使能信号的电平值表示所述预设目标存储空间中存在可用存储空间;所述搬移模块,用于在接收到所述预设信息时,将所述目标子数据量的数据读入所述数据搬移装置的预设存储空间,并将所述目标子数据量的数据从所述预设存储空间写入所述预设目标存储空间。7.根据权利要求6所述的数据搬移装置,其特征在于,所述搬移模块包括:读队列子模块、写缓存子模块、...
【专利技术属性】
技术研发人员:黄明军,刘家家,刘辉,
申请(专利权)人:深圳开立生物医疗科技股份有限公司,
类型:发明
国别省市:广东,44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。