CN117271107A - 数据处理方法、装置、电子设备以及计算机可读存储介质 - Google Patents
数据处理方法、装置、电子设备以及计算机可读存储介质 Download PDFInfo
- Publication number
- CN117271107A CN117271107A CN202211060725.0A CN202211060725A CN117271107A CN 117271107 A CN117271107 A CN 117271107A CN 202211060725 A CN202211060725 A CN 202211060725A CN 117271107 A CN117271107 A CN 117271107A
- Authority
- CN
- China
- Prior art keywords
- memory
- storage medium
- storage space
- page table
- bypass
- 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.)
- Pending
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 33
- 238000012545 processing Methods 0.000 claims abstract description 110
- 238000000034 method Methods 0.000 claims abstract description 91
- 230000005540 biological transmission Effects 0.000 claims description 29
- 238000012546 transfer Methods 0.000 claims description 6
- 238000013519 translation Methods 0.000 claims description 6
- 230000006399 behavior Effects 0.000 abstract description 10
- 238000010586 diagram Methods 0.000 description 22
- 230000006870 function Effects 0.000 description 19
- 238000004891 communication Methods 0.000 description 13
- 238000004590 computer program Methods 0.000 description 11
- 238000007726 management method Methods 0.000 description 8
- 230000003287 optical effect Effects 0.000 description 5
- 230000003068 static effect Effects 0.000 description 4
- 230000001360 synchronised effect Effects 0.000 description 4
- 238000013507 mapping Methods 0.000 description 3
- 238000012549 training Methods 0.000 description 3
- 230000001427 coherent effect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000013527 convolutional neural network Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000003066 decision tree Methods 0.000 description 1
- 238000013136 deep learning model Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000002787 reinforcement Effects 0.000 description 1
- 230000010076 replication Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
一种数据处理方法,涉及芯片技术领域。该方法通过在接收到应用程序对内存中第一存储空间的数据处理请求的情况下,获取第一存储空间对应的内存旁路标识,由于内存旁路标识用于指示根据应用程序对第一存储空间的访问需求设置的使用缓存的存储方式,在根据获取到的内存旁路标识执行第一存储空间的关联数据的处理时,能够根据应用程序对第一存储空间的访问需求,来确定关联数据使用缓存的存储方式,从而实现基于应用程序的访问需求来控制缓存行为,提升缓存命中率。
Description
本申请要求于2022年06月15日提交的申请号为202210682111.X,发明名称为“一种高带宽内存的访问方法”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请涉及芯片技术领域,特别涉及一种数据处理方法、装置、电子设备以及计算机可读存储介质。
背景技术
在电子设备中,处理器(例如,中央处理器(central processing unit,CPU))一般可访问主存和缓存的存储空间,其中,主存容量大,访问时延高;缓存空间小,但访问时延低。CPU通常将主存的部分数据复制至缓存,当待处理请求需要访问该数据时,CPU可从缓存中快速获取该数据。上述在缓存中命中待处理请求需要访问数据的概率也可以称为缓存命中率,缓存命中率会影响电子设备的性能。
但是,待处理请求往往来自于运行在CPU中的应用程序,当应用程序通过待处理请求访问缓存中的数据时,存在缓存命中率低的问题,使得电子设备的性能差。因此,亟需一种提升电子设备性能的方法。
发明内容
本申请提供了一种数据处理方法、装置、电子设备以及计算机可读存储介质,能够提升缓存命中率。
第一方面,提供了一种数据处理方法,此方法适用于电子设备,其中,电子设备包括第一存储介质和第二存储介质的电子设备,第一存储介质为电子设备的内存,第二存储介质为内存的缓存,此方法的实现过程包括:先获取应用程序的数据处理请求,再根据数据处理请求,获取第一存储空间对应的内存旁路标识,之后根据内存旁路标识执行关联数据的处理,其中,数据处理请求用于指示对第一存储介质中第一存储空间的关联数据进行处理,内存旁路标识用于指示根据应用程序对第一存储空间的访问需求设置的使用第二存储介质的存储方式。
本方法通过在接收到应用程序对内存中第一存储空间的数据处理请求的情况下,获取第一存储空间对应的内存旁路标识,由于内存旁路标识用于指示根据应用程序对第一存储空间的访问需求设置的使用缓存的存储方式,在根据获取到的内存旁路标识执行第一存储空间的关联数据的处理时,能够根据应用程序对第一存储空间的访问需求,来确定关联数据使用缓存的存储方式,从而实现基于应用程序的访问需求来控制缓存行为,提升缓存命中率。
在一种可能实现方式中,第二存储介质为高带宽内存HBM,HBM的使用方式为缓存Cache模式,Cache模式用于指示HBM用于作为内存的缓存使用。
基于上述可能的实现方式,在HBM为第一存储介质的缓存的应用场景下,通过内存旁路标识指示内存中存储空间使用HBM方式,实现了基于应用程序的访问需求控制HBM的缓存行为。
在另一种可能实现方式中,在根据数据处理请求,获取第一存储空间对应的内存旁路标识之前,此方法的实现过程还包括:先调用操作系统中的第一应用程序编程接口API,以在第一存储介质的页表的页表项设置旁路标识字段,然后再根据应用程序中记录的访问需求,在第一存储空间对应的页表项中的旁路标识字段添加内存旁路标识,其中,旁路标识字段用于存储内存旁路标识。
基于上述可能的实现方式,通过调用第一API在页表中设置旁路标识字段,实现了在页表中新增内存旁路属性,以便之后能够根据应用程序对内存的存储空间的访问需求,在对应页表项添加旁路标识字段,使得处理器通过设置的第一存储介质中各个存储空间对应的内存旁路标识,能够感知到应用程序的访问内存特征,以便处理器在访问内存中的存储空间时,能够根据内存旁路标识确定是否将该存储空间中的数据复制到缓存,从而实现了基于应用程序的访问需求控制缓存行为,便于之后处理器能够在缓存中获取应用程序所需的数据,提升了缓存命中率。
在另一种可能实现方式中,调用操作系统中的第一API,在第一存储介质的页表的页表项设置旁路标识字段的实现方式为:在应用程序向操作系统申请分配第一存储介质中的存储空间时或者申请分配存储空间完成后,调用第一API,在页表的页表项设置旁路标识字段。
基于上述可能的实现方式,在该应用程序向该操作系统申请分配该第一存储介质中的存储空间的情况下,只需要修改应用程序的部分代码,使得应用程序通过处理器调用操作系统中的第一API,就能为页面中的页表项设置旁路标识字段,实现简单。
在另一种可能实现方式中,调用操作系统中的第一应用程序编程接口API,在第一存储介质的页表的页表项设置旁路标识字段的实现方式为:在通过编译器编译应用程序的过程中,通过编译器提供的第二API或导语,调用第一API,在页表的页表项设置旁路标识字段。
基于上述可能的实现方式,通过修改应用程序以及编译器的部分代码,使得该应用程序在编译,通过调用编译器中的编译接口就能够调用到操作系统中的第一API,以为页面中的页表项设置旁路标识字段,实现简单。
在另一种可能实现方式中,根据应用程序中记录的访问需求,在第一存储空间对应的页表项中的旁路标识字段添加内存旁路标识的实现方式包括:先根据应用程序中记录的访问需求,按照第一存储空间的虚拟地址,查询第一存储空间对应的页表项,之后,在查询到的页表项中添加内存旁路标识。
在另一种可能实现方式中,在根据数据处理请求,获取第一存储空间对应的内存旁路标识之前,此方法的实现过程还包括:基于第一存储介质和第二存储介质中至少一个存储介质的数据传输属性,预测应用程序对第一存储空间的访问需求,然后,根据预测出的访问需求,为第一存储空间设置内存旁路标识,其中,数据传输属性用于指示存储介质对传输数据的效率的影响。
基于上述可能的实现方式,通过至少一个存储介质当前的数据传输属性,预测应用程序对第一存储空间的访问需求,避免在应用程序中记录应用程序对第一存储空间的访问需求,且还能满足应用程序对内存的存储空间的实时性的访问需求,从而通过预测应用程序对第一存储空间的访问需求所在设置的内存旁路标识,能够实时控制缓存行为。
在另一种可能实现方式中,基于第一存储介质和第二存储中至少一个存储介质的数据传输属性,预测应用程序对第一存储空间的访问需求的实现过程包括:将数据传输属性输入预测网络,通过预测网络,基于输入的数据传输属性,预测应用程序对第一存储空间的访问需求。
基于上述可能的实现方式,无须用户对应用程序的代码进行修改,且无须操作系统提供第一API,只要能够获取到预测网络,能够为第一存储介质的页表中的页表项设置旁路标识字段,操作简单。
在另一种可能实现方式中,根据预测出的访问需求,为第一存储空间设置内存旁路标识的实现方式包括:先根据预测出的访问需求,按照第一存储空间的物理地址,查询第一存储空间对应的页表项,然后在查询到的页表项中添加内存旁路标识。
在另一种可能实现方式中,数据处理请求包括第一存储空间的虚拟地址,在此基础上,根据数据处理请求,获取第一存储空间对应的内存旁路标识的实现过程包括:根据第一存储空间的虚拟地址,查询第一存储空间对应的页表项,之后,在查询到的页表项中获取内存旁路标识。
在另一种可能实现方式中,根据虚拟地址,查询第一存储空间对应的页表项的实现过程包括:根据虚拟地址,在第一存储介质的页表中,查询第一存储空间对应的页表项;或者,根据虚拟地址,在处理器的转译后备缓冲器TLB中,查询第一存储空间对应的页表项。
在另一种可能实现方式中,根据内存旁路标识执行关联数据的处理的实现过程包括以下两种情况:若内存旁路标识指示使用第二存储介质存储第一存储介质中的数据,对第一存储空间的关联数据进行处理,将第一存储空间中的关联数据复制到第二存储介质;若内存旁路标识指示不使用第二存储介质存储第一存储介质中的数据,对第一存储空间的关联数据进行处理,不执行将第一存储空间中的关联数据复制到第二存储介质的步骤。
基于上述可能的实现方式,根据内存旁路标识所指示的使用缓存的存储方式,将内存中存储空间内的数据的副本存储在缓存或者不存储在缓存,从而实现了根据内存旁路标识,控制缓存行为。
第二方面,提供了一种数据处理装置,该装置包括用于执行第一方面或第一方面任一种可能实现方式中的数据处理方法的各个模块。
第三方面,提供一种电子设备,该电子设备包括处理器,处理器用于执行程序代码,使得电子设备执行以实现如上述数据处理方法所执行的操作。
第四方面,提供一种芯片,所述芯片用于实现如第一方面或第一方面任一种可能实现方式中的数据处理方法的操作步骤。
第五方面,提供一种处理器,所述处理器用于实现如第一方面或第一方面任一种可能实现方式中的数据处理方法的操作步骤。
第六方面,提供一种计算机可读存储介质,该存储介质中存储有至少一条程序代码,该程序代码由处理器读取以使电子设备执行如上述数据处理方法所执行的操作。
第七方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括程序代码,该程序代码存储在计算机可读存储介质中,电子设备的处理器从计算机可读存储介质读取该程序代码,处理器执行该程序代码,使得该电子设备执行上述第一方面或者第一方面的各种可选实现方式中提供的方法。
本申请在上述各方面提供的实现方式的基础上,还可以进行进一步组合以提供更多实现方式。
附图说明
图1是本申请提供的一种数据处理系统的结构示意图;
图2是本申请提供的另一种数据处理系统的结构示意图;
图3是本申请提供的一种数据处理方法的流程图;
图4是本申请提供的一种电子设备中的数据处理系统的示意图;
图5是本申请提供的一种设置内存旁路属性的示意图;
图6是本申请提供的一种数据处理方法的交互示意图;
图7是本申请提供的另一种设置内存旁路属性的示意图;
图8是本申请提供的另一种数据处理方法的流程图;
图9是本申请提供的另一种设置内存旁路属性的示意图;
图10是本申请提供的一种预测应用程序对存储空间的访问需求的示意图;
图11是本申请提供的一种数据处理装置的结构示意图;
图12是本申请提供的一种芯片的结构示意图;
图13是本申请提供的一种电子设备的结构示意图。
具体实施方式
针对包括第一存储介质和第二存储介质的电子设备,在第一存储介质为电子设备的内存,第二存储介质为内存的缓存的情况下,本申请提供一种数据处理方法。在该方法中,在应用程序请求对第一存储介质中某一存储空间的关联数据进行处理时,先获取该存储空间使用第二存储介质的存储方式,其中,该存储方式是根据应用程序对该存储空间的访问需求所设置的,然后,再获取到的存储方式执行关联数据的处理。
此时,第二存储介质的使用方式为缓存(Cache)模式,缓存模式指示第二存储介质用于作为内存(即第一存储介质)的缓存使用。在一种可能的实现方式中,该方法由该电子设备中的处理器(如CPU)来执行。下面将结合附图1和2对处理器、第一存储介质以及缓存模式下的第二存储介质所组成的系统架构作如下介绍。
图1是本申请提供的一种数据处理系统的结构示意图,如图1所示,数据处理系统100包括第一存储介质101、第二存储介质102以及处理器103。其中,第一存储介质101作为处理器103的内存,用于存储处理器103待处理的数据(例如业务数据、程序代码或者计算机指令)。图1是以第一存储介质101为双倍速率同步动态随机存储器(double data RateSDRAM,DDR)为例示出的,在一些实施例中,第一存储介质101还可能为动态随机存取存储器(dynamic random access memory,DRAM)或其他类型的主存储器(main memory)。在此,本申请实施例对第一存储介质101的介质类型不做限定。
第二存储介质102作为内存的缓存使用,此时,第二存储介质102的使用方式为Cache模式。其中,图1是以第二存储介质102为高带宽内存(high bandwidth memory,HBM)为例示出的,在一些实施例中,第二存储介质102为静态随机存取存储器(static random-access memory,SRAM)或其他类型的缓存,在此,本申请实施例对第二存储介质102的介质类型不做限定。
对于第一存储介质101和第二存储介质102中的任一存储介质,该存储介质包括多个存储空间,该存储空间为用于存储数据。处理器103(如CPU)在运行应用程序时,应用程序请求处理第一存储介质101中存储空间的关联数据(如读取该存储空间的数据,或向该存储空间写入数据),根据应用程序的请求,先从第一存储介质101的缓存查询待处理的关联数据,处理器在该缓存中查找到该存储空间的关联数据,则认为发生缓存命中(cache hit),否则,认为发生缓存缺失(cache miss)。若发生缓存命中,则处理器103在缓存执行关联数据的处理,若发生缓存缺失,则在第一存储介质101执行关联数据的处理。
在一些实施例中,数据处理系统100包括多个第二存储介质102,多个第一存储介质102作为第一存储介质101的多级缓存。例如,图2所示的本申请提供的另一种数据处理系统的结构示意图,数据处理系统200包括第一存储介质101、第二存储介质102a至102d以及处理器103。按照读写数据的速度,第二存储介质102a至102d、第一存储介质101与层级L1至L5一一对应,L1>L2>L3>L4>L4>L5,其中,层级越高的存储介质读写数据的速度越快。
如图2所示,第二存储介质102a至102d的使用方式均为Cache模式。图2是以L1至L3层级的缓存均为SRAM,L4层级的缓存为HBM,L5层级的内存为DDR为例示出的。在不同的实施场景下,内存还可能具有4个以下或者4个以上的缓存,在此,本申请实施例对内存的缓存个数不做限定。
对于第二存储介质102a至102d这多级缓存中的任一缓存,该缓存用于存储下一层级存储介质所存储的部分数据的副本。处理器103在获取到应用程序对第一存储介质101中存储空间的关联数据进行处理的请求时,处理器103按照层级由高到低的顺序,优先在高层级缓存中查找是否存储有该存储空间的关联数据。对于任一缓存,在查询的过程中,则处理器103在该缓存执行关联数据的处理,若发生缓存缺失(cache miss),则处理器103在该缓存的下一层级存储介质继续查找,直到查询到该存储空间的关联数据。
上述的数据处理系统架构能够部署在电子设备中,基于上述的数据处理系统架构,下面结合附图对电子设备执行数据处理方法的过程做如下介绍:
在应用程序请求对第一存储介质中某一存储空间的关联数据进行处理时,处理器获取的该存储空间使用第二存储介质的存储方式由内存旁路标识来指示,进而处理器根据内存旁路标识,执行关联数据的处理,为了说明该过程,参见图3所示的本申请提供的一种数据处理方法的流程图,该方法应用于电子设备,其中,该电子设备包括第一存储介质和第二存储介质,该第一存储介质为该电子设备的内存,该第二存储介质为该内存的缓存。如图3所示,该方法包括下述步骤301至步骤305。
步骤301、应用程序调用操作系统中的第一应用程序编程接口(applicationprogramming interface,API),在第一存储介质的页表的页表项设置旁路标识字段,旁路标识字段用于存储内存旁路标识。
其中,内存旁路标识用于指示根据应用程序对第一存储介质中的存储空间的访问需求设置的使用第二存储介质的存储方式。根据应用程序对第一存储介质中的存储空间的访问需求包括应用程序中记录的用程序对第一存储介质中的存储空间的访问需求或者预测的用程序对第一存储介质中的存储空间的访问需求。
内存旁路标识包括第一内存旁路标识或第二内存旁路标识,第一内存旁路标识用于指示使用第二存储介质存储第一存储介质中的数据,第二内存旁路标识用于指示不使用第二存储介质存储第一存储介质中的数据。其中,第一内存旁路标识和第二内存旁路标识的表示方式不同,例如,第一内存旁路标识为1,第二内存旁路标识为0,或者,第一内存旁路标识为0,第二内存旁路标识为1,在此,本申请实施例对第一内存旁路标识和第二内存旁路标识的表示方式不做限定。
以图4所示的本申请提供的一种电子设备中的数据处理系统的示意图为例,对于电子设备中运行的进程,操作系统(operating system,OS)以页为单位对内存进行管理,使用页表保存第一存储介质的虚拟地址到物理地址的映射关系。对应的虚拟地址和物理地址用于指示内存中的同一存储空间,虚拟地址包括该存储空间所在页的页号(即虚拟地址的页编号)以及该存储空间在该页中的偏移地址,物理地址包括该存储空间所在页框的页框号(即物理地址的页编号)。
以表1所示的页表为例,页表包括N+1个页表项(page table entry),每个页表项包括一个页号和一个页框号,以指示该页号所指示的页面映射到该页框号对应的页框,其中,N为正整数。
表1
页表项 | 页号 | 页框号 |
页表项0 | 0 | 0 |
页表项1 | 1 | 1 |
… | … | … |
页表项N | N | N |
在本申请实施例中,对页表中页表项的功能作进一步扩展,以表2所示的页表为例,在页表项中扩展出旁路标识字段,该旁路标识字段用于存储内存旁路标识,使得页表具有内存旁路属性。
表2
页表项 | 页号 | 页框号 | 旁路标识字段 |
页表项0 | 0 | 0 | 内存旁路标识 |
页表项1 | 1 | 1 | 内存旁路标识 |
… | … | … | 内存旁路标识 |
页表项N | N | N | 内存旁路标识 |
仍以图4为例,操作系统所管理的页表存放在第一存储介质中,另外,电子设备的处理器(如CPU的内核)使用转译后备缓冲器(translation lookaside buffer,TLB)作为页表的缓存。例如,页表中的至少一个页表项作为TLB表项(TLB entry),从而使得TLB表项具有旁路标识字段,进而TLB具有内存旁路属性。
应用程序通过调用操作系统中的第一API,在第一存储介质的页表的页表项设置旁路标识字段,以为页表增加内存旁路属性。在一种可能的实现方式中,该第一API是用户自定义的用于设置内存旁路属性的API或者是为扩展有设置内存旁路属性的现有API,在此,本申请实施例对第一API的类型不做限定。
在该第一API为扩展有设置内存旁路属性的现有API的情况下,第一API包括内存映射文件函数、内存映射保护函数以及其他类型的函数,在此,本申请实施例对第一API的函数类型不做限定。
其中,内存映射文件函数表示为:void*mmap(void*addr,size_t length,intprot,int flags,int fd,off_t offset),内存映射文件函数中的addr指内存分配是的线索(HINT);length指示该文件中映射到内存的数据的长度;prot指示内存中文件的映射区域的保护方式,在本申请实施例中,扩展port功能,在port中增加旁路属性设置标识,该旁路属性设置标识指示为该页表中页表项设置旁路标识字段;Flags指示该映射区域的各种特性;fd为文件描述符,指示映射到内存的文件。offset为文件映射的偏移量。
内存映射保护函数表示为:int mprotect(void*addr,size_t len,int prot),内存映射文件函数中的addr指示内存中待修改的保护属性区域的起始地址;len为该保护属性区域的长度;prot指示该保护属性区域的各种属性,本申请实施例中,扩展port功能,在port中增加旁路属性设置标识,该旁路属性设置标识指示为该页表中页表项设置旁路标识字段。
在一种可能的实现方式中,应用程序通过下述方式1或者方式2中任一方式,调用操作系统中的第一API。
方式1、在应用程序向操作系统申请分配第一存储介质中的存储空间时或者申请分配该存储空间完成后,应用程序调用该第一API,在该页表的页表项设置该旁路标识字段。
其中,该应用程序为电子设备中安装的任一应用程序。以图4为例,应用程序(application,APP)在申请内存的存储空间时调用操作系统中的第一API,设置旁路标识字段。结合图5和图6对该过程作如介绍:
其中,图5是本申请提供的一种设置内存旁路属性的示意图,图6是本申请提供的一种数据处理方法的交互示意图,如图5和图6所示,应用程序在启动时,向操作系统(如操作系统的内核中的内存管理模块)发送内存分配请求,该内存分配请求用于指示为该应用程序分配第一存储介质中的存储空间,也即是向操作系统申请内存。操作系统在接收到该内存分配请求后,为该应用程序分配第一存储介质中的存储空间,向应用程序返回第一虚拟地址段,该第一虚拟地址段与为该应用程序分配的至少一个存储空间的物理地址对应。另外,应用程序在向操作系统发送内存分配请求时,该内存分配请求触发调用操作系统中的第一API,向第一API输入旁路属性设置标识,操作系统(如内存管理模块)通过该第一API输入的旁路属性设置标识,在该页表中的页表项设置该旁路标识字段,从而在页表新增内存旁路属性。在这种情况下,第一API可能为用户定义的API或者为内存映射文件函数。
对于在该应用程序向该操作系统申请分配存储空间完成之后,仍以图5为例,若应用程序接收到操作系统基于内存分配请求返回的第一虚拟地址段,应用程序调用操作系统中的第一API,向第一API输入旁路属性设置标识,操作系统通过该第一API输入的内存旁路标识,为该页表中的页表项设置该旁路标识字段。在这种情况下,第一API可能为用户定义的API或者为内存映射保护函数。
在该应用程序向该操作系统申请分配该第一存储介质中的存储空间的情况下,通过修改应用程序的部分代码,使得应用程序通过处理器调用操作系统中的第一API,就能为页面中的页表项设置旁路标识字段,实现简单。
方式2、第一API封装在编译器中的编译接口,在通过编译器编译该应用程序的过程中,应用程序通过该编译器中的第二API或导语,调用该第一API,为该页表的页表项设置该旁路标识字段。
其中,该第二API可能为基于现有的API进行扩展的API也可能是新增API,在此,本申请实施例对第二API的实现方式不做的限定。
以图4为例,应用程序APP在编译时调用操作系统中的第一API,结合图7对该过程作如介绍:
其中,图7是本申请提供的另一种设置内存旁路属性的示意图,如图7所示,编译器中的第二API或导语中封装有第一API,在编译器对应用程序进行编译的过程中,应用程序调用编译器中的第二API或导语,向第二API或导语输入旁路属性设置标识,第二API或导语在接收到旁路属性设置标识时,调用操作系统中的第一API,向第一API输入旁路属性设置标识,操作系统(如操作系统的内核中的内存管理模块)通过该第一API输入的旁路属性设置标识,在该页表中的页表项设置该旁路标识字段,从而在页表增加内存旁路属性。
对于这种实现方式,通过修改应用程序以及编译器的部分代码,使得该应用程序在编译,通过调用编译器中的编译接口就能够调用到操作系统中的第一API,以为页面中的页表项设置旁路标识字段,实现简单。
仍以图5-7为例,当操作系统在页表中为页表项设置旁路标识字段后,处理器(如处理器的内核(core))还从操作系统的页表同步旁路标识字段到TLB的TLB选项,以为TLB选项设置旁路标识字段,从而在处理器中新增内存旁路属性。
在另一种可能的实现方式中,电子设备中安装有目标应用程序,该目标应用程序用于调用第一API。例如,在电子设备中的处理器运行目标应用程序的过程中,目标应用程序调用第一API,为该页表的页表项设置该旁路标识字段,而无需通过各个应用程序调用第一API接口。
本步骤301为可选步骤,在一些实施例中,若该页表中已经设置有旁路标识字段,则操作系统无须执行本步骤301。在另一些实施例中,操作系统具有主动在该页表中设置旁路标识字段的功能,例如,当电子设备上电后,操作系统初始化时,操作系统在该页表中设置旁路标识字段,此时,无须执行本步骤301。且本步骤301执行一次即可,无须多次执行。
步骤302、操作系统根据应用程序中记录的应用程序对第一存储空间的访问需求,在该第一存储空间对应的页表项中的旁路标识字段添加该内存旁路标识。
其中,该第一存储空间为第一存储介质中的任一存储空间。在本申请实施例中,将第一存储空间存储的数据称为关联数据,应用程序对第一存储空间中第一存储空间的访问需求为应用程序对该关联数据的访问需求。应用程序对该关联数据的访问需求例如应用程序在第一时间段内至少需要访问目标次数的该关联数据,或者,该关联数据为应用程序在第一时间段内待访问的目标业务的业务数据。其中,该第一时间段为当前时刻之后的时间段,即未来时间段,在此,本申请实施例对第一时间段的时长不做限定。
在一种可能的实现方式中,若该第一存储空间已经分配给该应用程序,操作系统根据应用程序中记录的该访问需求,在该页表项中添加内存旁路标识。例如下述的步骤3021至3022。
步骤3021、操作系统根据应用程序中记录的该访问需求,按照第一存储空间的虚拟地址,查询该第一存储空间对应的页表项。
以图6为例,应用程序根据自己记录的该访问需求,请求操作系统为第一存储空间设置内存旁路标识,从而在操作系统接收到应用程序的请求的情况下,按照第一存储空间的虚拟地址,查询该第一存储空间对应的页表项。例如,下述的步骤A1至步骤A2。
步骤A1、若第一存储介质中的该第一存储空间已经分配给应用程序,应用程序向操作系统发送旁路标识设置请求,该旁路标识设置请求指示为该第一存储空间设置内存旁路标识。
其中,该旁路标识设置请求包括第一存储空间的关联数据所在的虚拟地址,或者该旁路标识设置请求包括待设置内存旁路标识的虚拟地址段的开始地址以及该虚拟地址段的长度,其中,该虚拟地址段所指示的存储空间包括该第一存储空间,或者该旁路标识设置请求包括该虚拟地址段。
如图6所示,在应用程序向操作系统申请分配内存的情况下,操作系统(如操作系统的内核中的内存管理模块)为该页表的页表项设置旁路标识字段。在应用程序向操作系统申请分配第一存储介质的存储空间之后,操作系统(如内存管理模块)将第一存储介质中的至少一个存储空间分配给应用程序,为该应用程序创建至少一个页面,该至少一个页面与该至少一个存储空间对应。之后,操作系统为基于至少一个页面以及该至少一个存储空间,为该应用程序创建页表,该页表包括至少一个页表项,每个页表项用于存储一个页面的页号以及对应存储空间的页框号。该操作系统基于该至少一个页面,向应用程序返回第一虚拟地址段,该第一虚拟地址段用于指示该至少一个页面。例如,该第一虚拟地址段的开始地址为该至少一个页面中第一个页面的开始地址,该第一虚拟地址段的结束地址为该至少一个页面中最后一个页面的结束地址。该第一虚拟地址段的长度为该至少一个页面的长度。
当应用程序接收到该第一虚拟地址段的情况下,处理器在运行该应用程序的过程所使用到的相关数据均能够存储在该第一虚拟地址段对应的存储空间。
对于应用程序待访问的至少一个数据,若应用程序中记录有与任一数据对应的需求标识,该任一数据由第一虚拟地址段中某一虚拟地址存储,则以该虚拟地址所在的页面对应的页框为第一存储空间,以任一数据为第一存储空间的关联数据,生成包括该虚拟地址的旁路标识设置请求。其中,该需求标识指示应用程序对该至少一个数据的访问需求。
在一些实施例中,应用程序待访问的多个数据均对应需求标识,则应用程序以第一虚拟地址段中用于存储该多个数据的虚拟地址为待设置内存旁路标识的虚拟地址段(即第二虚拟地址段),生成包括第二虚拟地址段的旁路标识设置请求。或者,若该第二虚拟地址段中的虚拟地址为连续的虚拟地址,该旁路标识设置请求不包括第二虚拟地址段,而是包括该第二虚拟地址段的开始地址以及该第二虚拟地址段的长度。
在另一种可能的实现方式中,该旁路标识设置请求还包括第二存储介质的内存旁路标识以及需求标识中的至少一个,当然,该旁路标识设置请求还可能不包括内存旁路标识和需求标识。
步骤A2、操作系统接收该旁路标识设置请求,基于该旁路标识设置请求,按照该第一存储空间的虚拟地址,查询第一存储空间对应的页表项。
在操作系统接收到该旁路标识设置请求后,若旁路标识设置请求包括第一存储空间的虚拟地址,该操作系统获取该虚拟地址中的页号,该页号指示第一存储空间所在的页面,之后,操作系统在该页表中查询包括该页号的页表项。
若该旁路标识设置请求包括第二虚拟地址字段,该操作系统基于第二虚拟地址字段,确定与该第二虚拟地址字段对应的各个页面的页号。实现地址页对齐。为了便于描述将该第二虚拟地址字段对应的各个页面称为第一页面。或者,若该旁路标识设置请求包括第二虚拟地址字段的开始地址以及长度,该操作系统基于该开始地址,确定该开始地址所指示的页面,基于该第二虚拟地址字段的长度,将该开始地址所指示的页面以及该页面之后的目标个数的页面确定为第一页面,其中,若该第二虚拟地址字段的长度与单个页面的长度之间的倍数为整数,该目标个数等于该倍数,若倍数不为整数,该目标个数比该倍数大1。
当确定出该第二虚拟地址段对应的各个第一页面后,对于任一第一页面,该操作系统在该页表中查询包括该第一页面的页号的页表项。其中,若该第一页面为第一存储空间所在的页面,该操作系统在该页表中查询包括该第一页面的页号的页表项也即是查询第一存储空间对应的页表项。
步骤3022、操作系统在该页表中该第一存储空间对应的页表项中添加内存旁路标识。
对于任一第一页面,若页表中的任一页表项包括该第一页面的页号,则操作系统在该任一页表项的旁路标识字段添加第一内存旁路标识。例如下述的情况1和2。
情况1、当在创建该页表时,操作系统在该页表各个页表项的旁路标识字段添加第二内存旁路标识,若页表中的任一页表项包括该第一页面的页号,再将该任一页表项的旁路标识字段中的第二内存旁路标识修改为第一内存旁路标识。
情况2、当操作系统在创建该页表时,不在该页表各个页表项的旁路标识字段添加任何内容,使得旁路标识字段为空,若页表中的任一页表项包括该第一页面的页号,操作系统在该任一页表项的旁路标识字段添加的第一内存旁路标识。
应用程序在当前时间之后的第一时间段内,还可能对第一存储介质中的部分存储空间所需的访问次数小于目标次数,操作系统为这部分存储空间所在的页面(即第二页面)设置第二内存旁路标识。可以理解的是,第二页面是为该应用程序创建的至少一个页面中除第一页面以外的各个页面。对于情况1,页表中没有修改内存旁路标识的各个页表项为第二页面对应的页表项,由于第二页面对应的页表项中的内存旁路标识为第二内存旁路标识,则操作系统对第二页面对应的页表项无需再次设置第二内存旁路标识。对于情况2,由于第二页面对应的页表项的旁路标识字段为空,则操作系统在第二页面对应的页表项的旁路标识字段添加第二内存旁路标识。
在另一种可能的实现方式中,应用程序基于该第一虚拟地址段,向操作系统发送该旁路标识设置请求,此时该旁路标识设置请求包括第二虚拟地址段和第三虚拟地址段,其中,第二虚拟地址段与需求标识或第一内存旁路标识对应,第三虚拟地址段包括第一虚拟地址段中除第二虚拟地址段以外的虚拟地址。之后,操作系统基于该旁路标识设置请求中的第二虚拟地址段以及对应的需求标识或第一内存旁路标识,在页表中各个第一页面对应的页表项中添加第一内存旁路标识,基于该旁路标识设置请求中的第三虚拟地址段,确定第二页面的页号,在页表中包括第二页面的页号的页表项中添加第二内存旁路标识。
如图6所示,操作系统(如内存管理模块)在页表中各个页表项添加内存旁路标识,另外,处理器在运行该应用程序的过程中,可能不断访问第一存储介质的存储空间中的数据,对于当前时间段内处理器访问的第一存储介质中的某一存储空间,该处理器将页表中该存储空间对应的页表项,读取到TLB,作为TLB表项,也即是,处理器(如处理器的内核)在更新TLB表时,读取包括内存旁路标识的页表项到TLB,相应地,处理器会将第一存储介质存放的页表中的内存旁路标识同步到TLB表项的内存旁路标识字段。仍以图3为例,处理器的内核将页表中的页表项0-K添加到TLB中,得到TLB表项0-K,TLB表项0-K均包括内存旁路标识。
步骤303、处理器获取应用程序的数据处理请求,该数据处理请求用于指示对该第一存储介质中第一存储空间的关联数据进行处理。
其中,第一存储空间为第一存储介质中包括关联数据的存储空间,该数据处理请求包括第一存储空间的虚拟地址。在一种可能的实现方式中,该数据处理请求为数据读取请求或数据写入请求,数据读取请求指示对该第一存储空间中的关联数据进行读取,数据写入请求指示将该关数据写入第一存储空间,该数据写入请求还包括该关联数据。
处理器在运行该应用程序过程中,若有访问第一存储空间的需求的情况下,处理器生成该数据处理请求。例如,在运行该应用程序的过程中,若应用程序要向该第一存储空间写入数据,则处理器生成的数据处理请求为数据写入请求,若应用程序要读取该第一存储空间中的数据,则处理器生成的数据处理请求为数据读取请求。
步骤304、处理器根据该数据处理请求,获取该第一存储空间对应的内存旁路标识,该内存旁路标识用于指示根据该应用程序对该第一存储空间的访问需求设置的使用该第二存储介质的存储方式。
在一种可能的实现方式中,处理器根据数据处理请求中第一存储空间的虚拟地址,查询第一存储空间对应的页表项,从查询到的页表项中获取第一存储空间的内存旁路标识(如从页表项的内存旁路字段获取内存旁路标识)。
对于处理器查询该第一存储空间对应的页表项的过程,处理器根据该虚拟地址,在处理器的TLB中,查询该第一存储空间对应的页表项,或者,根据该虚拟地址,在第一存储介质的页表中,查询第一存储空间对应的页表项。
例如,处理器基于该虚拟地址,确定第一存储空间所在的页面的页号以及页内偏移量。之后,基于该页面的页号,在TLB中查询包括该页号的TLB表项,若查询到包括该页号的TLB表项,则从该TLB表项的旁路标识字段获取内存旁路标识。若在TLB中查询不到包括该页号的TLB表项,则处理器再从页表中读取包括该页号的页表项到TLB,然后再从TLB中的该页表项获取内存旁路标识。或者,处理器先从该页表项获取内存旁路标识,再将读取该页表项到TLB。
步骤305、处理器根据该内存旁路标识执行该关联数据的处理。
其中,针对不同的内存旁路标识,处理器执行关联数据的处理过程不同。例如,若该内存旁路标识指示使用第二存储介质存储第一存储介质中的数据,处理器对该第一存储空间的关联数据进行处理,将该第一存储空间中的关联数据复制到该第二存储介质。若该内存旁路标识指示不使用第二存储介质存储第一存储介质中的数据,处理器对第一存储空间的关联数据进行处理,不执行将第一存储空间中的关联数据复制到第二存储介质的步骤。
另外,处理器通过查询TLB确定第一存储空间中的数据已经存储在第二存储介质,如果查询到某一TLB表项包括第一存储空间所在的页面的页号,则说明第一存储空间中的数据已经存储在第二存储介质,则通过访问第二存储介质,实现对第一存储空间的关联数据进行处理,否则,通过访问第一存储介质,实现对第一存储空间的关联数据进行处理。
下面根据查询到包括该页号的TLB表项或页表项,对本步骤305进行如下描述:
若是从TLB表项获取的内存旁路标识,处理器从查询到的TLB表项获取第一存储空间的页框号,将该页框号以及第一存储空间的虚拟地址中的页内偏移量进行拼接,得到第一存储空间的物理地址。该处理器基于该物理地址,在第二存储介质中查询包括该第一存储空间中的数据的缓存行,基于该数据处理请求,对该缓存行中与第一存储空间对应的缓存空间进行访问,以对第一存储空间的关联数据进行处理。例如,若该数据处理请求为数据读取请求,处理器从该缓存空间读取数据,此时读取到的数据也即是第一存储空间的关联数据。若该数据处理请求为数据写入请求,处理器将该数据写入请求携带关联数据写入到该缓存空间。
此时,第二存储介质中已经存储有第一存储介质中该第一存储空间中的关联数据,则处理器基于查询到的内存旁路标识,不对第一存储介质中第一存储空间中的数据做任何操作,处理数据写入请求即可。
若处理器是从页表中的页表项获取的内存旁路标识,处理器从查询到的页表项获取第一存储空间的页框号,将该页框号以及第一存储空间的虚拟地址中的页内偏移量进行拼接,得到第一存储空间的物理地址。处理器基于该数据处理请求,对第一存储介质中该物理地址所指示的第一存储空间进行访问,以对第一存储空间的关联数据进行处理。例如,若该数据处理请求为数据读取请求,处理器从该第一存储空间读取数据,若该数据处理请求为数据写入请求,处理器将该数据写入请求携带关联数据写入到该第一存储空间。
此时,若该内存旁路标识为第一内存旁路标识,则该处理器将该第一存储空间中的数据(即关联数据)复制到第二存储介质中的缓存行。若该内存旁路标识为第二内存旁路标识,则该处理器不执行将该第一存储空间中的数据复制到第二存储介质中的缓存行的步骤。
以图3为例,在图3中假设第一存储介质为DDR,第二存储介质为HBM,处理器(如处理器的内核)通过查询页表或TLB,在APP的数据处理请求中添加DDR中待访问存储空间对应的内存旁路标识,将携带内存旁路标识的数据处理请求发送到处理器中的判断模块,由判断模块基于该内存旁路标识,确定是否需要将该存储空间中的数据复制到HBM。如果需要复制将该存储空间中的热数据复制到HBM,则说明该存储空间中的数据为热数据。以数据处理请求为数据读取请求,在判断模块从DDR中的该存储空间读取完热数据后,将该热数据复制到HBM。之后,处理器再次读取该存储空间中的热数据时,能够在HBM中直接读取到。如果不需要复制将该存储空间中的数据复制到HBM,则说明该存储空间中的数据为冷数据。以数据处理请求为数据读取请求,在处理器从DDR中的该存储空间读取完冷数据后,不将该冷数据复制到HBM。
在一种可能的实现方式中,在第一存储空间的大小小于第二存储介质中的缓存行的大小的情况下,若将第一存储空间中的数据复制到第二存储介质中的缓存行,处理器还将第一存储介质中的其他存储空间的数据一起复制到该缓存行,以填充满该缓存行。另外,在第二存储介质的空闲缓存行不足的情况下,处理器将第二内存中的非空闲缓存行中的数据淘汰出第二存储介质,从而使得非空闲缓存行变成空闲缓存行,之后处理器再将第一存储介质中第一存储空间中的数据以及其他存储空间的数据一起复制到该空闲缓存行。
下面再结合图6对上述步骤304和305做如下介绍:处理器的内核在接收到应用程序的数据处理请求后,将数据处理请求发送处理器的内核,处理器的内核根据数据处理请求,从TLB或页表中查询第一存储空间对应的内存旁路标识,在数据处理请求中添加查询到的内存旁路标识,向处理器的非内核(uncore)部分发送携带内存旁路标识的数据处理请求。之后,非内核部分根据数据处理请求中的内存旁路标识,判断是否需要将第一存储空间的关联数据复制到第二存储介质,并执行相关的处理过程。可以理解的是,非内核部分包括图4中的判断模块,能够实现判断模块的功能。
本申请提供的方法,通过在接收到应用程序对内存中第一存储空间的数据处理请求的情况下,获取第一存储空间对应的内存旁路标识,由于内存旁路标识用于指示根据应用程序对第一存储空间的访问需求设置的使用缓存的存储方式,在根据获取到的内存旁路标识执行第一存储空间的关联数据的处理时,能够根据应用程序对第一存储空间的访问需求,来确定关联数据使用缓存的存储方式,从而实现基于应用程序的访问需求来控制缓存行为,提升缓存命中率。另外,在第一存储空间对应的内存旁路标识为第一内存旁路标识时,处理器才会将第一存储空间的关联数据复制到缓存中,从而避免了频繁地从第一存储介质中复制数据到缓存,降低了第一存储介质的内存带宽的消耗。
在另一种可能的实现方式中,操作系统还能基于预测的应用程序对第一存储空间的访问需求,在对应的旁路标识字段添加内存旁路标识。例如,图8所示的本申请提供的另一种数据处理方法的流程图,该方法应用于电子设备,其中,该电子设备包括第一存储介质和第二存储介质,该第一存储介质为该电子设备的内存,该第二存储介质为该内存的缓存。如图8所示,该方法包括下述步骤801至步骤807。
步骤801、电子设备中的操作系统在第一存储介质的页表中的页表项设置旁路标识字段。
在一种可能的实现方式中,电子设备中的操作系统开始运行时,在第一存储介质的页表中的页表项设置旁路标识字段以及触发处理器在TLB中的TLB表项设置旁路标识字段。
或者,如图9所示的本申请提供的另一种设置内存旁路属性的示意图,操作系统(如操作系统的内核中的内存管理模块)基于预测网络,在第一存储介质的页表中的页表项设置旁路标识字段,以在操作系统中新增内存旁路属性。之后,处理器(如处理器的内核(core))还从操作系统的页表同步旁路标识字段到TLB的TLB选项,以在处理器中新增内存旁路属性。
其中,该预测网络用于预测应用程序对第一存储介质的各个存储空间的访问需求。该预测网络为人工智能(artificial intelligent,AI)模型,AI模型包括机器学习模型、深度学习模型或强化学习模型等,例如,该预测网络为卷积神经网络或决策树等。
如图3所示,服务器完成预测网络的训练,使得该预测网络具有预测应用程序对第一存储介质的各个存储空间的访问需求的能力,之后,电子设备从该服务器获取该预测网络。或者,电子设备完成预测网络的训练,从而获取到训练完成的预测网络。其中,该服务器为本地服务器或者云服务器,在此,本申请实施例对该服务器的类型不做限定。
再以图3和图9为例,当电子设备获取到该预测网络后,触发操作系统(如操作系统中的内存管理模块)为第一存储介质的页表中的页表项设置旁路标识字段,从而实现在页表中新增内存旁路属性,另外,处理器新增内存旁路属性(可参考前文相关介绍)。
对于这种实现方式,无须用户对应用程序的代码进行修改,且无须操作系统提供第一API,只要能够获取到预测网络,能够为第一存储介质的页表中的页表项设置旁路标识字段,操作简单。
另外,本步骤801为可选步骤,在一些实施例中,若该页表中已经设置有旁路标识字段,则操作系统无须执行本步骤801。且本步骤801执行一次即可无须多次执行。
步骤802、操作系统获取第一存储介质和第二存储介质中至少一个存储介质的数据传输属性,该数据传输属性用于指示存储介质对传输数据的效率的影响。
其中,该数据传输属性包括该处理器的内存瓶颈(Mem bound)、该处理器的数据读写延时、该第一存储介质的读带宽、该第一存储介质的写带宽、该第二存储介质的读带宽、该第二存储介质的写带宽以及该第二存储介质的回写比例中的至少一项。
该内存瓶颈为该处理器与各级缓存、内存之间的内存带宽。该数据读写时延为该处理器在各级缓存以及内存读写数据时的时延(如平均时延)。该第一存储介质的读带宽为处理器在第一存储介质读取数据时所占用的带宽。该第一存储介质的写带宽为处理器在第一存储介质写入数据时所占用带宽。该第二存储介质的读带宽为处理器在第二存储介质读取数据时所占用的带宽。该第二存储介质的写带宽为处理器在第二存储介质写入数据时所占用带宽。该第二存储介质的回写比例为第二存储介质的淘汰数据中回写至第一存储介质的数据占比。
当处理器运行操作系统时,每间隔第二时间段,采集该至少一种存储介质的数据传输属性,从而周期性的获取到该至少一种存储介质的数据传输属性,降低占用处理器资源。第二时间段的时长可根据具体实施场景进行设置,在此,本申请实施例对第二时间段的时长不做限定。
例如,每经过第二时间段,操作系统对该第二时间段中该处理器的内存瓶颈、该处理器的数据读写延时、该第一存储介质的读带宽、该第一存储介质的写带宽、该第二存储介质的读带宽、该第二存储介质的写带宽以及该第二存储介质的回写比例中的至少一项进行采样,得到该数据传输属性。
步骤803、操作系统基于第一存储介质和第二存储介质中至少一个存储介质的数据传输属性,预测该应用程序对该第一存储空间的访问需求。
在一种可能的实现方式中,操作系统将该数据传输属性输入预测网络,通过该预测网络,基于输入的该数据传输属性,预测该应用程序对该第一存储空间的访问需求。
以图10为例,图10是本申请提供的一种预测应用程序对存储空间的访问需求的示意图,在操作系统运行时,操作系统基于采样的方式,获取第一存储介质和第二存储介质中至少一个存储介质的数据传输属性:处理器的内存瓶颈以及数据读写时延;第二存储介质的读带宽、写带宽以及回写比例;第一存储介质的读带宽以及写带宽。操作系统将该数据传输属性输入预测网络,该预测网络基于输入的该数据传输属性,预测第一应用程序对第一存储介质中至少一个存储空间的访问需求,输出至少一个预测结果。其中,该至少一个预测结果与该至少一个存储空间一一对应,该预测结果用于指示预测的应用程序对单个存储空间的访问需求。该单个存储空间为第一存储介质中的页框。第一存储空间所属页框对应的预测结果也即是预测的应用程序对该第一存储空间的访问需求。
其中,预测的应用程序对单个存储空间(例如单个页)的访问需求有两种可能的情况分别为:在当前时间之后的第一时间段内应用程序需要访问该存储空间的次数小于目标次数;第一时间段内应用程序至少需要访问目标次数的该存储空间。为了便于描述,将这两种情况分别称为应用程序对该存储空间不具有访问需求,应用程序对该存储空间具有访问需求。
再以图4和图9为例,对上述步骤802和803作如下介绍,操作系统(如操作系统中的特征收集模块)每间隔第二时间段,收集一次该数据传输属性,将收集到数据传输属性输入预测网络,由预测网络基于输入的该数据传输属性,预测第一应用程序对第一存储介质中至少一个存储空间的访问需求。
步骤804、操作系统根据预测出的访问需求,为该第一存储空间设置该内存旁路标识。
在一种可能的实现方式中,操作系统根据预测出的应用程序对第一存储空间的访问需求,按照第一存储空间的物理地址,查询第一存储空间对应的页表项,然后在页表项中添加第一存储空间对应的内存旁路标识。
例如,若预测网络是以页框为单位预测的应用程序对页框的访问需求,预测网络输出的至少一个预测结果对应至少一个页框的页框号,对于任一预测结果对应的页框号,操作系统在页表(或TLB)中查询包括该页框号的页表项。
以第一存储空间为第一存储介质中的任一页框为例,该第一存储空间的物理地址为该任一页框的页框号,操作系统在页表(或TLB)中查询包括该页框号的页表项。之后,若第一存储空间所属页框对应的预测结果指示应用程序对对应的存储空间具有访问需求,则该操作系统,在查询到的页表项中添加第一内存旁路标识。若该预测结果指示应用程序对应的存储空间不具有访问需求,则该操作系统在查询到的该页表项中添加第二内存旁路标识。
步骤805、处理器获取应用程序的数据处理请求,该数据处理请求用于指示处理器对第一存储介质中第一存储空间的关联数据进行处理。
其中,本步骤805与步骤303同理,在此,本申请实施例对本步骤805不再赘述。
步骤806、处理器根据该数据处理请求,获取该第一存储空间对应的内存旁路标识,该内存旁路标识用于指示根据该应用程序对该第一存储空间的访问需求设置的使用该第二存储介质的存储方式。
其中,本步骤806与步骤304同理,在此,本申请实施例对本步骤806不再赘述。
步骤807、处理器根据该内存旁路标识执行该关联数据的处理。
其中,本步骤807与步骤305同理,在此,本申请实施例对本步骤807不再赘述。
本申请实施例提供的方法,通过在接收到应用程序对内存中第一存储空间的数据处理请求的情况下,获取第一存储空间对应的内存旁路标识,由于内存旁路标识用于指示根据应用程序对第一存储空间的访问需求设置的使用缓存的存储方式,在根据获取到的内存旁路标识执行第一存储空间的关联数据的处理时,能够根据应用程序对第一存储空间的访问需求,来确定关联数据使用缓存的存储方式,从而实现基于应用程序的访问需求来控制缓存行为,提升缓存命中率。另外,通过至少一个存储介质当前的数据传输属性,预测应用程序对第一存储空间的访问需求,避免在应用程序中记录应用程序对第一存储空间的访问需求,且还能满足应用程序对内存的存储空间的实时性的访问需求,从而通过预测应用程序对第一存储空间的访问需求所在设置的内存旁路标识,能够实时控制缓存行为。
上述步骤302和804,都是操作系统根据应用程序对第一存储空间的访问需求,为第一存储空间设置内存旁路标识过程,使得处理器通过设置的第一存储介质中各个存储空间对应的内存旁路标识,能够感知到应用程序的访问内存特征,从而克服了处理器无法感知应用程序的访问内存特征的问题,以便处理器在访问内存中的存储空间时,能够根据内存旁路标识确定是否将该存储空间中的数据复制到缓存,从而实现了基于应用程序的访问需求控制缓存行为,便于之后处理器能够在缓存中获取应用程序所需的数据,提升了缓存命中率。
另外,本申请为了体现电子设备内的交互过程,步骤301是以应用程序为执行主体,步骤302、步骤801至步骤804是以操作系统为执行主体介绍的,应理解,这些步骤应该是由硬件(如处理器)运行应用程序或操作系统而实现的。
上述方法实施例,是以旁路标识字段用于存储单个缓存的内存旁路标识为例说明的,在另一种可能的实现方式中,旁路标识字段包括多个指示位,该多个指示位可能是页表项中的保留比特位,也可能是页表项扩展的比特位。多个指示位与该第一存储介质的多个层级的缓存(即多个第二存储介质)一一对应,每个指示位用于存储对应缓存的内存旁路标识。以表3所示的页表为例,旁路标识字段有M个指示位,且M指示位与层级L1-LM的M个缓存一一对应,其中,M为正整数。
表3
此时,内存旁路标识指示根据应用程序对第一存储介质中存储空间的访问需求设置的使用对应缓存的存储方式。此时,第一存储介质为电子设备的内存或缓存,仍以图2为例,此时,M=4,第一存储介质为内存,层级L1-L4的缓存分别对应旁路标识字段的4个标识位,或者第一存储介质为层级L1的缓存,而第二存储介质为层级L2的缓存。可以理解的是,第二存储介质为第一存储介质的缓存。
对于这种情况,处理器在查询第一存储介质对应的内存旁路标识时可能查询到多个内存旁路标识,在这种情况下,对步骤305进行如下描述:
对于该多个内存旁路标识中的任一内存旁路标识,在旁路标识字段中该内存旁路标识所在的指示位对应的缓存为第二存储介质。
在得到待访问的内存中某一存储空间的物理地址后,处理器基于该物理地址,在第二存储介质中查询包括第一存储空间中的数据的缓存行,若查询到第二存储介质中存在该缓存行,则处理器基于该数据处理请求,对该缓存行中与该第一存储空间对应的缓存空间进行访问。若第二存储介质中不存在包括与该第一存储空间对应的缓存行,且第一存储介质为缓存,则处理器基于该物理地址,在第一存储介质中查询包括该第一存储空间中的数据的缓存行,若查询到第一存储介质中存在该缓存行,则处理器基于该数据处理请求,对第一存储介质中该缓存行内与该第一存储空间对应的进行访问,若任一内存旁路标识为第一内存旁路标识,则处理器将该缓存行中该第一存储空间中的数据复制到第二存储介质,若任一内存旁路标识为第二内存旁路标识,则处理器不执行将该缓存行中该第一存储空间中的数据复制到第二存储介质的步骤。若查询到第一存储介质中不存在该缓存行,该处理器基于该物理地址,在该第一存储介质的下一层级缓存中继续查询该第一存储空间中的数据,直到层级小于第一存储介质的缓存或者内存中,查询存储有该第一存储空间中的数据的目标存储空间,处理器基于该数据处理请求,对该目标存储空间进行访问。若任一内存旁路标识为第一内存旁路标识,则处理器将该目标存储空间的数据复制到第二存储介质以及层级小于第二存储介质的缓存。若任一内存旁路标识为第二内存旁路标识,则处理器不执行将该目标存储空间的数据复制到第二存储介质以及层级小于第二存储介质缓存的步骤。
以上介绍了本申请提供的数据处理方法,接下来,结合附图进一步介绍下本申请提供的装置、芯片和电子设备。应理解,以下介绍的装置、芯片和电子设备可以实现上述任一方法中电子设备或电子设备的一部分的任意功能。
参见图11,本申请提供了一种数据处理装置的结构示意图,图11所示的装置1100可以为前面各个实施例电子设备或电子设备的部分,用于执行电子设备所执行的数据处理方法,装置1100包括第一存储介质1101、第二存储介质1102、第一获取单元1103、第二获取单元1104以及执行单元1105。
第一获取单元1103,用于获取应用程序的数据处理请求,所述数据处理请求用于指示对所述第一存储介质1101中第一存储空间的关联数据进行处理,其中,所述第一存储介质1101为所述电子设备的内存,所述第二存储介质1102为所述内存的缓存;
第二获取单元1104,用于根据所述数据处理请求,获取所述第一存储空间对应的内存旁路标识,所述内存旁路标识用于指示根据所述应用程序对所述第一存储空间的访问需求设置的使用所述第二存储介质1102的存储方式;
执行单元1105,用于根据所述内存旁路标识执行所述关联数据的处理。
应理解的是,本申请实施例的装置1100可以通过CPU实现,也可以通过专用集成电路(application-specific integrated circuit,ASIC)实现,也可以通过可编程逻辑器件(programmable logic device,PLD)实现,上述PLD可以是复杂程序逻辑器件(complexprogrammable logical device,CPLD),现场可编程门阵列(field-programmable gatearray,FPGA),通用阵列逻辑(generic array logic,GAL)、数据处理单元(dataprocessing unit,DPU)、片上系统(system on chip,SoC)或其任意组合。装置1100也可以通过软件实现图3至图10所示的数据处理方法,在通过软件实现时,装置1100及其各个模块也可以为软件模块。
在一种可能的实现方式中,所述第二存储介质1102为高带宽内存HBM,所述HBM的使用方式为缓存Cache模式,所述Cache模式用于指示所述HBM用于作为所述内存的缓存使用。
在一种可能的实现方式中,所述装置1100还包括:
调用单元,用于调用操作系统中的第一应用程序编程接口API,在所述第一存储介质1101的页表的页表项设置旁路标识字段,所述旁路标识字段用于存储所述内存旁路标识;
添加单元,用于根据所述应用程序中记录的所述访问需求,在所述第一存储空间对应的页表项中的所述旁路标识字段添加所述内存旁路标识。
在一种可能的实现方式中,所述调用单元用于:
在所述应用程序向所述操作系统申请分配所述第一存储介质1101中的存储空间时或者申请分配所述存储空间完成后,调用所述第一API,在所述页表的页表项设置所述旁路标识字段。
在一种可能的实现方式中,所述调用单元用于:
在通过编译器编译所述应用程序的过程中,通过所述编译器提供的第二API或导语,调用所述第一API,在所述页表的页表项设置所述旁路标识字段。
在一种可能的实现方式中,所述添加单元用于:
根据所述应用程序中记录的所述访问需求,按照所述第一存储空间的虚拟地址,查询所述第一存储空间对应的页表项;
在所述页表项中添加所述内存旁路标识。
在一种可能的实现方式中,所述装置1100还包括:
预测单元,用于基于所述第一存储介质1101和所述第二存储介质1102中至少一个存储介质的数据传输属性,预测所述应用程序对所述第一存储空间的访问需求,所述数据传输属性用于指示所述存储介质对传输数据的效率的影响;
设置单元,用于根据预测出的所述访问需求,为所述第一存储空间设置所述内存旁路标识。
在一种可能的实现方式中,所述预测单元用于:
将所述数据传输属性输入预测网络,通过所述预测网络,基于输入的所述数据传输属性,预测所述应用程序对所述第一存储空间的访问需求。
在一种可能的实现方式中,所述设置单元用于:
根据预测出的所述访问需求,按照所述第一存储空间的物理地址,查询所述第一存储空间对应的页表项;
在所述页表项中添加所述内存旁路标识。
在一种可能的实现方式中,所述数据处理请求包括所述第一存储空间的虚拟地址,所述第二获取单元1104用于:
根据所述虚拟地址,查询所述第一存储空间对应的页表项;
在所述页表项中获取所述内存旁路标识。
在一种可能的实现方式中,所述第二获取单元1104还用于:
根据所述虚拟地址,在所述第一存储介质1101的页表中,查询所述第一存储空间对应的页表项;或者,
根据所述虚拟地址,在处理器的转译后备缓冲器TLB中,查询所述第一存储空间对应的页表项。
在一种可能的实现方式中,所述执行单元1105用于:
若所述内存旁路标识指示使用所述第二存储介质1102存储所述第一存储介质1101中的数据,对所述第一存储空间的关联数据进行处理,将所述第一存储空间中的所述关联数据复制到所述第二存储介质1102;
若所述内存旁路标识指示不使用所述第二存储介质1102存储所述第一存储介质1101中的数据,对所述第一存储空间的关联数据进行处理,不执行所述将所述第一存储空间中的所述关联数据复制到所述第二存储介质1102的步骤。
应理解,装置1100对应于上述方法实施例中的电子设备,装置1100中的各模块和上述其他操作和/或功能分别为了实现方法实施例中的电子设备所实施的各种步骤和方法,具体细节可参见上述方法实施例,为了简洁,在此不再赘述。
应理解,装置1100在进行数据处理时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置1100的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的装置1100与上述方法实施例属于同一构思,其具体实现过程详见上述方法实施例,这里不再赘述。
应理解,装置1100可以相当于数据处理系统100(或200),或者相当于数据处理系统100(或200)中的执行部件。
图12是本申请提供的一种芯片的结构示意图,如图12所示,芯片1200包括处理器1201和接口电路1202,其中,接口电路1202,用于接收指令并传输至处理器1201。处理器1201,例如可以是图11示出的装置1100的一种具体实现形式,可以用于执行上述应用于电子设备的数据处理方法。处理器1201与存储器1203耦合,存储器1203用于存储程序代码,当该程序代码被处理器1201执行时,使得处理器1201、接口电路1202以及存储器1203所组成的芯片系统实现上述图3至图10中任一方法实施例中的方法的操作步骤。以上述的图7为例,处理器1201从存储器1203读取编译器的程序代码,通过运行编译器的程序代码,对应用程序进行编译,并调用编译器的第二API或导语在页表中增加旁路标识字段,后续处理器1201在运行应用程序的过程中,基于页表中增加旁路标识字段,实现上述的数据处理方法。
可选地,该芯片系统中的处理器1201有至少一个,应理解,在本申请实施例中,处理器1201可以是CPU或其他通用处理器,处理器1201还可以是一个或多个用于实现本申请方案的集成电路,例如,数字信号处理器(digital signal processing,DSP)、ASIC、PLD、FPGA或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者是任何常规的处理器等。
可选地,该芯片系统中的存储器1203也可以为一个或多个。存储器1203可以与处理器1201集成在一起,也可以和处理器1201分离设置,本申请并不限定。示例性的,存储器1203可以与处理器1201集成在同一块芯片上,如图12所示,存储器1203也可以和处理器1201分别设置在不同的芯片上,本申请对存储器1203的类型以及存储器1203与处理器1201的设置方式不作具体限定。
其中,存储器1203可以包括只读存储器和随机存取存储器,并向处理器1201提供指令和数据。存储器1203还可以包括非易失性随机存取存储器。例如,存储器1203还可以存储设备类型的信息。存储器1203还可以是易失性存储器,或可包括易失性和非易失性存储器两者。
其中,非易失性存储器可以是只读存储器(read-only memory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(random access memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data date SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(direct rambus RAM,DR RAM)。
示例性的,该芯片系统可以是FPGA,可以是ASIC,还可以是SoC,还可以是CPU,还可以是网络处理器(network processor,NP),还可以是数字信号处理电路(digital signalprocessor,DSP),还可以是微控制器(micro controller unit,MCU),还可以是PLD)或其他集成芯片。
图13是本申请提供的一种电子设备的结构示意图,如图所示,电子设备1300包括处理器1301、存储器1302、通信接口1303、总线1304和存储设备1305。其中,处理器1301、存储器1302、通信接口1303、存储设备1305通过总线1304进行通信,也可以通过无线传输等其他手段实现通信。存储器1302用于存储指令,处理器1301用于执行该存储器1302存储的指令。该存储器1302存储程序代码,且处理器1301可以调用存储器1302中存储的程序代码执行上述数据处理方法(如上述的图3至图10)所提供的步骤。
示例性地,处理器1301可以包括一个或多个CPU,如图13中所示的CPU0和CPU1。
示例性地,电子设备1300可以包括多个处理器,如图13中所示的处理器1301和处理器1306。这些处理器中的每一个可以是一个单核处理器(single-CPU),也可以是一个多核处理器(multi-CPU)。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(如计算机程序指令)的处理核。
应理解,在本申请中,处理器1301和图12中的处理器1201的实现方式类似,存储器1302和图12中的存储器1203的实现方式类似,在此,本申请实施例对处理器1301和存储器1302的实现方式不做赘述。
通信接口1303使用任何收发器一类的装置,用于与其它设备或通信网络通信。通信接口1304包括有线通信接口,还可以包括无线通信接口。其中,有线通信接口例如可以为以太网接口。以太网接口可以是光接口,电接口或其组合。无线通信接口可以为无线局域网(wireless local area networks,WLAN)接口,蜂窝网络通信接口或其组合等。
总线1304用于在上述组件之间传送信息,总线1304除包括通信总线之外,还可以包括电源总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为总线1304。其中,通信总线可以分为地址总线、数据总线、控制总线等。示例性地,通信总线可以是快捷外围部件互连标准(Peripheral Component Interconnect Express,PCIe)总线、扩展工业标准结构(extended industry standard architecture,EISA)总线、统一总线(unified bus,Ubus或UB)、计算机快速链接(compute express link,CXL)或缓存一致互联协议(cache coherent interconnect for accelerators,CCIX)等。
存储设备1305可以是ROM或可存储静态信息和指令的其它类型的静态存储设备,也可以是RAM或者可存储信息和指令的其它类型的动态存储设备,也可以是EEPROM、只读光盘(compact disc read-only memory,CD-ROM)或其它光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其它磁存储设备,或者是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由处理器1301存取的任何其它介质,该存储设备包括至少一个存储器1302,但不限于此。存储设备1305可以是独立存在,并通过总线1304与处理器1301相连接。存储设备1305也可以和处理器1301集成在一起。
示例性地,存储器1302和存储设备1305可能是电子设备1300中的第一存储介质或第二存储介质,存储器1302和存储设备1305中的至少一个可能存储有用于实现本申请的数据处理方法的程序代码,处理器1301通过读取并运行该程序代码,使得电子设备1300实现本申请的数据处理方法。
在一些实施例中,电子设备1300还可以包括输出设备1307和输入设备1308。输出设备1307和处理器1301通信,可以以多种方式来显示信息。例如,输出设备1307可以是液晶显示器(liquid crystal display,LCD)、发光二级管(light emitting diode,LED)显示设备、阴极射线管(cathode ray tube,CRT)显示设备或投影仪(projector)等。输入设备1308和处理器1301通信,可以以多种方式接收用户的输入。例如,输入设备1308可以是鼠标、键盘、触摸屏设备或传感设备等。
应理解,根据本申请用于实现数据处理的装置1100可对应于本申请实施例中的电子设备1300,并可以对应于执行根据本申请实施例的数据处理方法中的相应主体,并且电子设备1300中的各个模块的上述和其它操作和/或功能分别为了实现图3至图10中的各个方法的相应流程,为了简洁,在此不再赘述。
本申请还提供了一种计算机可读存储介质,例如包括程序代码的存储器,上述程序代码可由电子设备(或芯片)中的处理器执行以完成上述实施例中的数据处理方法。该计算机可读存储介质的实现方式可参考与图12中的存储器1203。
本申请还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括程序代码,该程序代码存储在计算机可读存储介质中,电子设备的处理器从计算机可读存储介质读取该程序代码,处理器执行该程序代码,使得处理器执行上述数据处理方法。
另外,本申请还提供一种装置,这个装置具体可以是芯片,组件或模块,该装置可包括相连的处理器和存储器;其中,存储器用于存储计算机执行指令,当装置运行时,处理器可执行存储器存储的计算机执行指令,以使芯片执行上述各方法实施例中数据处理方法。
其中,本申请提供的装置、设备、计算机可读存储介质、计算机程序产品或芯片均用于执行上文所提供的对应的方法,因此,其所能达到的有益效果可参考上文所提供的对应的方法中的有益效果,此处不再赘述。
上述实施例,可以全部或部分地通过软件、硬件、固件或其他任意组合来实现。当使用软件实现时,上述实施例可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载或执行所述计算机程序指令时,全部或部分地产生按照本发明本申请实施例所述的流程或功能。所述计算机可以为通用计算机、专用计算机、计算机网络或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集合的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如,DVD)或者半导体介质。半导体介质可以是固态硬盘(solid state disk,SSD)。
以上所述,仅为本申请的具体实施方式。熟悉本技术领域的技术人员根据本申请提供的具体实施方式,可想到变化或替换,都应涵盖在本申请的保护范围之内。
Claims (15)
1.一种数据处理方法,其特征在于,所述方法适用于包括第一存储介质和第二存储介质的电子设备,所述方法包括:
获取应用程序的数据处理请求,所述数据处理请求用于指示对所述第一存储介质中第一存储空间的关联数据进行处理,其中,所述第一存储介质为所述电子设备的内存,所述第二存储介质为所述内存的缓存;
根据所述数据处理请求,获取所述第一存储空间对应的内存旁路标识,所述内存旁路标识用于指示根据所述应用程序对所述第一存储空间的访问需求设置的使用所述第二存储介质的存储方式;
根据所述内存旁路标识执行所述关联数据的处理。
2.根据权利要求1所述的方法,其特征在于,所述第二存储介质为高带宽内存HBM,所述HBM的使用方式为缓存Cache模式,所述Cache模式用于指示所述HBM用于作为所述内存的缓存使用。
3.根据权利要求1或2所述的方法,其特征在于,所述根据所述数据处理请求,获取所述第一存储空间对应的内存旁路标识之前,所述方法还包括:
调用操作系统中的第一应用程序编程接口API,在所述第一存储介质的页表的页表项设置旁路标识字段,所述旁路标识字段用于存储所述内存旁路标识;
根据所述应用程序中记录的所述访问需求,在所述第一存储空间对应的页表项中的所述旁路标识字段添加所述内存旁路标识。
4.根据权利要求3所述的方法,其特征在于,所述调用操作系统中的第一应用程序编程接口API,在所述第一存储介质的页表的页表项设置旁路标识字段包括:
在所述应用程序向所述操作系统申请分配所述第一存储介质中的存储空间时或者申请分配所述存储空间完成后,调用所述第一API,在所述页表的页表项设置所述旁路标识字段。
5.根据权利要求3所述的方法,其特征在于,所述调用操作系统中的第一应用程序编程接口API,在所述第一存储介质的页表的页表项设置旁路标识字段包括:
在通过编译器编译所述应用程序的过程中,通过所述编译器提供的第二API或导语,调用所述第一API,在所述页表的页表项设置所述旁路标识字段。
6.根据权利要求3所述的方法,其特征在于,所述根据所述应用程序中记录的所述访问需求,在所述第一存储空间对应的页表项中的所述旁路标识字段添加所述内存旁路标识包括:
根据所述应用程序中记录的所述访问需求,按照所述第一存储空间的虚拟地址,查询所述第一存储空间对应的页表项;
在所述页表项中添加所述内存旁路标识。
7.根据权利要求1或2所述的方法,其特征在于,所述根据所述数据处理请求,获取所述第一存储空间对应的内存旁路标识之前,所述方法还包括:
基于所述第一存储介质和所述第二存储介质中至少一个存储介质的数据传输属性,预测所述应用程序对所述第一存储空间的访问需求,所述数据传输属性用于指示所述存储介质对传输数据的效率的影响;
根据预测出的所述访问需求,为所述第一存储空间设置所述内存旁路标识。
8.根据权利要求7所述的方法,其特征在于,所述基于所述第一存储介质和所述第二存储中至少一个存储介质的数据传输属性,预测所述应用程序对所述第一存储空间的访问需求包括:
将所述数据传输属性输入预测网络,通过所述预测网络,基于输入的所述数据传输属性,预测所述应用程序对所述第一存储空间的访问需求。
9.根据权利要求7所述的方法,其特征在于,所述根据预测出的所述访问需求,为所述第一存储空间设置所述内存旁路标识包括:
根据预测出的所述访问需求,按照所述第一存储空间的物理地址,查询所述第一存储空间对应的页表项;
在所述页表项中添加所述内存旁路标识。
10.根据权利要求1、2、4、5、6、8或9所述的方法,其特征在于,所述数据处理请求包括所述第一存储空间的虚拟地址,所述根据所述数据处理请求,获取所述第一存储空间对应的内存旁路标识包括:
根据所述虚拟地址,查询所述第一存储空间对应的页表项;
在所述页表项中获取所述内存旁路标识。
11.根据权利要求10所述的方法,其特征在于,所述根据所述虚拟地址,查询所述第一存储空间对应的页表项包括:
根据所述虚拟地址,在所述第一存储介质的页表中,查询所述第一存储空间对应的页表项;或者,
根据所述虚拟地址,在处理器的转译后备缓冲器TLB中,查询所述第一存储空间对应的页表项。
12.根据权利要求1、2、4、5、6、8、9或11所述的方法,其特征在于,所述根据所述内存旁路标识执行所述关联数据的处理包括:
若所述内存旁路标识指示使用所述第二存储介质存储所述第一存储介质中的数据,对所述第一存储空间的关联数据进行处理,将所述第一存储空间中的所述关联数据复制到所述第二存储介质;
若所述内存旁路标识指示不使用所述第二存储介质存储所述第一存储介质中的数据,对所述第一存储空间的关联数据进行处理,不执行所述将所述第一存储空间中的所述关联数据复制到所述第二存储介质的步骤。
13.一种数据处理装置,其特征在于,所述装置包括第一存储介质和第二存储介质,所述装置还包括:
第一获取单元,用于获取应用程序的数据处理请求,所述数据处理请求用于指示对所述第一存储介质中第一存储空间的关联数据进行处理,其中,所述第一存储介质为所述电子设备的内存,所述第二存储介质为所述内存的缓存;
第二获取单元,用于根据所述数据处理请求,获取所述第一存储空间对应的内存旁路标识,所述内存旁路标识用于指示根据所述应用程序对所述第一存储空间的访问需求设置的使用所述第二存储介质的存储方式;
执行单元,用于根据所述内存旁路标识执行所述关联数据的处理。
14.一种电子设备,其特征在于,所述电子设备包括处理器,所述处理器用于执行至少一条程序代码,使得所述电子设备执行如权利要求1至权利要求12中任一项所述的数据处理方法。
15.一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一条程序代码,所述至少一条程序代码由处理器读取以使电子设备执行如权利要求1至权利要求12中任一项所述的数据处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2023/100447 WO2023241655A1 (zh) | 2022-06-15 | 2023-06-15 | 数据处理方法、装置、电子设备以及计算机可读存储介质 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210682111 | 2022-06-15 | ||
CN202210682111X | 2022-06-15 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117271107A true CN117271107A (zh) | 2023-12-22 |
Family
ID=89211087
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211060725.0A Pending CN117271107A (zh) | 2022-06-15 | 2022-08-31 | 数据处理方法、装置、电子设备以及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117271107A (zh) |
-
2022
- 2022-08-31 CN CN202211060725.0A patent/CN117271107A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10289555B1 (en) | Memory read-ahead using learned memory access patterns | |
US10552337B2 (en) | Memory management and device | |
US8250254B2 (en) | Offloading input/output (I/O) virtualization operations to a processor | |
CN105740164B (zh) | 支持缓存一致性的多核处理器、读写方法、装置及设备 | |
US8453015B2 (en) | Memory allocation for crash dump | |
US8095736B2 (en) | Methods and systems for dynamic cache partitioning for distributed applications operating on multiprocessor architectures | |
US7805582B2 (en) | Method of managing memory in multiprocessor system on chip | |
EP2472412B1 (en) | Explicitly regioned memory organization in a network element | |
US8185692B2 (en) | Unified cache structure that facilitates accessing translation table entries | |
KR20120068454A (ko) | 원격 페이지 폴트 처리 장치 및 그 방법 | |
JP2019096309A (ja) | メンテナンス動作の実行 | |
CN115292214A (zh) | 页表预测方法、存储访问操作方法、电子装置和电子设备 | |
CN114816666B (zh) | 虚拟机管理器的配置方法、tlb管理方法及嵌入式实时操作系统 | |
KR102326280B1 (ko) | 데이터 처리 방법, 장치, 기기 및 매체 | |
US11403213B2 (en) | Reducing fragmentation of computer memory | |
CN113138851B (zh) | 一种数据管理方法、相关装置及系统 | |
CN116225693A (zh) | 元数据管理方法、装置、计算机设备及存储介质 | |
US20220237126A1 (en) | Page table manager | |
CN117271107A (zh) | 数据处理方法、装置、电子设备以及计算机可读存储介质 | |
WO2023241655A1 (zh) | 数据处理方法、装置、电子设备以及计算机可读存储介质 | |
CN115729438A (zh) | 数据访问方法、装置及存储介质 | |
CN116795736A (zh) | 数据预读取方法、装置、电子设备和存储介质 | |
CN112748854B (zh) | 对快速存储设备的优化访问 | |
CN113448897B (zh) | 适用于纯用户态远端直接内存访问的优化方法 | |
WO2024061344A1 (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 |