用于DMA操作的方法、装置、设备、集成电路芯片和板卡制造方法及图纸

技术编号:33994472 阅读:10 留言:0更新日期:2022-07-02 10:31
本披露公开了一种用于DMA操作的方法、装置、设备、集成电路芯片和板卡。其中该设备可以包括在计算装置中,所述计算装置可以进一步包括在组合处理装置中,该组合处理装置还可以包括通用互联接口和其他处理装置。所述计算装置与其他处理装置进行交互,共同完成用户指定的计算操作。所述组合处理装置还可以包括存储装置,该存储装置分别与所诉计算装置和其他处理装置连接,用于存储该计算装置和其他处理装置的数据。利用本披露的方案可以明显提升DMA操作的带宽利用率,解决了DMA操作的小包性能问题。题。题。

【技术实现步骤摘要】
用于DMA操作的方法、装置、设备、集成电路芯片和板卡


[0001]本披露一般地涉及数据处理领域。更具体地,本披露涉及一种用于直接存储器存取(“DMA”)操作的方法、装置、设备、集成电路芯片和板卡。

技术介绍

[0002]目前,市面上常见的DMA IP核通常都支持分散

聚集的工作方式。该方式通过描述符链表对需要搬运的数据进行描述,使得系统在通过DMA进行数据传输时无需将数据都集中存储在一段连续的地址空间,从而减轻了系统负担,提高了DMA的易用性。然而,这种分散

聚集的工作方式也会带来以下一些问题。
[0003]首先,由于描述符以链表的形式存在,意味着相邻的描述符之间具有关联性,这将导致DMA引擎无法以流水的方式读取描述符,从而降低了DMA读取的效率。其次,目前市场上提供的DMA IP核大多都存在DMA小包性能的问题。该问题会造成DMA引擎读取描述符的延迟时间大于发送数据的时间,使得DMA引擎在大部分时间内都处于等待描述符的状态,进而导致总线带宽严重浪费,并使得DMA性能明显下降。

技术实现思路

