当前位置: 首页 > 专利查询>R尼古拉斯专利>正文

执行DMA块移动的方法、DMA设备和数据处理系统技术方案

技术编号:2827850 阅读:210 留言:0更新日期:2012-04-11 18:40
一种DMA设备将描述符预取到描述符预取缓冲器中。描述符预取缓冲器的大小针对给定等待时间环境保有适当数量的描述符。为了支持描述符链接列表,DMA引擎基于描述符在存储器中为顺序的假设来预取描述符,并且将被发现违反该假设的任意描述符丢弃。DMA引擎试图在任何可能的时候通过对于每次事务请求多个描述符而保持描述符预取缓冲器为满的。总线引擎从系统存储器中读取这些描述符,并将它们写到预取缓冲器中。DMA引擎还可以使用积极预取,其中总线引擎无论何时当描述符预取缓冲器中存在任意空间时请求缓冲器将支持的最大数量的描述符。DMA设备丢弃无法被存储的任意其余描述符。

【技术实现步骤摘要】

本专利技术一般涉及改进的数据处理系统和方法。更具体地,本专利技术涉及支持高等待时间设备的直接存储器存取控制器。
技术介绍
许多单片系统(system-on-a-chip,SOC)设计包含被称为直接存储器存取(DMA)控制器的设备。DMA的目的是从存储器中的一个位置向另一个高效移动数据块。DMA控制器通常用于在系统存储器和输入/输出(I/O)设备之间移动数据,但也用于在系统存储器中的一个区域和另一个之间移动数据。DMA控制器被称为“直接”,因为处理器未涉及移动数据。在没有DMA控制器的情况下,可以通过令处理器在软件控制下从一个存储器空间向另一个逐片地拷贝数据来移动数据块。这对于较大数据块通常是不理想的。当处理器逐片地拷贝大数据块时,速度十分缓慢,因为处理器不具有大型存储器缓冲器,并且必须每次以低效的小尺寸(诸如32比特)移动数据。而且,当处理器正进行拷贝时,其无法进行其它工作。因此,处理器直到移动完成之前都被占用。将这些数据块的移动减载到DMA控制器是更加高效的,DMA控制器可以更快速地以及与其它工作并行地进行数据块的移动。DMA控制器通常具有多个“信道”。如这里所用的,“信道”是将由DMA控制器移动的独立数据流。因此,DMA控制器可以被编程在不同信道上同时执行若干次块移动,这允许DMA设备同时向或从若干I/O设备传输数据。-->DMA控制器的另一典型特征是散布/收集操作。散布/收集操作是下述的一种操作,其中DMA控制器不需要被处理器进行编程用于将每个数据块从某个源移动到某个目的地。而是,处理器在系统存储器中建立一个描述符表或描述符链接列表。描述符表或链接列表是一组描述符。每个描述符描述一次数据块移动,包括源地址、目的地地址以及所传输的字节数。经由DMA寄存器直接进行编程的非散布/收集块移动被称为“单编程”DMA块移动。DMA控制器的链接列表体系结构比表体系结构更灵活和动态。在链接列表体系结构中,处理器将DMA信道之一引用到链中的第一描述符,并且链接列表中的每个描述符包含指向存储器中的下一描述符的指针。描述符可以位于系统存储器中的任意地方,并且处理器可以在传输发生时将其动态添加到列表上。DMA控制器自动遍历表或列表,并执行由每个描述符所描述的数据块移动,直到到达所述表或列表的末尾为止。DMA设备可以被构建为具有适当数量的缓冲器,以及处理适当数量的并发的未完成事务,从而到数据的高等待时间路径将不会导致数据传输中的显著延误(stall)。典型的DMA编程模型是将数据传输链接在一起作为如上所述的散布/收集描述符列表。这些描述符必须从存储器中读取。在此环境中,如果对于描述符存储器的等待时间与对于数据的等待时间一样长,则可能遇到问题。如将在下面讨论的,甚至可能存在低等待时间描述符读取与高等待时间数据块读取的问题。典型的DMA体系结构将描述符中读取的信息直接馈送到通过“单编程”DMA块数据移动所加载的相同的配置寄存器中。一旦DMA设备开始针对当前描述符的最终事务的写操作,即开始对下一描述符的请求。DMA设备必须等待,直到此最终写操作开始,因为在此时,运行数据块移动的配置寄存器再次可用于被加载。此重叠可以减少(但不可避免)数据总线延误,因为DMA设备在低等待时间环境中从描述符到描述符进行转换。不过,此方案在高等待时间环境中可能是灾难。-->
技术实现思路
说明性实施例识别出现有技术的缺陷,并提供了一种DMA设备,其将描述符预取到描述符预取缓冲器中。描述符预取缓冲器的大小针对给定等待时间环境保有适当数量的描述符。为了支持描述符链接列表,DMA引擎基于描述符在存储器中为顺序的假设来预取描述符,并且将被发现违反该假设的任意描述符丢弃。DMA引擎试图在任何可能的时候通过对于每次事务请求多个描述符而保持描述符预取缓冲器为满的。总线引擎从系统存储器中读取这些描述符,并将它们写到预取缓冲器中。DMA引擎还可以使用积极预取,其中总线引擎无论何时当描述符预取缓冲器中存在任意空间时请求缓冲器将支持的最大数量的描述符。DMA设备丢弃无法被存储的任意其余描述符。在一个说明性实施例中,提供了一种用于在直接存储器存取设备中通过描述符预取来执行直接存储器存取块移动的方法。所述方法包括:响应于空间在所述直接存储器存取设备中的描述符预取缓冲器中可用,将在物理存储器中顺序存储的多个直接存储器存取描述符读取到所述描述符预取缓冲器中。所述方法进一步包括:处理来自所述描述符预取缓冲器中的描述符,以根据所述描述符执行直接存储器存取块移动。在一个示例性实施例中,所述方法进一步包括:检查所述多个直接存储器存取描述符的有效性,以及响应于给定的直接存储器存取描述符相对于所述多个直接存储器存取描述符中的前一直接存储器存取描述符为非连续的,将所述给定的直接存储器存取描述符标为无效。在另一示例性实施例中,所述方法进一步包括:将所述给定的直接存储器存取描述符之后的每个描述符标为无效。在另一示例性实施例中,所述方法进一步包括:检查所述多个直接存储器存取描述符的有效性,以及响应于给定的直接存储器存取描述符相对于所述多个直接存储器存取描述符中的前一直接存储器存取描述符为连续的,将所述给定的直接存储器存取描述符标为有效。在另一示例性实施例中,读取多个直接存储器存取描述符包括:确定-->所述描述符预取缓冲器中的可用槽的数量,以及读取对应于所述可用槽的数量的多个直接存储器存取描述符。在又一示例性实施例中,读取多个直接存储器存取描述符包括:读取对应于所述描述符预取缓冲器中的槽的最大数量的多个直接存储器存取描述符,试图将所读取的数量的直接存储器存取描述符存储在所述描述符预取缓冲器中,以及响应于所述描述符预取缓冲器已满,从所述多个直接存储器存取描述符中丢弃无法被存储在所述描述符预取缓冲器中的其余直接存储器存取描述符。在又一示例性实施例中,所述方法进一步包括:响应于空间在所述描述符预取缓冲器中可用,将所述多个直接存储器存取描述符中的给定的直接存储器存取描述符存储在所述描述符预取缓冲器中。在又一示例性实施例中,所述方法进一步包括:检查所述给定的直接存储器存取描述符的有效性,以及响应于所述给定的直接存储器存取描述符相对于所述多个直接存储器存取描述符中的前一直接存储器存取描述符为非连续的,将所述给定的直接存储器存取描述符标为无效。在又一示例性实施例中,所述方法进一步包括:将所述给定的直接存储器存取描述符之后的每个描述符标为无效。在另一示例性实施例中,所述方法进一步包括:检查所述给定的直接存储器存取描述符的有效性,以及响应于所述给定的直接存储器存取描述符相对于所述多个直接存储器存取描述符中的前一直接存储器存取描述符为连续的,将所述给定的直接存储器存取描述符标为有效。在另一说明性实施例中,一种直接存储器存取设备包括:具有预取缓冲器的直接存储器存取引擎以及总线引擎。响应于空间在所述直接存储器存取设备中的描述符预取缓冲器中可用,所述总线引擎将在物理存储器中顺序存储的多个直接存储器存取描述符读取到所述描述符预取缓冲器中。所述直接存储器存取设备处理来自所述描述符预取缓冲器的直接存储器存取描述符,以根据所述直接存储器存取描述符执行直接存储器存取块移动。在一个示例性实施例中,所述直接存储器存取引擎检本文档来自技高网
...

