1.一种面向GPU实现的虚拟IO ringbuffer的方法,其特征在于,包括:
步骤1、ringbuffer接口(1)初始化ringbuffer虚拟IO控制(2)和ringbuffer IO控制(3)所包含的所有信息;所述所有信息包括:ringbuffer IO控制(3)的读指针、写指针、ringbuffer大小、数据传输启动控制;ringbuffer虚拟IO控制(2)的空闲空间首地址和空闲空间大小;所述ringbuffer虚拟IO控制(2)的空闲空间首地址是指ringbuffer IO控制(3)中ringbuffer的空闲空间首地址;所述ringbuffer虚拟IO控制(2)的空闲空间大小是指ringbuffer IO控制(3)中ringbuffer的空闲空间大小;
步骤2、当有数据需要存储到ringbuffer上时,首先判断ringbuffer虚拟IO控制(2)中记载的ringbuffer的空闲空间大小是否能够存储当前数据,若可以则直接将待存储数据写入ringbuffer的空闲空间首地址开始的连续空间内,数据存储完成后更新ringbuffer IO控制(3)中的写指针信息;若不可以则ringbuffer虚拟IO控制(2)向ringbuffer IO控制(3)发起同步操作,更新ringbuffer虚拟IO控制(2)信息,重新进行数据存储操作;
步骤3、当收到数据传输启动命令时,发送ringbuffer IO控制(3)中ringbuffer上存储的数据信息,发送完成后更新ringbuffer IO控制(3)中的读指针信息;当ringbuffer中的数据存储满空间时,主动发起数据传输操作,发送完成后更新ringbuffer IO控制(3)中的读指针信息。
2.如权利要求1所述的一种面向GPU实现的虚拟IO ringbuffer的方法,其特征在于,
ringbuffer IO控制(3)中:
读指针:表示当前ringbuffer数据搬移到的地址或地址标记;
写指针:表示当前ringbuffer数据存储的地址或者地址标记;
ringbuffer大小:ringbuffer空间总大小;
数据传输启动:用于控制ringbuffer中当前存储数据的传输,可被动启动数据传输操作,也可主动启动数据传输操作。