发明内容
为解决上述技术问题,本申请实施例提供一种DMA数据传输控制方法及系统,以增加PCIE总线可负载的硬件板卡的数量。
技术方案如下:
一种DMA数据传输控制方法,DMA控制器集成在硬件板卡上,所述硬件板卡上的第一BAR寄存器包括若干个控制寄存器;当接收到读DMA数据的请求时,所述DMA数据传输控制方法包括:
CPU读所述第一BAR寄存器中的第一控制寄存器,以判断硬件板卡是否准备好DMA数据;
当判断出所述硬件板卡准备好DMA数据时,读所述第一BAR寄存器中的第二控制寄存器,以获取DMA数据的长度;
根据DMA数据传输长度在主机板的内存中配置用于存储DMA数据的内存空间,并将所配置的内存空间的起始地址写入所述第一BAR寄存器的第三控制寄存器中;
写所述第一BAR寄存器的第四控制寄存器,以触发所述DMA控制器依据所述内存空间的起始地址将所述硬件板卡中的DMA数据传输至所配置的用于存储DMA数据的内存空间中。
上述方法,优选的,在读所述第一BAR寄存器中的第一控制寄存器之前,还包括:
写所述第一BAR寄存器中的第五控制寄存器,以关闭所述硬件板卡的中断矢量总开关;
在获取DMA数据长度后,根据DMA数据长度在主机板的内存中配置用于存储所述DMA数据的内存空间之前还包括:
写所述第一BAR寄存器中的第五控制寄存器,以开启所述硬件板卡的中断矢量总开关。
上述方法,优选的,在写所述第一BAR寄存器的第四控制寄存器后还包括:
接收所述硬件板卡发送的DMA数据传输完成中断信号;
将接收到的DMA数据发送给数据请求方;
写所述第一BAR寄存器的第五控制寄存器,以关闭硬件板卡的中断矢量总开关;
释放所配置的用于存储所述DMA数据的内存空间。
一种DMA数据传输控制系统,应用于CPU,DMA控制器集成在硬件板卡上,所述硬件板卡上的第一BAR寄存器包括若干个控制寄存器;所述DMA数据传输控制系统包括:
判断模块,用于在接收到读DMA数据的请求时,读所述第一BAR寄存器中的第一控制寄存器,判断硬件板卡是否准备好DMA数据;
数据长度获取模块,用于在所述判断模块判断出所述硬件板卡准备好DMA数据时,读所述第一BAR寄存器中的第二控制寄存器,以获取DMA数据的长度;
第一空间配置模块,用于根据DMA数据传输长度在主机板的内存中配置用于存储DMA数据的内存空间,并将所配置的内存空间的起始地址写入所述第一BAR寄存的第三控制寄存器中;
第一触发模块,用于写所述第一BAR寄存器的第四控制寄存器,以触发所述DMA控制器依据所述内存空间的起始地址将所述硬件板卡中的DMA数据传输至所配置的用于存储DMA数据的内存空间中。
上述系统,优选的,还包括:
第一中断矢量控制模块,用于写所述第一BAR寄存器中的第五控制寄存器,以关闭所述硬件板卡的中断矢量总开关;
所述判断模块用于在所述第一中断矢量控制模块写所述第一BAR寄存器中的第四控制寄存器后,读所述第一BAR寄存器中的第一控制寄存器;
第二中断矢量控制模块,用于在所述数据长度获取模块读所述第一BAR寄存器中的第二控制寄存器后,写所述第一BAR寄存器中的第五控制寄存器,以开启所述硬件板卡的中断矢量总开关;
所述第一空间配置模块用于在所述第二中断矢量控制模块写所述第一BAR寄存器中的第五控制寄存器后,根据DMA数据传输长度在主机板的内存中配置用于存储DMA数据的内存空间,并将所配置的内存空间的起始地址写入所述第一BAR寄存器的第三控制寄存器中。
一种DMA数据传输控制方法,DMA控制器集成在硬件板卡上,所述硬件板卡上的第一BAR寄存器包括若干个控制寄存器;当接收到写DMA数据请求时,所述DMA数据传输控制方法包括:
CPU写所述第一BAR寄存器的第六控制寄存器,以复位所述硬件板卡的状态;
在主机板的内存中配置用于存储待发送DMA数据的内存空间,并将配置的内存空间的起始地址写入所述第一BAR寄存器的第七控制寄存器中,以便所述DMA控制器识别所需要写的DMA数据的源地址;
写所述第一BAR寄存器中的第八控制寄存器,以便所述DMA控制器识别所述需要写的DMA数据的长度;
写所述第一BAR寄存器的第四控制寄存器,以触发所述DMA控制器将所配置的用于存储待发送DMA数据的内存空间中的DMA数据传输至所述硬件板卡中。
上述方法,优选的,在写所述第一BAR寄存器的第六控制寄存器之前还包括:
写所述第一BAR寄存器中的第五控制寄存器,以关闭所述硬件板卡的中断矢量总开关;
在写所述第一BAR寄存器的第六控制寄存器之后,写所述第一BAR寄存器的第七控制寄存器之前还包括:
写所述第一BAR寄存器中的第五控制寄存器,以开启所述硬件板卡的中断矢量总开关。
上述方法,优选的,在写所述第一BAR寄存器的第四控制寄存器之后,还包括:
接收所述硬件板卡发送的DMA数据传输完成中断信号;
写所述第一BAR寄存器的第六控制寄存器;
释放所配置的用于存储待发送DMA数据的内存空间。
一种DMA数据传输控制系统,应用于CPU,DMA控制器集成在硬件板卡上,所述硬件板卡上的第一BAR寄存器包括若干个控制寄存器;所述DMA数据传输控制系统包括:
复位模块,用于写所述第一BAR寄存器的第六控制寄存器,以复位所述硬件板卡的状态;
第二空间配置模块,用于在主机板的内存中配置用于存储待发送DMA数据的内存空间,并将配置的内存空间的起始地址写入所述第一BAR寄存器的第七控制寄存器中,以便所述DMA控制器识别所需要写的DMA数据的源地址;
数据长度写模块,用于写所述第一BAR寄存器中的第八控制寄存器,以便所述DMA控制器识别所述需要写的DMA数据的长度;
第二触发模块,用于写所述第一BAR寄存器的第四控制寄存器,以触发所述DMA控制器将所配置的用于存储待发送DMA数据的内存空间中的DMA数据传输至所述硬件板卡中。
上述系统,优选的,还包括:
第四中断矢量控制模块,用于写所述第一BAR寄存器中的第五控制寄存器,以关闭所述硬件板卡的中断矢量总开关;
所述复位模块用于在所述第四中断矢量控制模块写所述第一BAR寄存器中的第五控制寄存器后,写所述第一BAR寄存器的第六控制寄存器;
第五中断矢量控制模块,用于在所述复位模块写所述第一BAR寄存器的第六控制寄存器后,写所述第一BAR寄存器中的第五控制寄存器,以开启所述硬件板卡的中断矢量总开关;
所述第二空间配置模块用于在所述第五中断矢量控制模块写所述第一BAR寄存器中的第五控制寄存器后,在主机板的内存中配置用于存储待发送DMA数据的内存空间,并将配置的内存空间的起始地址写入所述第一BAR寄存器的第七控制寄存器中,以便所述DMA控制器识别所需要写的DMA数据的源地址。
由以上本申请实施例提供的技术方案可见,本申请提供的一种DMA数据传输控制方法,DMA控制器集成在硬件板卡上,因此,DMA控制器可以识别硬件板卡上的物理内存,从而不需要预先将硬件板卡的存储DMA数据的空间映射到主机板的内存中。通过CPU访问硬件板卡中的控制寄存器实现对DMA数据传输的控制,因此,本申请实施例提供的DMA数据传输控制方法,只需要将硬件板卡中的第一BAR寄存器所占用的空间映射到主机板的内存即可,而不需要将硬件板卡中DMA数据的BAR空间映射到主机板的内存中,而控制寄存器所占用的空间远远小于DMA数据所占用的空间,因此,本申请实施例提供的DMA数据传输控制方法减少了硬件板卡映射到主机板内存中的空间,从而在主机板分配给硬件板卡的映射空间不变的情况下,提高了PCIE总线可以负载的硬件板卡的数量。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案。下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
请参看图1,图1为本申请实施例提供的一种DMA数据传输控制方法的流程图,本申请实施例中,DMA控制器集成在硬件板卡上,所述硬件板卡上的第一BAR寄存器包括若干个控制寄存器;当接收到读DMA数据的请求时,所述DMA数据传输控制方法包括:
步骤S11:CPU读所述第一BAR寄存器中的第一控制寄存器,以判断硬件板卡是否准备好DMA数据;
本申请实施例提供的DMA数据传输控制方法应用于CPU内,当CPU接收到读DMA数据的请求时,读第一BAR寄存器中的第一控制寄存器,以判断硬件板卡是否准备好DMA数据;该第一控制寄存器可以只占用第一BAR寄存器中的一个比特位来标示DMA数据是否已经准备好,例如,当第一控制寄存器中的值为“1”时,说明DMA数据已经准备好,否则说明DMA数据没有准备好。
其中,对第一控制寄存器的写操作是有硬件板卡侧完成,即当硬件板卡准备好DMA数据时,硬件板卡会写第一控制寄存器,例如,可以在第一控制寄存器中写“1”,以标示DMA数据已经准备完成。
步骤S12:当判断出所述硬件板卡准备好DMA数据时,读所述第一BAR寄存器中的第二控制寄存器,以获取DMA数据的长度;
当硬件板卡准备好DMA数据后,除了写第一控制寄存器以标示DMA数据已经准备好,还会写第二控制寄存器,以标明所准备好的DMA数据的长度。
步骤S13:根据DMA数据传输长度在主机板的内存中配置用于存储DMA数据的内存空间,并将所配置的内存空间的起始地址写入所述第一BAR寄存器的第三控制寄存器中;
CPU通过读所述第一BAR寄存器中的第二控制寄存器获取DMA数据的长度后,在内存中为待传输的DMA数据开辟内存空间作为DMA传输的目的地址,并将开辟的内存空间的起始地址通过写入第一BAR寄存器中的第三控制寄存器的方式告知DMA控制器。而DMA数据的源地址为硬件板卡默认已知的,不需要CPU进行操作。
步骤S14:写所述第一BAR寄存器的第四控制寄存器,以触发所述DMA控制器依据所述内存空间的起始地址将所述硬件板卡中的DMA数据传输至所配置的用于存储DMA数据的内存空间中。
具体的,可以通过写所述第一BAR寄存器的第四控制寄存器实现向硬件板卡发送DMA读启动脉冲,从而使能DMA数据传输。例如,可以先对第四控制寄存器写“1”再写“0”实现向硬件板卡发送下降沿信号,硬件板卡在识别到下降沿后,开始进行DMA数据传输。
本申请实施例提供的DMA数据传输控制方法,DMA控制器集成在硬件板卡上,因此,DMA控制器可以识别硬件板卡上的物理内存,从而不需要预先将硬件板卡的存储DMA数据的空间映射到主机板的内存中。而当需要读DMA数据时,当硬件板卡准备好DMA数据后,才根据DMA数据传输长度在主机板的内存中配置用于存储所传输的DMA数据的内存空间。
由此可知,本申请实施例提供的DMA数据传输控制方法,将DMA控制器集成在硬件板卡上,并通过CPU访问硬件板卡中的控制寄存器实现对DMA数据传输的控制。因此,本申请实施例提供的DMA数据传输控制方法,只需要将硬件板卡中的第一BAR寄存器所占用的空间映射到主机板的内存即可,而不需要将硬件板卡中DMA数据的BAR空间映射到主机板的内存中,而控制寄存器所占用的空间远远小于DMA数据所占用的空间,因此,本申请实施例提供的DMA数据传输控制方法减少了由硬件板卡映射到主机板内存中的空间,从而在主机板分配给硬件板卡的映射空间不变的情况下,提高了PCIE总线可以负载的硬件板卡的数量。
在图1所示实施例的基础上,为了保证DMA数据传输不被中断,本申请实施例提供的另一种DMA数据传输控制方法的流程图如图2所示,在读所述第一BAR寄存器中的第一控制寄存器之前,还可以包括:
步骤S21:写所述第一BAR寄存器中的第五控制寄存器,以关闭所述硬件板卡的中断矢量总开关;
也就是说,CPU通过写第一BAR寄存器中的第五控制寄存器控制硬件板卡的中断矢量总开关的开或关,由于中断矢量总开的状态只有开或关,因此,第五控制寄存器可以只占用一个比特位的空间,当关闭硬件板卡的中断矢量总开关时,硬件板卡上的所有中断矢量都不能发送中断信号,而只有开启硬件板卡的中断矢量总开关时,硬件板卡才可以向CPU发送中断信号;
而且,为了进一步保证关闭硬件板卡的中断矢量总开关时,硬件板卡不向CPU发送中断信号,在关闭硬件板卡的中断矢量总开关的同时,还可以写所述第一BAR寄存器中的第九控制寄存器,以屏蔽所有中断矢量发送中断信号。
在获取DMA数据长度后,根据DMA数据长度在主机板的内存中配置用于存储所述DMA数据的内存空间之前还可以包括:
步骤S22:写所述第一BAR寄存器中的第五控制寄存器,以开启所述硬件板卡的中断矢量总开关。
当开启硬件板卡的中断矢量总开关时,硬件板卡上的各个中断源矢量可以发送中断信号;而如果之前关闭硬件板卡的中断矢量总开关的同时还屏蔽所有中断矢量发送中断信号,则在开启所述硬件板卡的中断矢量总开关后,还需要写所述第一BAR寄存器中的第九控制寄存器,以解除对各个中断矢量的屏蔽。
在图1或图2所示实施例的基础上,本申请实施例提供的又一种DMA数据传输控制方法的流程图如图3所示,在写所述第一BAR寄存器的第四控制寄存器后,还可以包括:
步骤S31:接收所述硬件板卡发送的DMA数据传输完成中断信号;
硬件板卡发送完DMA数据后,会向CPU发送一个中断信号,以示DMA数据已传输完成。
步骤S32:将接收到的DMA数据发送给数据请求方;
步骤S33:写所述第一BAR寄存器的第五控制寄存器,以关闭硬件板卡的中断矢量总开关;
步骤S34:释放所配置的用于存储所述DMA数据的内存空间。
在将DMA数据发送给数据请求方后,关闭硬件板卡的中断矢量总开关,并释放为DMA数据开辟的内存。
与图1所示方法实施例相对应,本申请实施例还提供一种DMA数据传输系统,本申请实施例提供的传输系统应用于CPU,其中,DMA控制器集成在硬件板卡上,所述硬件板卡上的第一BAR寄存器包括若干个控制寄存器;本申请实施例提供的一种DMA数据传输控制系统的结构示意图如图4所示,可以包括:
判断模块41,数据长度获取模块42,第一空间配置模块43和第一触发模块44;其中,
判断模块41用于在接收到读DMA数据的请求时,读所述第一BAR寄存器中的第一控制寄存器,判断硬件板卡是否准备好DMA数据;
数据长度获取模块42用于在所述判断模块判断出所述硬件板卡准备好DMA数据时,读所述第一BAR寄存器中的第二控制寄存器,以获取DMA数据的长度;
第一空间配置模块43用于根据DMA数据传输长度在主机板的内存中配置用于存储DMA数据的内存空间,并将所配置的内存空间的起始地址写入所述第一BAR寄存的第三控制寄存器中;
第一触发模块44用于写所述第一BAR寄存器的第四控制寄存器,以触发所述DMA控制器依据所述内存空间的起始地址将所述硬件板卡中的DMA数据传输至所配置的用于存储DMA数据的内存空间中。
本申请实施例提供的DMA数据传输控制系统,DMA控制器集成在硬件板卡上,因此,DMA控制器可以识别硬件板卡上的物理内存,从而不需要预先将硬件板卡的存储DMA数据的空间映射到主机板的内存中。而当需要读DMA数据时,当判断模块判断出硬件板卡准备好DMA数据,数据长度获取模块获取DMA数据长度后,第一空间配置模块才根据DMA数据传输长度在主机板的内存中配置用于存储所传输的DMA数据的内存空间。
由此可知,本申请实施例提供的DMA数据传输控制系统,将DMA控制器集成在硬件板卡上,并通过CPU访问硬件板卡中的控制寄存器实现对DMA数据传输的控制。因此,本申请实施例提供的DMA数据传输控制系统,只需要将硬件板卡中的第一BAR寄存器所占用的空间映射到主机板的内存即可,而不需要将硬件板卡中DMA数据的BAR空间映射到主机板的内存中,而控制寄存器所占用的空间远远小于DMA数据所占用的空间,因此,本申请实施例提供的DMA数据传输控制方法减少了由硬件板卡映射到主机板内存中的空间,从而在主机板分配给硬件板卡的映射空间不变的情况下,提高了PCIE总线可以负载的硬件板卡的数量。
在图4所示实施例的基础上,本申请实施例提供的另一种DMA数据传输控制系统的结构示意图如图5所示,还可以包括:
第一中断矢量控制模块51和第二中断矢量控制模块52;其中,
第一中断矢量控制模块51用于写所述第一BAR寄存器中的第五控制寄存器,以关闭所述硬件板卡的中断矢量总开关;
所述判断模块41用于在所述第一中断矢量控制模块51写所述第一BAR寄存器中的第四控制寄存器后,读所述第一BAR寄存器中的第一控制寄存器;
第二中断矢量控制模块52用于在所述数据长度获取模块42读所述第一BAR寄存器中的第二控制寄存器后,写所述第一BAR寄存器中的第五控制寄存器,以开启所述硬件板卡的中断矢量总开关;
所述第一空间配置模块43用于在所述第二中断矢量控制模块52写所述第一BAR寄存器中的第五控制寄存器后,根据DMA数据传输长度在主机板的内存中配置用于存储DMA数据的内存空间,并将所配置的内存空间的起始地址写入所述第一BAR寄存器的第三控制寄存器中。
在图4或图5所示实施例的基础上,本申请实施例提供的又一种DMA数据传输系统的结构示意图如图6所示,还可以包括:
第一接收模块61,数据发送模块62,第三中断矢量控制模块63和第一释放模块64;其中,
接收模块61用于接收所述硬件板卡发送的DMA数据传输完成中断信号;
数据发送模块62用于将接收到的DMA数据发送给数据请求方;
第三中断矢量控制模块63用于写所述第一BAR寄存器的第五控制寄存器,以关闭硬件板卡的中断矢量总开关;
释放模块64用于释放所配置的用于存储所述DMA数据的内存空间。
当CPU接收到写DMA数据的请求时,本申请实施例提供又一种DMA数据传输控制方法,本申请实施例中,DMA控制器集成在硬件板卡上,所述硬件板卡上的第一BAR寄存器包括若干个控制寄存器;当接收到写DMA数据请求时,所述DMA数据传输控制方法的流程图如图7所示,可以包括:
步骤S71:CPU写所述第一BAR寄存器的第六控制寄存器,以复位所述硬件板卡的状态;
优选的,可以通过写所述第一BAR寄存器的第六控制寄存器向硬件板卡发送脉冲信号的方式触发所述硬件板卡复位,例如,可以将第六控制寄存器先写“1”再写“0”,从而向第六控制寄存器发送一个下降沿,硬件板卡在捕捉到该下降沿后,复位硬件板卡的状态,具体硬件板卡如何复位其状态属于本领域的公知常识,这里不再赘述。
步骤S72:在主机板的内存中配置用于存储待发送DMA数据的内存空间,并将配置的内存空间的起始地址写入所述第一BAR寄存器的第七控制寄存器中,以便所述DMA控制器识别所需要写的DMA数据的源地址;
在发送DMA数据之前,CPU先为待发送的数据开辟内存空间,即DMA数据的源地址,并将待发送的数据存储至该内存空间中,然后将配置的内存空间的起始地址写入所述第一BAR寄存器的第七控制寄存器中。而DMA数据的目的地址是硬件板卡默认已知的,不需要CPU进行操作。
步骤S73:写所述第一BAR寄存器中的第八控制寄存器,以便所述DMA控制器识别所述需要写的DMA数据的长度;
硬件板卡可以通过所述DMA数据的长度判断DMA数据是否传输完成。
步骤S74:写所述第一BAR寄存器的第四控制寄存器,以触发所述DMA控制器将所配置的用于存储待发送DMA数据的内存空间中的DMA数据传输至所述硬件板卡中。
具体的,可以通过写所述第一BAR寄存器的第四控制寄存器实现向硬件板卡发送DMA写启动脉冲,从而使能DMA数据传输。例如,可以先对第四控制寄存器写“1”再写“0”实现向硬件板卡发送下降沿信号,硬件板卡在识别到下降沿后,开始进行DMA数据传输。
本申请实施例提供的DMA数据传输控制方法,DMA控制器集成在硬件板卡上,因此,DMA控制器可以识别硬件板卡上的物理内存,从而不需要预先将硬件板卡的存储DMA数据的空间映射到主机板的内存中。而当需要写DMA数据时,才在主机板的内存中配置用于存储所传输的DMA数据的内存空间,并将配置的内存空间的起始地址以及DMA数据的长度通过写控制寄存器的方式告知DMA控制器。
由此可知,本申请实施例提供的DMA数据传输控制方法,将DMA控制器集成在硬件板卡上,并通过CPU访问硬件板卡中的控制寄存器实现对DMA数据传输的控制。因此,本申请实施例提供的DMA数据传输控制方法,只需要将硬件板卡中的第一BAR寄存器所占用的空间映射到主机板的内存即可,而不需要将硬件板卡中DMA数据的BAR空间映射到主机板的内存中,而控制寄存器所占用的空间远远小于DMA数据所占用的空间,因此,本申请实施例提供的DMA数据传输控制方法减少了由硬件板卡映射到主机板内存中的空间,从而在主机板分配给硬件板卡的映射空间不变的情况下,提高了PCIE总线可以负载的硬件板卡的数量。
在图7所示实施例的基础上,本申请实施例提供的又一种DMA数据传输控制方法的流程图如图8所示,在写所述第一BAR寄存器的第六控制寄存器之前还可以包括:
步骤S81:写所述第一BAR寄存器中的第五控制寄存器,以关闭所述硬件板卡的中断矢量总开关;
在写所述第一BAR寄存器的第六控制寄存器之后,写所述第一BAR寄存器的第七控制寄存器之前还包括:
步骤S82:写所述第一BAR寄存器中的第五控制寄存器,以开启所述硬件板卡的中断矢量总开关。
在图7或图8所示实施例的基础上,本申请实施例提供的又一种DMA数据传输控制方法的流程图如图9所示,在写所述第一BAR寄存器的第四控制寄存器之后还可以包括:
步骤S91:接收所述硬件板卡发送的DMA数据传输完成中断信号;
步骤S92:写所述第一BAR寄存器的第六控制寄存器,以复位所述硬件板卡的状态;
步骤S93:释放所配置的用于存储待发送DMA数据的内存空间。
与图7所示方法实施例相对应,本申请实施例提供的又一种DMA数据传输控制系统的结构示意图如图10所示,可以包括:
复位模块101,第二空间配置模块102,数据长度写模块103和第二触发模块104;其中,
第一复位模块101用于写所述第一BAR寄存器的第六控制寄存器,以复位所述硬件板卡的状态;
第二空间配置模块102用于在主机板的内存中配置用于存储待发送DMA数据的内存空间,并将配置的内存空间的起始地址写入所述第一BAR寄存器的第七控制寄存器中,以便所述DMA控制器识别所需要写的DMA数据的源地址;
数据长度写模块103用于写所述第一BAR寄存器中的第八控制寄存器,以便所述DMA控制器识别所述需要写的DMA数据的长度;
第二触发模块104用于写所述第一BAR寄存器的第四控制寄存器,以触发所述DMA控制器将所配置的用于存储待发送DMA数据的内存空间中的DMA数据传输至所述硬件板卡中。
本申请实施例提供的DMA数据传输控制系统,DMA控制器集成在硬件板卡上,因此,DMA控制器可以识别硬件板卡上的物理内存,从而不需要预先将硬件板卡的存储DMA数据的空间映射到主机板的内存中。而当需要写DMA数据时,第二空间配置模块才在主机板的内存中配置用于存储所传输的DMA数据的内存空间,并将配置的内存空间的起始地址通过写控制寄存器的方式告知DMA控制器,数据长度写模块通过写控制寄存器的方式将DMA数据的长度告知DMA控制器。
由此可知,本申请实施例提供的DMA数据传输控制系统,将DMA控制器集成在硬件板卡上,并通过CPU访问硬件板卡中的控制寄存器实现对DMA数据传输的控制。因此,本申请实施例提供的DMA数据传输控制系统,只需要将硬件板卡中的第一BAR寄存器所占用的空间映射到主机板的内存即可,而不需要将硬件板卡中DMA数据的BAR空间映射到主机板的内存中,而控制寄存器所占用的空间远远小于DMA数据所占用的空间,因此,本申请实施例提供的DMA数据传输控制方法减少了由硬件板卡映射到主机板内存中的空间,从而在主机板分配给硬件板卡的映射空间不变的情况下,提高了PCIE总线可以负载的硬件板卡的数量。
在图10所示实施例的基础上,本申请实施例提供的又一种DMA数据传输控制系统的结构示意图如图11所示,还可以包括:
第四中断矢量控制模块111和第五中断矢量控制模块112;其中,
第四中断矢量控制模块111用于写所述第一BAR寄存器中的第五控制寄存器,以关闭所述硬件板卡的中断矢量总开关;
所述第一复位模块101用于在所述第四中断矢量控制模块111写所述第一BAR寄存器中的第五控制寄存器后,写所述第一BAR寄存器的第六控制寄存器;
第五中断矢量控制模块112用于在所述第一复位模块101写所述第一BAR寄存器的第六控制寄存器后,写所述第一BAR寄存器中的第五控制寄存器,以开启所述硬件板卡的中断矢量总开关;
所述第二空间配置模块102用于在所述第五中断矢量控制模块112写所述第一BAR寄存器中的第五控制寄存器后,在主机板的内存中配置用于存储待发送DMA数据的内存空间,并将配置的内存空间的起始地址写入所述第一BAR寄存器的第七控制寄存器中,以便所述DMA控制器识别所需要写的DMA数据的源地址。
在图10或图11所示实施例的基础上,本申请实施例提供的又一种DMA数据传输控制系统的结构示意图如图12所示,还可以包括:
第二接收模块121,用于接收所述硬件板卡发送的DMA数据传输完成中断信号;
第二复位模块122,用于在所述第二接收模块121接收到DMA数据传输完成中断信号后,写所述第一BAR寄存器的第六控制寄存器;
第二释放模块123,用于在所述第二复位模块101写所述第一BAR寄存器的第六控制寄存器后,释放所配置的用于存储待发送DMA数据的内存空间。
下面举例对本申请实施例提供的各个控制寄存器进行说明:
读寄存器举例说明:
写寄存器举例说明:
本示例中,读、写寄存器所占用的空间仅为128KByte,远远小于DMA数据的所占用的空间,而本申请实施例提供的DMA数据传输控制方法,只需要将读、写寄存器所占用的空间映射到主机板的内存中即可,而不用将DMA数据的所占用的空间映射到主机板的内存中,从而减少了由硬件板卡映射到主机板内存中的空间,从而在主机板分配给硬件板卡的映射空间不变的情况下,提高了PCIE总线可以负载的硬件板卡的数量。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。以上所述仅是本申请的具体实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。