【技术保护点】
一种用于在直接存储器存取设备中通过描述符预取来执行直接存储器存取块移动的方法,所述方法包括:    响应于空间在所述直接存储器存取设备中的描述符预取缓冲器中可用,将在物理存储器中顺序存储的多个直接存储器存取描述符读取到所述描述符预取缓冲器中;以及    处理来自所述描述符预取缓冲器中的描述符,以根据所述描述符执行直接存储器存取块移动。

【技术特征摘要】
US 2007-1-10 11/621,7891.一种用于在直接存储器存取设备中通过描述符预取来执行直接存储器存取块移动的方法,所述方法包括:响应于空间在所述直接存储器存取设备中的描述符预取缓冲器中可用,将在物理存储器中顺序存储的多个直接存储器存取描述符读取到所述描述符预取缓冲器中;以及处理来自所述描述符预取缓冲器中的描述符,以根据所述描述符执行直接存储器存取块移动。2.根据权利要求1所述的方法,进一步包括:检查所述多个直接存储器存取描述符的有效性;以及响应于给定的直接存储器存取描述符相对于所述多个直接存储器存取描述符中的前一直接存储器存取描述符为非连续的,将所述给定的直接存储器存取描述符标为无效。3.根据权利要求2所述的方法,进一步包括:将所述给定的直接存储器存取描述符之后的每个描述符标为无效。4.根据权利要求1所述的方法,进一步包括:检查所述多个直接存储器存取描述符的有效性;以及响应于给定的直接存储器存取描述符相对于所述多个直接存储器存取描述符中的前一直接存储器存取描述符为连续的,将所述给定的直接存储器存取描述符标为有效。5.根据权利要求1所述的方法,其中读取多个直接存储器存取描述符包括:确定所述描述符预取缓冲器中的可用槽的数量;以及读取对应于所述可用槽的数量的多个直接存储器存取描述符。6.根据权利要求1所述的方法,其中读取多个直接存储器存取描述符包括:读取对应于所述描述符预取缓冲器中的槽的最大数量的多个直接存储器存取描述符;试图将所读取的数量的直接存储器存取描述符存储在所述描述符预取缓冲器中;以及响应于所述描述符预取缓冲器已满,从所述多个直接存储器存取描述符中丢弃无法被存储在所述描述符预取缓冲器中的其余直接存储器存取描述符。7.根据权利要求6所述的方法,进一步包括:响应于空间在所述描述符预取缓冲器中可用,将所述多个直接存储器存取描述符中的给定的直接存储器存取描述符存储在所述描述符预取缓冲器中。8.根据权利要求7所述的方法,进一步包括:检查所述给定的直接存储器存取描述符的有效性;以及响应于所述给定的直接存储器存取描述符相对于所述多个直接存储器存取描述符中的前一直接存储器存取描述符为非连续的,将所述给定的直接存储器存取描述符标为无效。9.根据权利要求8所述的方法,进一步包括:将所述给定的直接存储器存取描述符之后的每个描述符标为无效。10.根据权利要求7所述的方法,进一步包括:检查所述给定的直接存储器存取描述符的有效性;以及响应于所述给定的直接存储器存取描述符相对于所述多个直接存储器存取描述符中的前一直接存储器存取描述符为连续的,将所述给定的直接存储器存取描述符标为有效。11.一种直接存储器存取设备,包括:具有预取缓冲器的直接存储器存取引擎;总线引擎;以及其中响应于空间在所述直接存储器存取设备中的描述符预取缓冲器中可用,所述总线引擎将在物理存储器中顺序存储的多个直接存储器存取描述符读取到所述描述符预取缓冲器中;以及其中所述直接存储器存取设备处理来自所述描述符预取缓冲器的直接存储器存取描述符,以根据所述直接存储器存取描述符执行直...

【专利技术属性】
技术研发人员:R尼古拉斯BC德雷鲁普J古普塔G比朗LE德拉托雷
申请(专利权)人:R尼古拉斯BC德雷鲁普J古普塔G比朗LE德拉托雷
类型:发明
国别省市:US[美国]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1