[0004]为了至少解决在上述
技术介绍
部分所描述的一个或多个问题,以便在主机侧没有启动内存管理单元功能的前提下,对现有的DMA IP核进行优化,进而实现对数据以流水的方式进行高效地传输和搬移。为此,本披露提出了如下的技术方案及其多个实施例。
[0005]在一个方面中,本披露提供了一种用于DMA操作的方法。该方法包括:响应于接收到发起DMA操作的指令,读取并缓存第一多个DMA描述符,其中每个所述DMA描述符与一个所述DMA操作相关联;以及控制DMA引擎来执行与所述第一多个DMA描述符相关联的第一多个DMA操作。
[0006]在另一个方面中,本披露还公开了一种用于DMA操作的装置。该装置包括:第一缓存单元,其配置成响应于接收到发起DMA操作的指令,读取并缓存第一多个DMA描述符,其中每个所述DMA描述符与一个DMA操作相关联;以及控制单元,其配置成控制DMA引擎来执行与所述第一多个DMA描述符相关联的第一多个DMA操作。
[0007]在又一个方面中,本披露还公开了一种用于执行DMA操作的设备。该设备包括:上述一种用于DMA操作的装置和DMA引擎,其中所述DMA引擎与所述装置连接并且配置用于根据所述装置的控制来执行DMA操作。
[0008]在一个方面中,本披露公开了一种集成电路芯片,其包括上文所述的装置或设备。
[0009]在又一个方面中,本披露还公开了一种板卡,其包括上文所述的装置或设备。
[0010]根据本披露上述多个方面中提供的方案,通过在DMA引擎和外部设备之间设置缓冲机制,可以实现在主设备的存储器与外部设备的存储器之间进行高效地数据搬移和传输。进一步地,通过在本披露的装置中设置两个数据缓存单元,使得读取描述符的操作可以以乒乓的形式交替进行,从而减少了DMA引擎读取描述符时等待的时间。另外,本披露的装
置通过设置指令缓存单元,可以将例如通过软件输入的、用于发起DMA操作的指令进行缓存,从而提高了DMA操作的执行效率。
附图说明
[0011]通过参考附图阅读下文的详细描述,可以更好地理解本披露的上述特征,并且其众多目的、特征和优点对于本领域技术人员而言是显而易见的。下面描述中的附图仅仅是本披露的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可根据这些附图获得其他的附图,其中:
[0012]图1是示出根据本披露实施例的用于DMA操作的方法的简化流程图;
[0013]图2是示出根据本披露实施例的用于DMA操作的方法的详细流程图;
[0014]图3是示出根据本披露实施例的用于DMA操作的装置的操作框图;
[0015]图4是示出根据本披露实施例的用于执行DMA操作的设备的操作框图;
[0016]图5是示出根据本披露实施例的一种组合处理装置的结构示意图;以及
[0017]图6是示出根据本披露实施例的一种板卡的结构示意图。
具体实施方式
[0018]下面将结合本披露实施例中的附图,对本披露实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例是本披露一部分实施例,而不是全部的实施例。基于本披露中的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本披露保护的范围。
[0019]图1是示出根据本披露实施例的用于DMA操作的方法100的简化流程图。如图1所示,在步骤101处,方法100响应于接收到发起DMA操作的指令,读取并缓存第一多个DMA描述符,其中每个所述DMA描述符与一个所述DMA操作相关联。接着在步骤102处,方法100控制DMA引擎来执行与所述第一多个DMA描述符相关联的第一多个DMA操作。
[0020]为了更好的理解本披露的技术方案,这里对DMA操作进行简要的介绍。一般而言,计算设备中的DMA操作主要用于将数据从一个地址空间复制到另外一个地址空间。例如,DMA操作可以将一个外部存储器中的数据块移动到主设备的内部更快的内存区。一个完整的DMA操作(或称传输)过程大体可以经过DMA请求、DMA响应、DMA传输和DMA结束4个步骤。在实现DMA传输的过程中,需要由DMA控制器来直接控制总线。这就涉及总线控制权的转移。具体来说,在DMA传输前,主设备的中央处理器(“CPU”)需要把总线控制权移交给DMA控制器。而在结束DMA传输后,DMA控制器将立即把总线控制权再移交回给CPU。下面将结合图2详细描述本披露的DMA传输的方法流程。
[0021]图2是示出根据本披露实施例的用于DMA操作的方法200的详细流程图。根据下面的描述,本领域技术人员将理解到方法200是方法100的一种示例性实施方式并且包括更多的实施细节。由此,上文中关于方法100的技术描述也同样适用于方法200的方案,并且相同的内容将不再赘述。
[0022]如图2所示,方法200开始于步骤201并且在步骤202处,来自于例如上层软件程序的、用于发起DMA操作的指令触发缓冲器以突发(“burst”)的方式读取存储器中的DMA描述符。在一个实施例中,所述DMA描述符可以是以链表的形式存在的最小数据单元,并且通常
包括以下的相关信息:数据的源地址、目标地址、大小以及下一个DMA描述符的存放地址。
[0023]接着,方法200前进到步骤203。在此步骤处,方法200可以令缓冲器对读取到的DMA描述符进行重构操作。在一个实施例中,所述重构操作可以是将存储于存储器中的DMA描述符的格式进行转换,以便其适合于在缓冲器中进行存储。接着,流程前进到步骤204,其中方法200将所述重构后的DMA描述符存储于缓冲器,以便DMA引擎进行读取。此后,在步骤205处,方法200令缓冲器控制启动DMA引擎,以便对存储于缓冲器上的DMA描述符进行读取。
[0024]接下来,在步骤206中,方法200令DMA引擎从缓冲器中读取DMA描本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种用于DMA操作的方法,包括:响应于接收到发起DMA操作的指令,读取并缓存第一多个DMA描述符,其中每个所述DMA描述符与一个所述DMA操作相关联;以及控制DMA引擎来执行与所述第一多个DMA描述符相关联的第一多个DMA操作。2.根据权利要求1所述的方法,其中所述读取并缓存第一多个DMA描述符包括:以突发的方式来读取被存放于连续地址空间的所述第一多个DMA描述符;以及对读取到的所述第一多个DMA描述符进行重构以便缓存。3.根据权利要求1所述的方法,还包括:在所述DMA引擎执行所述第一多个DMA操作时,读取并缓存第二多个DMA描述符;以及在所述DMA引擎完成所述第一多个DMA操作后,控制所述DMA引擎来执行与所述第二多个DMA描述符相关联的第二多个DMA操作。4.根据权利要求3所述的方法,其中所述读取并缓存第二多个DMA描述符包括:以突发的方式来读取被存放于连续地址空间的所述第二多个DMA描述符;以及对读取到的所述第二多个DMA描述符进行重构以便缓存。5.根据权利要求2或4所述的方法,其中每个所述DMA描述符包括下一DMA描述符的存放地址,所述重构包括将每个所述下一DMA描述符的存放地址与其缓存地址相匹配,以便进行所述缓存。6.根据权利要求1所述的方法,其中所述接收到发起DMA操作的指令包括对发起DMA操作的多个所述指令进行缓存,以便按顺序执行多个所述指令的每个所发起的DMA操作。7.一种用于DMA操作的装置,包括:第一缓存单元,其配置成响应于接收到发起DMA操作的指令,读取并缓存第一多个DMA描述符,其中每个所述DMA描述符与一个DMA操作相关联;以及控制单元,其配置成控制DMA引擎来执行与所...

【专利技术属性】
技术研发人员:ꢀ七四专利代理机构
申请(专利权)人:中科寒武纪科技股份有限公司
类型:发明
国别省市:

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

1