[发明专利]多计算机系统中节点的DMA设备及通信方法有效
申请号: | 200910083454.9 | 申请日: | 2009-05-05 |
公开(公告)号: | CN101539902A | 公开(公告)日: | 2009-09-23 |
发明(设计)人: | 王凯;胡涛;曹政;安学军;孙凝晖 | 申请(专利权)人: | 中国科学院计算技术研究所 |
主分类号: | G06F15/173 | 分类号: | G06F15/173;G06F13/28;H04L29/08 |
代理公司: | 北京律诚同业知识产权代理有限公司 | 代理人: | 祁建国;梁 挥 |
地址: | 100080北京*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 计算机系统 节点 dma 设备 通信 方法 | ||
技术领域
本发明涉及DMA(Direct Memory Access,直接内存存取)领域,尤其 涉及多计算机系统中节点的DMA设备及通信方法。
背景技术
在多计算机系统内部,任意节点间经常需要进行数据的交换,因此数据 交换的性能会影响通信的新能。灵活高效地将数据从一个节点的内存复制到 另一个节点的内存中,能够为多计算机系统提供的强大的通信能力。由处理 器直接处理内存数据的存取会带来巨大的处理器开销,而DMA技术能够避免 处理器将处理能力浪费在简单重复的内存读写操作中,因此多计算机系统的 节点间在通信时也会使用DMA技术。实现DMA技术的专用硬件称为DMA设备。
现在通用的微处理器在发出一条或者几条读内存指令后就会处于等待状 态,直到数据返回。当微处理器处于等待状态时不会执行其它指令,这会造 成处理器的吞吐能力和运算能力的浪费。如果需要读取的数据的物理地址是 连续的,微处理器中cache的预取机制可以极大地降低处理器的等待时间, 从而有效地提高处理器的吞吐能力。但是在处理器读内存时,处理器中的运 算部件会长时间空闲,因而造成处理器的运算能力的浪费。同样地,在处理 器写内存时,处理器中的运算部件也会长时间空闲,造成处理器的运算能力 的浪费。
DMA设备能够取代处理器从事简单重复的内存读写操作,避免处理器的 处理能力的浪费。因此,DMA设备广泛应用在单计算机系统和多计算机系统 中。在单计算机系统中,DMA设备能够实现内存到自身、内存到I/O接口的 数据传送。而在多计算机系统中,DMA设备能够按照处理器的命令,读取源 节点的内存中的数据,并写入目标节点的内存中。
在单计算机系统中,处理器通常通过一组寄存器实现对DMA设备的使用。 这组寄存器包括:源地址寄存器、目标地址寄存器、数据长度寄存器和状态 寄存器。源地址寄存器存放需要传送的数据在内存中的首地址;目标地址寄 存器存放用于接收数据的内存空间的首地址;数据长度寄存器存放需要传送 的数据的长度;状态寄存器存放DMA设备的状态。处理器在进行一次DMA数 据传输之前要先检查状态寄存器的值,如果DMA设备处于空闲状态,就设置 好源地址寄存器、目标地址寄存器和数据长度寄存器,然后将状态寄存器设 置为工作状态;如果DMA设备已经处于工作状态,处理器就需要等待。DMA 设备在空闲时如果看到状态寄存器被设置为工作状态就会自动启动,完成 DMA数据传输后又会将状态寄存器设置成空闲状态。
在多计算机系统中,通过类似单计算机系统的一组寄存器来实现对DMA 设备的控制通常是不够的。这是由于多计算机系统中一次DMA数据传输需要 传输的数据量经常很大,并且这些数据在内存空间上是不连续的。此时需要 使用较为复杂的数据结构描述一次DMA数据传输需要的源地址、目标地址和 数据长度等信息,该些按照一定的数据结构组成的信息称为DMA描述符。同 时为了实现通信与计算的重叠,处理器可能会连续发出多次DMA数据传输, 这就需要多计算机系统中DMA设备的启动方式也要与单计算机系统有所不 同。多计算机系统的结构如图1所示,一个节点包括处理器、内存、桥接芯 片和DMA设备,各个节点通过互连网络相互通信。
本领域中常用术语如下。
在多计算机系统中,发起一次DMA数据传输的节点称为本地节点;接收 DMA数据传输的节点称为远端节点。
多计算机系统中的DMA设备通常支持通道,从而实现多个应用程序对单 个DMA设备的共享,使得每个应用程序逻辑上独立拥有能够进行DMA方式数 据传输的设备。
通信库软件,是位于DMA设备和应用程序之间的程序,它根据本发明中 的DMA设备和方法为应用程序提供标准的程序接口。这些标准的程序接口满 足一种或者多种编程模型规范,例如消息传递接口(MPI)规范。
DMA描述符,是将描述一次DMA数据传输需要的源地址、目标地址和数 据长度等信息,按照一定的数据结构组成的信息。
命令窗口,是DMA设备在处理器的I/O空间上映射的一段地址区间,用 于启动DMA设备。处理器将一条DMA命令的描述符填写到一块8字节对齐、 物理地址连续的内存区域,然后将这块内存区域的首地址和长度发送到DMA 设备的命令窗口,以启动一次DMA数据传输。
门铃,是用于启动DMA设备进行一次DMA传输的消息。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院计算技术研究所,未经中国科学院计算技术研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200910083454.9/2.html,转载请声明来源钻瓜专利网。