1、一种节点之间的数据传输系统,用于基于非一致内存访问平台上的至 少两个节点之间数据传输,所述节点包括至少一个处理器核和/或至少一个处 理器、内存、操作系统和操作系统中的协议栈;其特征是,所述节点还包括与 所述协议栈连接的数据传输装置;所述数据传输装置包括: 用于在内存中划分出共享通信缓冲区及共享通信缓冲区控制区,并将所述 共享通信缓冲区的位置和大小公告给其它节点的共享通信缓冲区分配模块; 用于节点之间通过共享通信缓冲区进行消息传递的底层通信模块,所述底 层通信模块包括共享通信缓冲区管理模块、端口地址映射模块、消息传递模块, 所述共享通信缓冲区管理模块,用于在所述共享通信缓冲区中为其他节点 分别分配一个缓冲部分,并将所述缓冲部分的位置和大小进行公告,还用于监 控所述共享通信缓冲区的状态并将其状态记录在所述共享通信缓冲区控制区 中; 所述端口地址映射模块,用于将消息传输的接收方节点号映射到所述共享 通信缓冲区的所述缓冲部分并在所述缓冲部分中寻找消息传输位置; 所述消息传递模块,用于在传输消息时从所述共享通信缓冲区的缓冲部分 中完成消息发送和消息接收;和 将所述底层通信模块模拟为网卡并与节点的协议栈连接的虚拟网卡。 2、根据权利要求1所述的数据传输系统,其特征是,所述公告包括通过 在一个所述节点所管理的内存中建立一个公告区,所有所述节点将所述共享通 信缓冲区的位置和大小在所述公告区公告。 3、根据权利要求1所述的数据传输系统,其特征是,所有所述节点的所 述共享通信缓冲区都集中在其中一个节点上进行管理。 4、根据权利要求1所述的数据传输系统,其特征是,所有所述节点的所 述共享通信缓冲区分布在各自节点上进行管理。 5、根据权利要求1所述的数据传输系统,其特征是,所述协议栈是TCP/IP 协议栈。 6、根据权利要求1所述的数据传输系统,其特征是,共享通信缓冲区管 理模块采用如下流控方法:当共享通信缓冲区的相应缓冲部分满,消息发送请 求失败时,共享通信缓冲区管理模块将阻止继续产生消息传输事件,直到检查 到共享通信缓冲区的相应缓冲部分是不满才重新启动消息传输。 7、根据权利要求1所述的数据传输系统,其特征是,所述消息传递模块 在每个消息发送后立即进行完成操作。 8、根据权利要求1所述的数据传输系统,其特征是,所述消息传递模块 使用流水的消息复制方法,使多个消息的发送和接收操作并行进行。 9、根据权利要求1所述的数据传输系统,其特征是,所述消息传递模块 在发送消息时将消息传递到接收方的共享通信缓冲区中,在接收消息时将消息 从接收方的共享通信缓冲区中取出。 10、根据权利要求1所述的数据传输系统,其特征是,所述消息传递模块 在发送消息时将消息传递到发送方的共享通信缓冲区中,在接收消息时将消息 从发送方的共享通信缓冲区中取出。 11、根据权利要求1所述的数据传输系统,其特征是,所述底层通信模块 还包括消息探询模块,用于探询所述共享通信缓冲区中是否有新的消息到达, 如果有新消息到达则通知协议栈接收消息。 12、根据权利要求11所述的数据传输系统,其特征是,所述消息探询模 块周期性地逐一探询其他节点的所述共享通信缓冲区控制区,确定在给本节点 分配的所述共享通信缓冲区的缓冲部分中是否有新的消息到达;当有新消息到 达时,消息探询模块触发一个软中断,通知协议栈接收消息,当没有新消息到 达时,消息探询模块等待一个周期,再次执行探询操作。 13、根据权利要求12所述的数据传输系统,其特征是,所述周期设为一 次时钟中断的时间周期。 14、根据权利要求12所述的数据传输系统,其特征是,所述节点设置为: 在所述软中断期间,所述消息探询模块执行一次探询操作。 15、根据权利要求1所述的数据传输系统,其特征是,所述虚拟网卡包括: 设备控制模块,用于对虚拟网卡设备初始化,并向节点注册虚拟网卡的打 开和关闭; 消息分析模块,用于对需要发送的消息分析发送和接收地址; 消息发送模块,用于根据所述接收地址,将所述协议栈需要发送的消息传 递给所述底层通信模块; 消息接收模块,用于将所述底层通信模块接收到的消息,封装为系统内核 的数据包,传递给所述协议栈。 16、一种数据传输装置,用于基于非一致内存访问平台上的至少两个节点 之间传输数据,该装置与所述节点的协议栈连接,所述节点包括内存;其特征 在于,包括: 用于在内存中划分出共享通信缓冲区及共享通信缓冲区控制区,并将所述 共享通信缓冲区的位置和大小公告给其它节点的共享通信缓冲区分配模块; 用于节点之间通过共享通信缓冲区进行消息传递的底层通信模块,所述底 层通信模块包括共享通信缓冲区管理模块、端口地址映射模块和消息传递模 块, 所述共享通信缓冲区管理模块,用于在所述共享通信缓冲区中为其他节点 分别分配一个缓冲部分,并将所述缓冲部分的位置和大小进行公告,还用于监 控所述共享通信缓冲区的状态并将其状态记录在所述共享通信缓冲区控制区 中; 所述端口地址映射模块,用于将消息传输的接收方节点号映射到所述共享 通信缓冲区的所述缓冲部分并在所述缓冲部分中寻找消息传输位置; 所述消息传递模块,用于在传输消息时从所述共享通信缓冲区的缓冲部分 中完成消息发送和消息接收;和 将所述底层通信模块模拟为网卡并与节点的协议栈连接的虚拟网卡。 17、根据权利要求16所述的数据传输装置,其特征是,所述公告包括通 过在一个所述节点所管理的内存中建立一个公告区将所述共享通信缓冲区的 位置和大小在所述公告区公告。 18、根据权利要求16所述的数据传输装置,其特征是,所有所述节点的 所述共享通信缓冲区分布在各自节点上进行管理。 19、根据权利要求16所述的数据传输装置,其特征是,所述协议栈是 TCP/IP协议栈。 20、根据权利要求16所述的数据传输装置,其特征是,共享通信缓冲区 管理模块采用如下流控方法:当共享通信缓冲区的相应缓冲部分满,消息发送 请求失败时,共享通信缓冲区管理模块将阻止继续产生消息传输事件,直到检 查到共享通信缓冲区的相应缓冲部分是不满才重新启动消息传输。 21、根据权利要求16所述的数据传输装置,其特征是,所述消息传递模 块在每个消息发送后立即进行完成操作。 22、根据权利要求16所述的数据传输装置,其特征是,所述消息传递模 块使用流水的消息复制方法,使多个消息的发送和接收操作并行进行。 23、根据权利要求16所述的数据传输装置,其特征是,所述消息传递模 块在发送消息时将消息传递到接收方的共享通信缓冲区中,在接收消息时将消 息从接收方的共享通信缓冲区中取出。 24、根据权利要求16所述的数据传输装置,其特征是,所述消息传递模 块在发送消息时将消息传递到发送方的共享通信缓冲区中,在接收消息时将消 息从发送方的共享通信缓冲区中取出。 25、根据权利要求16所述的数据传输装置,其特征是,所述底层通信模 块还包括消息探询模块,用于探询所述共享通信缓冲区中是否有新的消息到 达,如果有新消息到达则通知协议栈接收消息。 26、根据权利要求25所述的数据传输装置,其特征是,所述消息探询模 块周期性地逐一探询其他节点的所述共享通信缓冲区控制区,确定在给本节点 分配的所述共享通信缓冲区的缓冲部分中是否有新的消息到达;当有新消息到 达时,消息探询模块触发一个软中断,通知协议栈接收消息,当没有新消息到 达时,消息探询模块等待一个周期,再次执行探询操作。 27、根据权利要求26所述的数据传输装置,其特征是,所述周期设为一 次时钟中断的时间周期。 28、根据权利要求16所述的数据传输装置,其特征是,所述虚拟网卡包 括: 设备控制模块,用于对虚拟网卡设备初始化,并向节点注册虚拟网卡的打 开和关闭; 消息分析模块,用于对需要发送的消息分析发送和接收地址; 消息发送模块,用于根据所述接收地址,将所述协议栈需要发送的消息传 递给所述底层通信模块; 消息接收模块,用于将所述底层通信模块接收到的消息,封装为系统内核 的数据包,传递给所述协议栈。 29、一种节点之间的数据传输方法,用于非一致内存访问平台上的多个节 点之间传输数据,每个所述节点中包括至少一个处理器核和/或至少一个处理 器以及其上运行的操作系统、内存,包括如下步骤: 步骤S1,在所管理的内存中划分出共享通信缓冲区及共享通信缓冲区控 制区,并将所述共享通信缓冲区的位置和大小公告给其它节点,所有所述节点 的所述共享通信缓冲区分布在各自节点上进行管理,在所述共享通信缓冲区中 分别为其他节点分配一个缓冲部分,并将所述缓冲部分的位置和大小进行公 告; 步骤S2,当发送方发送消息时,通过虚拟网卡将消息传送到共享通信缓 冲区; 步骤S3,当接收方接收消息时,将消息从所述共享通信缓冲区中取出并 将取出的消息通过虚拟网卡传送给操作系统的协议栈。 30、根据权利要求29所述的数据传输方法,其特征是,在所述步骤S1 中,所述将所述共享通信缓冲区的位置和大小公告给其它节点中公告包括通过 在所述节点的内存中建立一个公告区,所有所述节点将所述共享通信缓冲区的 位置和大小在所述公告区公告。 31、根据权利要求29所述的数据传输方法,其特征是,所述步骤S2中包 括流控方法:当所述共享通信缓冲区的相应缓冲部分满,系统的消息发送请求 失败时,将阻止协议栈继续产生消息传输事件,直到检查到共享通信缓冲区的 相应缓冲部分不满才重新启动消息传输。 32、根据权利要求29所述的数据传输方法,其特征是,步骤S2中,在每 个消息发送后立即进行相应的完成操作。 33、根据权利要求29所述的数据传输方法,其特征是,步骤S2中发送方 采用流水方法发送消息。 34、根据权利要求29所述的数据传输方法,其特征是,所述协议栈为 TCP/IP协议栈。 35、根据权利要求29所述的数据传输方法,其特征是,步骤S3中还包括 探询步骤:探询所述共享通信缓冲区中是否有新的消息到达,如果有新消息到 达则通知接收方协议栈接收消息。 36、根据权利要求35所述的数据传输方法,其特征是,所述探询是周期 地逐一探询其它节点的共享通信缓冲区中是否有新的消息到达,如果有新消息 到达则通过发起一个软中断来通知接收方协议栈接收消息。 37、根据权利要求36所述的数据传输方法,其特征是,所述周期为一次 时钟中断的时间周期。 38、根据权利要求36所述的数据传输方法,其特征是,在所述软中断期 间,所述探询步骤只执行一次探询操作。 39、根据权利要求29所述的数据传输方法,其特征是,在步骤S3中接收 方采用流水方法接收消息。 40、根据权利要求29所述的数据传输方法,其特征是,步骤S2中发送方 发送消息时将消息传递到接收方的共享通信缓冲区中;步骤S3中接收方在接 收消息时将消息从接收方的共享通信缓冲区中取出。 41、根据权利要求29所述的数据传输方法,其特征是,步骤S2中发送方 在发送消息时将消息传递到发送方的共享通信缓冲区中,步骤S3中接收方在 接收消息时将消息从发送方的共享通信缓冲区中取出。
展开