CN117827709B - 直接内存访问的实现方法、装置、设备及存储介质 - Google Patents
直接内存访问的实现方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN117827709B CN117827709B CN202410251071.2A CN202410251071A CN117827709B CN 117827709 B CN117827709 B CN 117827709B CN 202410251071 A CN202410251071 A CN 202410251071A CN 117827709 B CN117827709 B CN 117827709B
- Authority
- CN
- China
- Prior art keywords
- cache
- data
- descriptor
- transmitted
- memory
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 56
- 230000005540 biological transmission Effects 0.000 claims abstract description 89
- 239000012634 fragment Substances 0.000 claims description 29
- 230000008569 process Effects 0.000 claims description 22
- 238000012546 transfer Methods 0.000 claims description 4
- 238000012545 processing Methods 0.000 description 17
- 238000010586 diagram Methods 0.000 description 11
- 238000004891 communication Methods 0.000 description 10
- 238000005516 engineering process Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 6
- 238000007726 management method Methods 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 4
- 230000005236 sound signal Effects 0.000 description 4
- 238000004590 computer program Methods 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 230000001133 acceleration Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000013467 fragmentation Methods 0.000 description 1
- 238000006062 fragmentation reaction Methods 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本申请提供了一种直接内存访问的实现方法、装置、电子设备及计算机可读存储介质,包括:响应于主设备发起的DMA请求,生成用于描述DMA请求对应的数据传输过程的描述符;将描述符在主设备的缓存中对应的第一缓存片区设置为锁定状态;锁定状态用于阻止其他任务占用第一缓存片区;从缓存内的预设缓存片区中,为描述符对应的待传输数据分配第二缓存片区,并建立描述符与第二缓存片区的关联关系;预设缓存片区仅用于存储各DMA请求对应的临时数据;根据描述符和关联关系,通过第二缓存片区执行待传输数据的传输过程。本申请提高了第二缓存片区存储待传输数据的概率,提升了针对待传输数据的缓存命中率,进而提高***的输入/输出带宽性能。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种直接内存访问的实现方法、装置、电子设备及计算机可读存储介质。
背景技术
直接内存访问(DMA,Direct Memory Access)是一种内存访问技术,DMA技术允许计算机内部的硬体子***(如计算机外接设备),可以独立地直接读写计算机***的内存,而不需中央处理器介入处理。
目前,在DMA的实现过程中,可以为描述符(用于对待传输数据的传输过程进行描述)动态申请缓冲区进行使用,即调用相关函数接口申请一段物理地址连续的缓冲区供DMA进行数据传输时使用,该缓冲区可能存在于存储区的任何位置。在后续执行DMA数据传输的过程中,若待传输数据存储于该缓冲区,则认为缓存命中,并将该缓冲区中的待传输数据直接发送至目的地;否则认为缓存未命中,此时先从内存中找到待传输数据并填入缓冲区,再将缓冲区中的待传输数据直接发送至目的地。
发明内容
本申请实施例提供一种直接内存访问的实现方法、装置、电子设备及计算机可读存储介质,以解决相关技术中的问题。
第一方面,本申请实施例提供了一种直接内存访问的实现方法,应用于外接设备,所述方法包括:
响应于主设备发起的DMA请求 ,生成用于描述所述DMA请求对应的数据传输过程的描述符;
将所述描述符在所述主设备的缓存 中对应的第一缓存片区设置为锁定状态;所述锁定状态用于阻止其他任务占用所述第一缓存片区;
从所述缓存内的预设缓存片区中,为所述描述符对应的待传输数据分配第二缓存片区,并建立所述描述符 与所述第二缓存片区的关联关系;所述预设缓存片区仅用于存储各DMA请求对应的临时数据;
根据所述描述符和所述关联关系,通过所述第二缓存片区执行所述待传输数据的传输过程,以使所述外接设备响应所述DMA请求。
第二方面,本申请实施例提供了一种直接内存访问的实现装置,应用于外接设备,所述装置包括:
生成模块,用于响应于主设备发起的DMA请求,生成用于描述所述DMA请求对应的数据传输过程的描述符;
锁定模块,用于将所述描述符在所述主设备的缓存中对应的第一缓存片区设置为锁定状态;所述锁定状态用于阻止其他任务占用所述第一缓存片区;
分配模块,用于从所述缓存内的预设缓存片区中,为所述描述符对应的待传输数据分配第二缓存片区,并建立所述描述符与所述第二缓存片区的关联关系;所述预设缓存片区仅用于存储各DMA请求对应的临时数据;
执行模块,用于根据所述描述符和所述关联关系,通过所述第二缓存片区执行所述待传输数据的传输过程,以使所述外接设备响应所述DMA请求。
第三方面,本申请实施例还提供了一种电子设备,包括处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现所述第一方面的方法。
第四方面,本申请实施例还提供了一种计算机可读存储介质,当所述计算机可读存储介质中的指令由电子设备的处理器执行时,使得所述电子设备能够执行所述第一方面的方法。
本申请实施例中,可以将描述符在缓存中对应的第一缓存片区,设置为锁定状态,锁定状态下的第一缓存片区不可被其他任务占用,这样就大大提高了第一缓存片区存储描述符的概率,也就提升了针对描述符的缓存命中率。另外,本申请可以在主设备的缓存中划分一个预设缓存片区,并从预设缓存片区中,为描述符对应的待传输数据分配第二缓存片区。该预设缓存片区仅用于存储各DMA请求对应的临时数据,非DMA请求不可占用,这样由于存储待传输数据的第二缓存片区被非DMA请求占用的几率也就大大下降,从而提高了第二缓存片区存储待传输数据的概率,也就提升了针对待传输数据的缓存命中率,进而提高***的输入/输出带宽性能。
上述说明仅是本申请技术方案的概述,为了能够更清楚了解本申请的技术手段,而可依照说明书的内容予以实施,并且为了让本申请的上述和其它目的、特征和优点能够更明显易懂,以下特举本申请的具体实施方式。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见的,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种实施场景架构图;
图2是本申请实施例提供的一种直接内存访问的实现方法的步骤流程图;
图3是本申请实施例提供的一种直接内存访问的实现方法的具体步骤流程图;
图4是本申请实施例提供的一种内存的划分示意图;
图5是本申请实施例提供的一种内存区域的划分示意图;
图6是本申请实施例提供的一种直接内存访问的示例示意图;
图7是本申请实施例提供的一种直接内存访问的实现装置的框图;
图8是本申请实施例提供的一种电子设备的框图;
图9是本申请另一个实施例的另一种电子设备的框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书中的术语“第一”、“第二”等是用于区别类似的对象,而不用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施,且“第一”、“第二”等所区分的对象通常为一类,并不限定对象的个数,例如第一对象可以是一个,也可以是多个。此外,说明书以及权利要求中的术语“和/或”用于描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。本申请实施例中术语“多个”是指两个或两个以上,其它量词与之类似。
参照图1,图1是本申请实施例提供的一种实施场景架构图,主设备包括处理器、集成设置在处理器中的缓存(该缓存可以为处理器中的高速缓冲存储器(Cache memory))、内存和桥片,处理器为多核处理器,桥片通过超线程技术(HT,Hyper Threading Technology)总线与处理器连接,外接设备通过高速串行计算机扩展总线标准(PCIE,peripheralcomponent interconnect express)总线与挂接在桥片上,DMA控制器集成在外接设备中,用于实现外接设备和主设备之间的DMA数据传输。外接设备包括但不限于显卡、网卡、声卡、硬盘等。
具体的,DMA技术可以实现外接设备直接快速的读写主设备的内存的功能,且该过程不需要处理器介入,因此降低了处理器负载。例如,在处理器运行的用户进程需要读取外接设备的数据(即外接设备将数据写入主设备的内存)时,处理器会发起读请求,通过HT总线经桥片发送至外接设备。外接设备接收到读请求后,会由外接设备中的DMA控制器响应该读请求,将请求读取的数据通过桥片和HT总线存入预先分配的缓冲区(主设备内存中的一段连续内存片区)中(该过程处理器不参与,处理器可以执行其他任务),之后,DMA控制器可以发送中断信号至处理器,处理器响应于中断信号,即可将缓冲区中的数据拷贝到用户空间供用户进程使用。
反之,在处理器运行的用户进程需要向外接设备写入数据(即外接设备读取主设备的内存中的数据)时,处理器会发起写请求,通过HT总线经桥片发送至外接设备。外接设备接收到写请求后,会由外接设备中的DMA控制器响应该写请求,将请求写入的数据通过桥片和HT总线存入预先分配的缓冲区中,之后,DMA控制器可以从缓冲区读取数据并拷贝到外接设备的内存中供外接设备使用。
需要说明的是,上述过程中处理器发起的读请求和写请求都为DMA请求,即在外接设备接入主设备进行使用的场景中,若外接设备要使用DMA功能(无论读/写),外接设备都需要先通过HT总线经桥片通知主设备的处理器,再由主设备的处理器发起DMA请求,该DMA请求会传输至外接设备的DMA控制器,由DMA控制器进行执行,使得外接设备响应该DMA请求,以实现DMA功能。
图2,是本申请实施例提供的一种直接内存访问的实现方法的步骤流程图,应用于外接设备,如图2所示,该方法可以包括:
步骤101、响应于主设备发起的DMA请求,生成用于描述所述DMA请求对应的数据传输过程的描述符。
在本申请实施例中,主设备中通过处理器运行的用户进程可以发起DMA请求,以请求主设备和外接设备进行DMA数据传输。
具体的,DMA请求包括了数据访问过程的相关信息,如数据的地址、数据的长度、数据的控制方式(例如读取还是写入)等。外接设备的DMA控制器接收到DMA请求后,可以生成用于描述DMA请求对应的数据传输过程的描述符,后续启动DMA数据传输时,则是基于描述符实现具体的DMA数据传输。
其中,描述符是用于管理DMA操作的数据结构,即描述符通过DMA定义的格式,对DMA请求对应的数据传输过程进行了描述,描述符包含了DMA传输的相关参数和控制信息,用于指示DMA控制器进行数据传输。
进一步的,主设备的处理器运行的用户进程可能需要通过DMA实现多个数据包的传输,则针对每个数据包会对应生成一个描述符,以通过该对应的描述符对数据包的传输过程进行描述。
例如,假设用户进程需要通过DMA实现向外接设备发送3个数据包,则外接设备的DMA控制器针对数据包1可以生成对应的描述符1,针对数据包2可以生成对应的描述符2,针对数据包3可以生成对应的描述符3,并且后续的DMA执行是按照串行方式执行的,因此,DMA控制器最终生成了一个包括描述符1、描述符2、描述符3的描述符列表。
步骤102、将所述描述符在所述主设备的缓存中对应的第一缓存片区设置为锁定状态;所述锁定状态用于阻止其他任务占用所述第一缓存片区。
在本申请实施例中,描述符在被创建后,外接设备的DMA控制器需要进一步为描述符分配对应的缓冲区。缓冲区用于在后续启动DMA时,作为存储相关临时数据的介质所存在。缓冲区具体可以为主设备的内存中的一段地址空间连续的内存片区,由于主设备的内存空间与处理器中的缓存空间相互映射,因此为描述符分配的缓冲区体现为一段第一内存片区,且该第一内存片区映射了主设备的缓存中对应的第一缓存片区。第一内存片区和第一缓存片区用于存储描述符,
具体的,在DMA传输过程中存在缓存命中率这一概念,即DMA传输过程中在对描述符进行读取时,若描述符存储在缓存中的第一缓存片区,则可直接快速的从第一缓存片区中读取到描述符,此为缓存命中;若描述符未存储在第一缓存片区,则需要先从处理器外部的内存中读取描述符,再将描述符放入第一缓存片区后进行读取(或直接访问内存获得描述符),此为缓存未命中。由于访问缓存(该缓存可以为处理器中的高速缓冲存储器(Cachememory),而第一缓存片区可以为高速缓冲存储器(Cache memory)中的片区)的速度远快于访问处理器外部的内存对应的速度,可见在缓存未命中的情况下,多出了额外的内存读取和缓存写入操作,导致DMA控制器对DMA请求的处理速度下降,从而影响到***的输入/输出带宽性能。为了解决该问题,本申请实施例需要提高缓存命中率。
进一步的,缓存未命中的情况,多是因为第一缓存片区被其他任务所占用,导致本该存储其中的描述符被释放。因此本申请实施例可以将描述符在缓存中对应的第一缓存片区(该缓存可以为处理器中的高速缓冲存储器(Cache memory),第一缓存片区可以为高速缓冲存储器(Cache memory)中的片区),设置为锁定状态,锁定状态下的第一缓存片区不可被其他任务(或其他请求)占用,这样就大大提高了第一缓存片区存储描述符的概率,也就提升了针对描述符的缓存命中率。
需要说明的是,主设备的处理器提供了锁定缓存的功能,通过该功能可以将DMA控制器为描述符申请的第一内存片区锁定在处理器内部缓存对应的第一缓存片区中,即让锁定后的第一缓存片区不可被其他任务占用。
步骤103、从所述缓存内的预设缓存片区中,为所述描述符对应的待传输数据分配第二缓存片区,并建立所述描述符 与所述第二缓存片区的关联关系;所述预设缓存片区仅用于存储各DMA请求对应的临时数据。
在本申请实施例中,描述符是用于对待传输数据的传输过程进行描述的信息,具体DMA执行时是对描述符对应的待传输数据进行传输,因此本申请实施例可以为描述符对应的待传输数据分配缓冲区(为主设备的内存中的一段地址空间连续的第二内存片区,第二内存片区具有对应的第二缓存片区),待传输数据的缓冲区用于在后续启动DMA时,作为存储待传输数据的介质所存在。
具体的,同步骤102中针对描述符缓存未命中的产生原因,针对待传输数据的第二缓存片区(该缓存可以为处理器中的高速缓冲存储器(Cache memory),而第二缓存片区可以为高速缓冲存储器(Cache memory)中的片区)也存在缓存未命中问题,这是由于非DMA请求对第二缓存片区的占所导致的,为了解决该问题,本申请实施例可以在主设备的缓存中划分一个预设缓存片区,并从预设缓存片区中,为描述符对应的待传输数据分配第二缓存片区。该预设缓存片区仅用于存储各DMA请求对应的临时数据,非DMA请求不可占用。这样由于存储待传输数据的第二缓存片区被非DMA请求占用的几率也就大大下降,从而大大提高了缓存中第二缓存片区(该缓存可以为处理器中的高速缓冲存储器(Cache memory),第二缓存片区可以为高速缓冲存储器(Cache memory)中的片区)存储待传输数据的概率,也就提升了针对待传输数据的缓存命中率。
另外,本申请实施例还可以建立描述符与第二缓存片区的关联关系,这样可以在后续DMA的执行过程中,指示将描述符对应的待传输数据存储在第二缓存片区。
步骤104、根据所述描述符和所述关联关系,通过所述第二缓存片区执行所述待传输数据的传输过程,以使所述外接设备响应所述DMA请求。
在本申请实施例中,在DMA控制器启动DMA执行时,可以基于描述符和描述符与第二缓存片区的关联关系实现数据传输,其中,分析描述符所获得的信息定义了待传输数据的地址、长度、控制方式等相关信息,关联关系则指示将待传输数据存储在第二缓存片区中,最后基于描述符定义的传输目的地(如主设备的内存或外接设备的内存),将第二缓存片区中的待传输数据发送至该传输目的地,即使得外接设备响应DMA请求,完成了DMA请求对应的数据传输过程。
在整个DMA的实现过程中,由于锁定了描述符对应的第一缓存片区,且待传输数据对应的第二缓存片区是从仅供DMA请求使用的预设缓存片区中分配的,所以大大提高了第一缓存片区、第二缓存片区(第一缓存片区、第二缓存片区可以为高速缓冲存储器(Cachememory)中的片区)包含所需待传输数据的几率,也就提升了缓存命中率。
综上,本申请实施例中,可以将描述符在缓存中对应的第一缓存片区设置为锁定状态,锁定状态下的第一缓存片区不可被其他任务占用,这样就大大提高了第一缓存片区存储DMA请求所对应描述符的概率,也就提升了针对描述符的缓存命中率。另外,本申请可以在主设备的缓存中划分一个预设缓存片区,并从预设缓存片区中,为描述符对应的待传输数据分配第二缓存片区。该预设缓存片区仅用于存储各DMA请求对应的临时数据,非DMA请求不可占用,这样由于存储待传输数据的第二缓存片区被非DMA请求占用的几率也就大大下降,从而提高了第二缓存片区存储待传输数据的概率,也就提升了针对待传输数据的缓存命中率。通过第一缓存片区和第二缓存片区的设置,提升了缓存对应的命中率,可以提高***的输入/输出带宽性能。
图3是本申请实施例提供的一种直接内存访问的实现方法的具体步骤流程图,应用于外接设备,外接设备接入主设备,如图3所示,该方法可以包括:
步骤201、响应于所述主设备发起的DMA请求,确定所述DMA请求需传输的每项待传输数据的地址信息、数据长度信息、传输控制信息和状态信息。
在本申请实施例中,外接设备的DMA控制器可以解析主设备的处理器发起的DMA请求,获得DMA请求需传输的每项待传输数据的地址信息、数据长度信息、传输控制信息和状态信息;其中,待传输数据的地址信息包含了待传输数据的源地址和目的地址,指示了待传输数据的传输路径;待传输数据的数据长度则指示了待传输数据的数据量;传输控制信息指示了传输模式、传输方向、传输速率等信息,用于指示DMA控制器进行数据传输;状态信息则记录了传输的状态,如是否完成传输、是否发生错误等,用于监控传输的进程。
步骤202、根据每项所述待传输数据的地址信息、数据长度信息、传输控制信息和状态信息,分别生成每项所述待传输数据对应的描述符。
在本申请实施例中,基于待传输数据的地址信息、数据长度信息、传输控制信息和状态信息,即可按照DMA定义的数据格式,生成数据传输过程对应的描述符,描述符中包含与地址信息、数据长度信息、传输控制信息和状态信息分别对应的字段。后续启动DMA传输时,外接设备的DMA控制器即可基于描述符中指示的信息,实现对待传输数据的传输。
步骤203、为所述描述符分配所述主设备的内存中的第一内存片区;所述内存中的内存片区与所述缓存中的缓存片区一一对应。
在本申请实施例中,描述符在被创建后,外接设备的DMA控制器需要进一步为描述符分配对应的缓冲区,具体的分配操作是为每个描述符从内存中分配一段地址空间连续的第一内存片区,且由于主设备的内存空间和缓存空间相互映射,因此分配的处理器外部的第一内存片区即在主设备的处理器内部的缓存(缓存可以为高速缓冲存储器(Cachememory))中具有对应的第一缓存片区(第一缓存片区可以为高速缓冲存储器(Cachememory)中的片区)。不同描述符各自对应的第一内存片区不同,不同描述符各自对应的第一缓存片区不同。第一内存片区和第一缓存片区所构成的缓冲区用于存储描述符。
可选的,所述主设备的缓存为所述主设备的处理器中集成设置的共享缓存;所述共享缓存用于供所述处理器的各个处理器核进行数据共享。
在本申请实施例中,参照图1,缓存可以集成在主设备的处理器中,主设备的处理器可以为多核处理器,而缓存可以是多个处理器核共享使用的共享缓存,共享缓存的设置可以大幅提升各个处理器核对缓存数据的访问性能,也增强了各个处理器核之间的协作能力。
步骤204、将所述缓存中与所述第一内存片区对应的第一缓存片区设置为锁定状态。
在本申请实施例中,主设备的处理器提供了锁定缓存的功能,通过该功能可以将DMA控制器为描述符申请的第一内存片区锁定在对应的第一缓存片区中,即让锁定状态的第一缓存片区不可被其他任务占用。
步骤205、从所述主设备的内存的预设内存片区中,为所述描述符对应的待传输数据分配第二内存片区;所述内存中的内存片区与所述缓存中的缓存片区一一对应。
在本申请实施例中,预设内存片区是在主设备的缓存中划分一个内存片区,预设内存片区在主设备的缓存中具有对应的预设缓存片区,预设内存片区以及预设缓存片区(预设缓存片区可以为高速缓冲存储器(Cache memory)中的片区)是仅供DMA请求使用的片区,非DMA请求不可占用。本申请实施例可以从预设内存片区中为描述符对应的待传输数据分配第二内存片区,这样由于存储待传输数据的第二缓存片区(第二缓存片区可以为高速缓冲存储器(Cache memory)中的片区)被非DMA请求占用的几率也就大大下降,从而大大提高了第二缓存片区存储待传输数据的概率,也就提升了针对待传输数据的缓存命中率。
可选的,预设内存片区包括多个子区域,步骤205具体可以包括子步骤2051-2052:
子步骤2051、单位时间内,分别统计每个所述子区域响应DMA请求所对应的频次。
子步骤2052、从所述频次最高的子区域中,为所述描述符对应的待传输数据分配第二内存片区;所述频次最高的子区域用于存储所述DMA请求对应的临时数据。
针对子步骤2051-2052,本申请实施例通过统计单位时间(如1分钟、30秒、5秒等,本申请对此不做限定)内,每个子区域执行DMA请求的频次,周期性的动态确定执行DMA请求的频次最高的子区域,并确定该执行DMA请求的频次最高的子区域是执行DMA请求效率最高的子区域,频次最高的子区域用于存储DMA请求对应的临时数据。之后可以从该频次最高的子区域中,为描述符对应的待传输数据分配第二内存片区。
这样可以通过统计动态选出执行DMA请求的频次最高的子区域,使得后续的DMA请求集中在该频次最高的子区域进行处理,同时锁定该频次最高的子区域,和对应的该频次最高的子区域对应的缓存区域仅用于供DMA请求使用,非DMA请求无法占用。通过选取执行DMA请求的频次最高的子区域为当前DMA请求的待传输数据分配第二内存片区,可以最大程度的降低非DMA请求的干扰,提高缓存命中率。
参照图4所示,主设备的***初始化时,缓存管理程序可以在主设备的内存中预留一段物理地址连续的内存区域作为预设内存片区,大小为256MB,然后将该预设内存片区按照16MB的大小进而划分为16个子区域,这16个子区域分别用于管理大小不同的DMA的缓存区,以减缓存池的碎片化。
***首次启动时,可以默认将子区域0的16MB内存锁定到缓存中。缓存管理程序后续会根据***运行过程进行动态的调整。缓存管理程序会对缓存的每个子区域执行的DMA操作的频次进行动态的记录分析,单位时间哪个子区域执行DMA请求的频次最高,就通过标记出该子区域,并将该子区域锁定到缓存中供后续DMA请求使用。
例如,参照图5,假设某一时刻检测到子区域5执行DMA请求的频次最高,此时子区域5中的内存分配情况如图5所示,其中包括1MB大小的存储设备控制任务,1MB大小的音频驱动任务,3MB大小的网络控制任务,则确定在该子区域中主要是网络设备和硬盘设备在执行DMA操作,此时可能执行的***操作为通过网络网硬盘传输数据,这样由于该子区域已经被锁定在缓存中专门执行DMA请求,因此对DMA任务的处理效率很高,通过提高缓存命中率进而提升***的输入/输出带宽性能。
步骤206、将所述第二内存片区在所述缓存中对应的缓存片区作为所述第二缓存片区,并将所述描述符中表征缓存区地址的字段,赋值为所述第二缓存片区的地址。
在本申请实施例中,由于主设备的内存空间和缓存空间相互映射,因此可以将内存中的第二内存片区在处理器内部的缓存中对应的缓存片区作为第二缓存片区,由于第二内存片区是从仅供DMA请求使用的预设内存片区中分配得到片区,非DMA请求不可占用第二内存片区,因此降低了非DMA请求对第二内存片区在缓存中锁定的第二缓存片区的干扰,即提高了待传输数据在第二缓存片区中存储的概率,也就提升了缓存命中率。
进一步的,本申请实施例还可以通过将描述符中表征缓存区地址的字段赋值为第二缓存片区的地址,从而建立描述符与第二缓存片区的关联关系,这样可以在后续DMA的执行过程中将描述符对应的待传输数据存储在第二缓存片区。
步骤207、根据所述地址信息和数据长度信息,获取所述待传输数据。
在本申请实施例中,描述符所指示的地址信息包含了待传输数据在内存中存放的起点位置,而描述符所指示的数据长度信息则包含待传输数据的数据量,因此,DMA控制器通过地址信息找到待传输数据在内存中存放的起点位置,之后再利用数据长度信息从起点位置开始截取对应长度的数据段,从而提取得到待传输数据。
步骤208、根据所述关联关系,将所述待传输数据存入与所述第二缓存片区。
进一步的,由于建立了描述符与第二缓存片区的关联关系,因此在提取到描述符对应的待传输数据之后,DMA控制器可以根据该关联关系,将描述符对应的待传输数据,存储在于描述符具有关联关系的第二缓存片区中,由于用于存储待传输数据的第二缓存片区是从仅供DMA请求使用的预设缓存片区中分配的,所以大大提高了第二缓存片区(第二缓存片区可以为高速缓冲存储器(Cache memory)中的片区)包含待传输数据的几率,也就提升了缓存命中率。
步骤209、根据所述传输控制信息,通过所述第二缓存片区执行所述待传输数据对应的数据传输过程,并更新所述状态信息。
在本申请实施例中,传输控制信息指示了传输模式、传输方向、传输速率等信息,DMA控制器可以基于传输控制信息所定义的控制参数,通过第二缓存片区执行待传输数据对应的数据传输过程,即将第二缓存片区存储的待传输数据传输至描述符所定义的目的地。
另外,状态信息则记录了传输的状态,如是否完成传输、是否发生错误等,用于监控传输的进程。传输过程中出现错误,可以对应更新状态信息,以及时提醒故障,传输完成或失败,也会更新该状态信息,以使得用户对传输过程的结果具有感知。
可选的,步骤209具体可以包括:子步骤2091-2092:
子步骤2091、在所述传输控制信息表征为读取操作时,将所述待传输数据发送至所述外接设备的内存中进行存储。
子步骤2092、在所述传输控制信息表征为写入操作时,将所述待传输数据发送至所述主设备的内存中进行存储。
在本申请实施例中,针对子步骤2091-2092,在传输控制信息表征读取操作的情况下,此时为处理器运行的用户进程需要向外接设备写入数据,具体的读取操作是DMA控制器从第二缓存片区中读取待传输数据并拷贝到外接设备的内存中供外接设备使用。
在所述传输控制信息表征写入操作的情况下,此时为处理器运行的用户进程需要读取外接设备的数据,具体的写入操作是DMA控制器从第二缓存片区中读取待传输数据并写入到主设备的内存,写入后DMA控制器可以发送中断信号至处理器,处理器响应于中断信号,即可将缓冲区中的数据拷贝到用户空间供用户进程使用。
参照图6,其示出了一个直接内存访问的示例,假设根据DMA传输需求,确定要依次传输三个数据包,则需要对应构建三个描述符:描述符0、描述符1、描述符2,每个描述符大小64比特。
其中描述符2指向描述符1,描述符1指向描述符0,表征先传输描述符2对应的数据包,再传输描述符1对应的数据包,最后传输描述符0对应的数据包。并且,为描述符0分配的第一缓存片区(第一内存片区)的地址区间为0x35ab10000-0x35ab1003f、为描述符1分配的第一缓存片区(第一内存片区)的地址区间为0x35ab10040-0x35ab1007f、为描述符2分配的第一缓存片区(第一内存片区)的地址区间为0x35ab10080-0x35ab100bf。
因此,主设备的缓存的缓存锁功能会将地址区间为:0x35ab10000-0x35ab100c0(考虑对齐,0x35ab100c0比0x35ab100bf多一个字节)这一缓存空间进行锁定,锁定状态下的这一缓存片区不可被其他任务占用,这样就大大降低了第一缓存片区未存储描述符的概率,也就提升了针对描述符的缓存命中率。
进一步的,主设备可以在内存中预留一段物理地址连续的内存区域作为预设内存片区,大小为256MB,地址范围为0x28e240000-0x29e00000;然后将该预设内存片区按照16MB的大小进而划分为16个子区域。则为描述符0对应的数据包分配的第二内存片区为起始地址为0x295240000的对应子区域,为描述符1对应的数据包分配的第二内存片区为起始地址为0x296240000的对应子区域,为描述符2对应的数据包分配的第二内存片区为起始地址为0x297240000的对应子区域。
后续执行DMA时,先根据描述符0执行描述符0对应数据包的传输,再根据描述符1执行描述符1对应数据包的传输,最后根据描述符2执行描述符2对应数据包的传输。传输过程中,存储描述符的第一缓存区域和存储数据包的第二缓存区域的命中率都很高,可以最大程度的降低非DMA请求的干扰,提高***的输入/输出带宽性能。
综上所述,本申请实施例中,可以将描述符在缓存中对应的第一缓存片区,设置为锁定状态,锁定状态下的第一缓存片区不可被其他任务占用,这样就大大提高了第一缓存片区存储描述符的概率,也就提升了针对描述符的缓存命中率。另外,本申请可以在主设备的缓存中划分一个预设缓存片区,并从预设缓存片区中,为描述符对应的待传输数据分配第二缓存片区。该预设缓存片区仅用于存储各DMA请求对应的临时数据,非DMA请求不可占用,这样由于存储待传输数据的第二缓存片区被非DMA请求占用的几率也就大大下降,从而提高了第二缓存片区存储待传输数据的概率,也就提升了针对待传输数据的缓存命中率。缓存命中率的提升,可以提高***的输入/输出带宽性能。
图7是本申请实施例提供的一种直接内存访问的实现装置的框图,应用于外接设备,该装置包括:
生成模块301,用于响应于主设备发起的DMA请求,生成用于描述所述DMA请求对应的数据传输过程的描述符;
锁定模块302,用于将所述描述符在所述主设备的缓存中对应的第一缓存片区设置为锁定状态;所述锁定状态用于阻止其他任务占用所述第一缓存片区;
分配模块303,用于从所述缓存内的预设缓存片区中,为所述描述符对应的待传输数据分配第二缓存片区,并建立所述描述符与所述第二缓存片区的关联关系;所述预设缓存片区仅用于存储各DMA请求对应的临时数据;
执行模块304,用于根据所述描述符和所述关联关系,通过所述第二缓存片区执行所述待传输数据的传输过程,以使所述外接设备响应所述DMA请求。
可选的,所述锁定模块302,包括:
第一分配子模块,用于为所述描述符分配所述主设备的内存中的第一内存片区;所述内存中的内存片区与所述缓存中的缓存片区一一对应;
锁定子模块,用于将所述缓存中与所述第一内存片区对应的第一缓存片区设置为锁定状态。
可选的,所述分配模块303,包括:
第二分配子模块,用于从所述主设备的内存的预设内存片区中,为所述描述符对应的待传输数据分配第二内存片区;所述内存中的内存片区与所述缓存中的缓存片区一一对应;
确定子模块,用于将所述第二内存片区在所述缓存中对应的缓存片区作为所述第二缓存片区。
可选的,所述预设内存片区包括多个子区域;所述第二分配子模块,包括:
统计单元,用于单位时间内,分别统计每个所述子区域响应DMA请求所对应的频次;
分配单元,用于从所述频次最高的子区域中,为所述描述符对应的待传输数据分配第二内存片区;所述频次最高的子区域用于存储所述DMA请求对应的临时数据。
可选的,所述生成模块301,包括:
请求处理子模块,用于确定所述DMA请求需传输的每项待传输数据的地址信息、数据长度信息、传输控制信息和状态信息;
生成子模块,用于根据每项所述待传输数据的地址信息、数据长度信息、传输控制信息和状态信息,分别生成每项所述待传输数据对应的描述符。
可选的,所述分配模块303,包括:
赋值子模块,用于将所述描述符中表征缓存区地址的字段,赋值为所述第二缓存片区的地址。
可选的,所述描述符包括待传输数据的地址信息、数据长度信息、传输控制信息和状态信息;
所述执行模块304,包括:
提取子模块,用于根据所述地址信息和数据长度信息,获取所述待传输数据;
存储子模块,用于根据所述关联关系,将所述待传输数据存入与所述第二缓存片区;
传输子模块,用于根据所述传输控制信息,通过所述第二缓存片区执行所述待传输数据对应的数据传输过程,并更新所述状态信息。
可选的,所述传输子模块,包括:
读取单元,用于在所述传输控制信息表征为读取操作时,将所述待传输数据发送至所述外接设备的内存中进行存储;
写入单元,用于在所述传输控制信息表征为写入操作时,将所述待传输数据发送至所述主设备的内存中进行存储。
可选的,所述主设备的缓存为所述主设备的处理器中集成设置的共享缓存;所述共享缓存用于供所述处理器的各个处理器核进行数据共享。
综上,本申请实施例中,可以将描述符在缓存中对应的第一缓存片区,设置为锁定状态,锁定状态下的第一缓存片区不可被其他任务占用,这样就大大提高了第一缓存片区存储描述符的概率,也就提升了针对描述符的缓存命中率。另外,本申请可以在主设备的缓存中划分一个预设缓存片区,并从预设缓存片区中,为描述符对应的待传输数据分配第二缓存片区。该预设缓存片区仅用于存储各DMA请求对应的临时数据,非DMA请求不可占用,这样由于存储待传输数据的第二缓存片区被非DMA请求占用的几率也就大大下降,从而提高了第二缓存片区存储待传输数据的概率,也就提升了针对待传输数据的缓存命中率。缓存命中率的提升,可以提高***的输入/输出带宽性能。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
本申请实施例提供了一种直接内存访问的实现装置,包括有存储器,以及一个以上的程序,其中一个以上程序存储于存储器中,且经配置以由一个以上处理器执行所述一个以上程序包含用于进行上述一个或多个实施例中所述的方法。
图8是根据一示例性实施例示出的一种电子设备600的框图。例如,电子设备600可以是移动电话,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理等。
参照图8,电子设备600可以包括以下一个或多个组件:处理组件602,存储器604,电源组件606,多媒体组件608,音频组件610,输入/输出(I/ O)的接口612,传感器组件614,以及通信组件616。
处理组件602通常控制电子设备600的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理组件602可以包括一个或多个处理器620来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件602可以包括一个或多个模块,便于处理组件602和其他组件之间的交互。例如,处理组件602可以包括多媒体模块,以方便多媒体组件608和处理组件602之间的交互。
存储器604用于存储各种类型的数据以支持在电子设备600的操作。这些数据的示例包括用于在电子设备600上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,多媒体等。存储器604可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
电源组件606为电子设备600的各种组件提供电力。电源组件606可以包括电源管理***,一个或多个电源,及其他与为电子设备600生成、管理和分配电力相关联的组件。
多媒体组件608包括在所述电子设备600和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动事件的分界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件608包括一个前置摄像头和/或后置摄像头。当电子设备600处于操作模式,如拍摄模式或多媒体模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜***或具有焦距和光学变焦能力。
音频组件610用于输出和/或输入音频信号。例如,音频组件610包括一个麦克风(MIC),当电子设备600处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风用于接收外部音频信号。所接收的音频信号可以被进一步存储在存储器604或经由通信组件616发送。在一些实施例中,音频组件610还包括一个扬声器,用于输出音频信号。
I/ O接口612为处理组件602和***接口模块之间提供接口,上述***接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
传感器组件614包括一个或多个传感器,用于为电子设备600提供各个方面的状态评估。例如,传感器组件614可以检测到电子设备600的打开/关闭状态,组件的相对定位,例如所述组件为电子设备600的显示器和小键盘,传感器组件614还可以检测电子设备600或电子设备600一个组件的位置改变,用户与电子设备600接触的存在或不存在,电子设备600方位或加速/减速和电子设备600的温度变化。传感器组件614可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件614还可以包括光传感器,如CMOS或CCD图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件614还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。
通信组件616用于便于电子设备600和其他设备之间有线或无线方式的通信。电子设备600可以接入基于通信标准的无线网络,如WiFi,运营商网络(如2G、3G、4G或5G),或它们的组合。在一个示例性实施例中,通信组件616经由广播信道接收来自外部广播管理***的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件616还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
在示例性实施例中,电子设备600可以被一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于实现本申请实施例提供的一种内存管理方法。
在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器604,上述指令可由电子设备600的处理器620执行以完成上述方法。例如,所述非临时性存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
图9是根据一示例性实施例示出的一种电子设备700的框图。例如,电子设备700可以被提供为一服务器。参照图9,电子设备700包括处理组件722,其进一步包括一个或多个处理器,以及由存储器732所代表的存储器资源,用于存储可由处理组件722的执行的指令,例如应用程序。存储器732中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件722被配置为执行指令,以执行本申请实施例提供的一种内存管理方法。
电子设备700还可以包括一个电源组件726被配置为执行电子设备700的电源管理,一个有线或无线网络接口750被配置为将电子设备700连接到网络,和一个输入输出(I/O)接口758。电子设备700可以操作基于存储在存储器732的操作***,例如WindowsServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM或类似。
本申请实施例还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现所述的一种内存管理方法。
本领域技术人员在考虑说明书及实践这里公开的申请后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。
Claims (12)
1.一种直接内存访问的实现方法,应用于外接设备,其特征在于,所述方法包括:
响应于主设备发起的DMA请求,生成用于描述所述DMA请求对应的数据传输过程的描述符;
将所述描述符在所述主设备的缓存中对应的第一缓存片区设置为锁定状态;所述锁定状态用于阻止其他任务占用所述第一缓存片区;
从所述缓存内的预设缓存片区中,为所述描述符对应的待传输数据分配第二缓存片区,并建立所述描述符与所述第二缓存片区的关联关系;所述预设缓存片区仅用于存储各DMA请求对应的临时数据;
根据所述描述符和所述关联关系,通过所述第二缓存片区执行所述待传输数据的传输过程,以使所述外接设备响应所述DMA请求。
2.根据权利要求1所述的直接内存访问的实现方法,其特征在于,所述将所述描述符在所述主设备的缓存中对应的第一缓存片区设置为锁定状态,包括:
为所述描述符分配所述主设备的内存中的第一内存片区;所述内存中的内存片区与所述缓存中的缓存片区一一对应;
将所述缓存中与所述第一内存片区对应的第一缓存片区设置为锁定状态。
3.根据权利要求1所述的直接内存访问的实现方法,其特征在于,所述从所述缓存内的预设缓存片区中,为所述描述符对应的待传输数据分配第二缓存片区,包括:
从所述主设备的内存的预设内存片区中,为所述描述符对应的待传输数据分配第二内存片区;所述内存中的内存片区与所述缓存中的缓存片区一一对应;
将所述第二内存片区在所述缓存中对应的缓存片区作为所述第二缓存片区。
4.根据权利要求3所述的直接内存访问的实现方法,其特征在于,所述预设内存片区包括多个子区域;所述为所述描述符对应的待传输数据分配第二内存片区,包括:
单位时间内,分别统计每个所述子区域响应DMA请求所对应的频次;
从所述频次最高的子区域中,为所述描述符对应的待传输数据分配第二内存片区;所述频次最高的子区域用于存储所述DMA请求对应的临时数据。
5.根据权利要求1所述的直接内存访问的实现方法,其特征在于,所述生成用于描述所述DMA请求对应的数据传输过程的描述符,包括:
确定所述DMA请求需传输的每项待传输数据的地址信息、数据长度信息、传输控制信息和状态信息;
根据每项所述待传输数据的地址信息、数据长度信息、传输控制信息和状态信息,分别生成每项所述待传输数据对应的描述符。
6.根据权利要求1所述的直接内存访问的实现方法,其特征在于,所述建立所述描述符与所述第二缓存片区的关联关系,包括:
将所述描述符中表征缓存区地址的字段,赋值为所述第二缓存片区的地址。
7.根据权利要求1所述的直接内存访问的实现方法,其特征在于,所述描述符包括待传输数据的地址信息、数据长度信息、传输控制信息和状态信息;
所述根据所述描述符和所述关联关系,通过所述第二缓存片区执行所述待传输数据的传输过程,包括:
根据所述地址信息和数据长度信息,获取所述待传输数据;
根据所述关联关系,将所述待传输数据存入与所述第二缓存片区;
根据所述传输控制信息,通过所述第二缓存片区执行所述待传输数据对应的数据传输过程,并更新所述状态信息。
8.根据权利要求7所述的直接内存访问的实现方法,其特征在于,所述通过所述第二缓存片区执行所述待传输数据对应的数据传输过程,包括:
在所述传输控制信息表征为读取操作时,将所述待传输数据发送至所述外接设备的内存中进行存储;
在所述传输控制信息表征为写入操作时,将所述待传输数据发送至所述主设备的内存中进行存储。
9.根据权利要求1所述的直接内存访问的实现方法,其特征在于,所述主设备的缓存为所述主设备的处理器中集成设置的共享缓存;所述共享缓存用于供所述处理器的各个处理器核进行数据共享。
10.一种直接内存访问的实现装置,其特征在于,应用于外接设备,所述装置包括:
生成模块,用于响应于主设备发起的DMA请求,生成用于描述所述DMA请求对应的数据传输过程的描述符;
锁定模块,用于将所述描述符在所述主设备的缓存中对应的第一缓存片区设置为锁定状态;所述锁定状态用于阻止其他任务占用所述第一缓存片区;
分配模块,用于从所述缓存内的预设缓存片区中,为所述描述符对应的待传输数据分配第二缓存片区,并建立所述描述符与所述第二缓存片区的关联关系;所述预设缓存片区仅用于存储各DMA请求对应的临时数据;
执行模块,用于根据所述描述符和所述关联关系,通过所述第二缓存片区执行所述待传输数据的传输过程,以使所述外接设备响应所述DMA请求。
11.一种电子设备,其特征在于,包括:处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如权利要求1至9中任一项所述的方法。
12.一种计算机可读存储介质,其特征在于,当所述计算机可读存储介质中的指令由电子设备的处理器执行时,使得所述电子设备能够执行如权利要求1至9中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410251071.2A CN117827709B (zh) | 2024-03-05 | 2024-03-05 | 直接内存访问的实现方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410251071.2A CN117827709B (zh) | 2024-03-05 | 2024-03-05 | 直接内存访问的实现方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117827709A CN117827709A (zh) | 2024-04-05 |
CN117827709B true CN117827709B (zh) | 2024-05-03 |
Family
ID=90524434
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410251071.2A Active CN117827709B (zh) | 2024-03-05 | 2024-03-05 | 直接内存访问的实现方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117827709B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105677592A (zh) * | 2015-12-31 | 2016-06-15 | 北京经纬恒润科技有限公司 | 一种总线通信方法及*** |
CN109388590A (zh) * | 2018-09-28 | 2019-02-26 | 中国电子科技集团公司第五十二研究所 | 提升多通道dma访问性能的动态缓存块管理方法和装置 |
US10298496B1 (en) * | 2017-09-26 | 2019-05-21 | Amazon Technologies, Inc. | Packet processing cache |
CN115269453A (zh) * | 2022-07-27 | 2022-11-01 | 阿里巴巴(中国)有限公司 | 数据收发方法、处理器、电子设备和计算机*** |
CN116243853A (zh) * | 2022-12-20 | 2023-06-09 | 亿咖通(湖北)技术有限公司 | 数据传输方法、装置、电子设备及非易失性存储介质 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060206635A1 (en) * | 2005-03-11 | 2006-09-14 | Pmc-Sierra, Inc. | DMA engine for protocol processing |
US8615614B2 (en) * | 2011-11-30 | 2013-12-24 | Freescale Semiconductor, Inc. | Message passing using direct memory access unit in a data processing system |
US20210149815A1 (en) * | 2020-12-21 | 2021-05-20 | Intel Corporation | Technologies for offload device fetching of address translations |
-
2024
- 2024-03-05 CN CN202410251071.2A patent/CN117827709B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105677592A (zh) * | 2015-12-31 | 2016-06-15 | 北京经纬恒润科技有限公司 | 一种总线通信方法及*** |
US10298496B1 (en) * | 2017-09-26 | 2019-05-21 | Amazon Technologies, Inc. | Packet processing cache |
CN109388590A (zh) * | 2018-09-28 | 2019-02-26 | 中国电子科技集团公司第五十二研究所 | 提升多通道dma访问性能的动态缓存块管理方法和装置 |
CN115269453A (zh) * | 2022-07-27 | 2022-11-01 | 阿里巴巴(中国)有限公司 | 数据收发方法、处理器、电子设备和计算机*** |
CN116243853A (zh) * | 2022-12-20 | 2023-06-09 | 亿咖通(湖北)技术有限公司 | 数据传输方法、装置、电子设备及非易失性存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN117827709A (zh) | 2024-04-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107528976B (zh) | 资源配置方法及相关产品 | |
CN109254849B (zh) | 应用程序的运行方法及装置 | |
WO2019228344A1 (zh) | 资源配置方法、装置、终端及存储介质 | |
CN110990075A (zh) | 快应用的启动方法、装置、设备及存储介质 | |
WO2022199284A1 (zh) | 调用栈回溯方法、装置、设备和介质 | |
WO2019047708A1 (zh) | 资源配置方法及相关产品 | |
CN115145735B (zh) | 一种内存分配方法、装置和可读存储介质 | |
CN116107922A (zh) | 一种应用程序的管理方法及电子设备 | |
JP2024521963A (ja) | データアクセス方法、装置及び非一時的なコンピュータ可読記憶媒体 | |
CN110166564B (zh) | 信息通信方法、终端及存储介质 | |
CN114090289A (zh) | 共享内存数据调用方法、装置、电子设备及存储介质 | |
CN107528977B (zh) | 资源配置方法及相关产品 | |
CN111046265B (zh) | 卡片数据显示方法、装置、设备及存储介质 | |
CN117827709B (zh) | 直接内存访问的实现方法、装置、设备及存储介质 | |
CN111638938A (zh) | 虚拟机的迁移方法、装置、电子设备及存储介质 | |
CN111638966A (zh) | 资源获取方法、装置及电子设备 | |
CN110120963B (zh) | 一种数据处理方法、装置、设备和机器可读介质 | |
CN110968523A (zh) | 内存碎片整理的方法和装置 | |
CN110134370B (zh) | 一种图形绘制的方法、装置、电子设备及存储介质 | |
CN112346718A (zh) | 字节码编译方法、字节码编译装置及计算机可读存储介质 | |
CN112068761A (zh) | 触屏数据处理方法、触屏数据处理装置及存储介质 | |
CN114531493B (zh) | 一种请求处理方法、装置、电子设备及存储介质 | |
CN110633141A (zh) | 一种应用程序的内存管理方法、装置、终端设备及介质 | |
WO2024055708A1 (zh) | 任务调度方法、装置、设备及介质 | |
CN115297144B (zh) | 节点数据交互方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |