CN114676071B - 数据处理方法、装置、电子设备及存储介质 - Google Patents
数据处理方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN114676071B CN114676071B CN202210535954.7A CN202210535954A CN114676071B CN 114676071 B CN114676071 B CN 114676071B CN 202210535954 A CN202210535954 A CN 202210535954A CN 114676071 B CN114676071 B CN 114676071B
- Authority
- CN
- China
- Prior art keywords
- page table
- cache
- page
- entry
- matching
- 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
- 238000003672 processing method Methods 0.000 title abstract description 23
- 238000000034 method Methods 0.000 claims abstract description 21
- 230000004044 response Effects 0.000 claims description 55
- 230000015654 memory Effects 0.000 claims description 14
- 238000004422 calculation algorithm Methods 0.000 claims description 12
- 238000012545 processing Methods 0.000 claims description 12
- 238000013519 translation Methods 0.000 claims description 5
- 230000008569 process Effects 0.000 abstract description 3
- 238000010586 diagram Methods 0.000 description 9
- 238000005516 engineering process Methods 0.000 description 8
- 238000004891 communication Methods 0.000 description 4
- 230000006872 improvement Effects 0.000 description 3
- 238000004590 computer program Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- COCAUCFPFHUGAA-MGNBDDOMSA-N n-[3-[(1s,7s)-5-amino-4-thia-6-azabicyclo[5.1.0]oct-5-en-7-yl]-4-fluorophenyl]-5-chloropyridine-2-carboxamide Chemical compound C=1C=C(F)C([C@@]23N=C(SCC[C@@H]2C3)N)=CC=1NC(=O)C1=CC=C(Cl)C=N1 COCAUCFPFHUGAA-MGNBDDOMSA-N 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- 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]
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本公开提供了一种数据处理方法、装置、电子设备及存储介质,包括:读取第一页表后,将所述第一页表与缓存中的至少一个页表进行匹配;若所述第一页表与所述至少一个页表中第二页表匹配成功,则将所述第一页表与所述第二页表合并;或者,若所述第一页表与所述至少一个页表均未匹配成功,则将所述第一页表存入所述缓存,以使所述第一页表与后续读取的页表进行匹配和/或合并;通过匹配的页表进行合并,使得一个页表可以对应多个软件,在软件切换的过程中,不需要频繁的进行回填、读取操作,降低访问延迟;此外,还可以将原本一个页表占用一个表项优化为多个页表占用一个表项,优化了TLB的存储空间。
Description
技术领域
本公开涉及计算机技术领域,尤其涉及一种数据处理方法、装置、电子设备及存储介质。
背景技术
在云计算和数据密集访问的应用场景下,会产生大量的数据访问,而大量的数据访问会伴随着大量的页表查找和页表回填,传统的结构中,转译后备缓冲区(TranslationLookaside Buffer,TLB)中的每个表项只会保存一个页表,由于TLB的容量是有限的,会使得页表的频换替换,从而增加数据访问的延迟。
发明内容
本公开提供了一种数据处理方法、装置、电子设备及存储介质,以至少解决现有技术中存在的以上技术问题。
根据本公开的第一方面,本公开提供了一种数据处理方法,包括:
读取第一页表后,将所述第一页表与缓存中的至少一个页表进行匹配;
若所述第一页表与所述至少一个页表中第二页表匹配成功,则将所述第一页表与所述第二页表合并;
或者,若所述第一页表与所述至少一个页表均未匹配成功,则将所述第一页表存入所述缓存,以使所述第一页表与后续读取的页表进行匹配和/或合并。
上述方案中,所述将所述第一页表与缓存中的至少一个页表进行匹配,包括:
响应于缓存中每一表项支持有限次合并,则基于初始页表确定起始合并范围和终止合并范围;
对所述第一页表中的预设项目与缓存中至少一个页表对应的项目进行匹配;和/或,确认所述第一页表中虚拟地址(Virtual Address,VA)和物理地址(Physical Address,PA)是否满足第一匹配条件;
其中,所述初始页表包括分配至所述缓存且没有进行过合并的页表。
上述方案中,所述若所述第一页表与所述至少一个页表中第二页表匹配成功,则将所述第一页表与所述第二页表合并,包括:
响应于所述第一页表中的预设项目与缓存中至少一个页表对应的项目匹配成功,且所述第一页表中VA和PA满足第一匹配条件,确认所述第一页表与所述至少一个页表中第二页表匹配成功,将所述第一页表与所述第二页表合并。
上述方案中,所述将所述第一页表与所述第二页表合并之后,所述方法还包括:
更新缓存中所述第二页表对应的第一指示向量;所述第一指示向量用于表征所述第二页表对应的表项所合并的页表的信息。
上述方案中,所述将所述第一页表与缓存中的至少一个页表进行匹配,包括:
响应于缓存中每一表项支持无限次合并,则确认缓存中的至少一个页表和所述第一页表的连续性;
响应于所述缓存中的至少一个页表和所述第一页表之间具备连续性,则将所述第一页表与缓存中的至少一个页表进行匹配。
上述方案中,所述确认缓存中的至少一个页表和所述第一页表的连续性,包括:
从软件获取所述至少一个页表和所述第一页表的属性信息;
基于所述属性信息,确认缓存中的至少一个页表和所述第一页表的连续性。
上述方案中,所述确认缓存中的至少一个页表和所述第一页表的连续性,包括:
基于第一计数器中记录的数据,确认缓存中的至少一个页表和所述第一页表的连续性;
其中,所述第一计数器中记录所述缓存中的至少一个页表和所述第一页表未合并的次数;所述未合并的次数小于或等于第一阈值,表征缓存中的至少一个页表和所述第一页表具备连续性。
上述方案中,所述将所述第一页表与缓存中的至少一个页表进行匹配,包括:
对所述第一页表中的预设项目与缓存中至少一个页表对应的项目进行匹配;以及,确认所述第一页表中VA和PA是否满足第二匹配条件。
上述方案中,所述第一页表与所述至少一个页表中第二页表匹配成功,包括:
响应于所述第一页表中的预设项目与缓存中至少一个页表对应的项目匹配成功,且所述第一页表中VA和PA满足第二匹配条件,确认所述第一页表与所述至少一个页表中第二页表匹配成功;
其中,所述第二匹配条件包括所述第一页表中VA和PA的最后一位均与所述第二页表中VA和PA的最后一位不同。
上述方案中,所述方法还包括:
将所述缓存中存储的第三页表存储至转译后备缓冲区TLB的TLB表项;
其中,所述第三页表包括第一页表、第一页表和第二页表合并后的页表,或所述缓存中的其他页表。
上述方案中,所述将所述缓存中存储的第三页表存储至转译后备缓冲区TLB的TLB表项,包括以下之一:
响应于所述缓存中包括空闲表项,且所述第三页表未进行合并,则将所述第三页表存储至所述TLB表项中,并在所述缓存区生成新的表项;
响应于所述缓存中不包括空闲表项,且所述第三页表未进行合并,则通过替换算法确认所述缓存中进行过合并的页表,将所述进行过合并的页表存储至所述TLB表项中;
响应于第三页表进行过合并,则通过替换算法将所述第三页表存储至所述TLB表项中。
根据本公开的第二方面,提供了一种数据处理装置,包括:
匹配单元,用于读取第一页表后,将所述第一页表与缓存中的至少一个页表进行匹配;
合并单元,用于若所述第一页表与所述至少一个页表中第二页表匹配成功,则将所述第一页表与所述第二页表合并;
存储单元,用于若所述第一页表与所述至少一个页表均未匹配成功,则将所述第一页表存入所述缓存,以使所述第一页表与后续读取的页表进行匹配和/或合并。
根据本公开的第三方面,提供了一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行本公开所述的方法。
根据本公开的第四方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行本公开所述的方法。
本公开的数据处理方法,通过读取第一页表后,将所述第一页表与缓存中的至少一个页表进行匹配;若所述第一页表与所述至少一个页表中第二页表匹配成功,则将所述第一页表与所述第二页表合并;或者,若所述第一页表与所述至少一个页表均未匹配成功,则将所述第一页表存入所述缓存,以使所述第一页表与后续读取的页表进行匹配和/或合并。如此,通过匹配的页表进行合并,可以使得一个页表可以对应多个软件,在软件切换的过程中,不需要频繁的进行回填、读取操作,降低访问延迟;此外,还可以将原本一个页表占用一个表项优化为多个页表占用一个表项,优化了TLB的存储空间。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
通过参考附图阅读下文的详细描述,本公开示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本公开的若干实施方式,其中:
在附图中,相同或对应的标号表示相同或对应的部分。
图1示出了相关技术中TLB的结构示意图;
图2示出了本公开实施例提供的数据处理方法的一种可选流程示意图;
图3示出了本公开实施例提供的数据处理方法的可选示意图;
图4示出了本公开实施例提供的数据处理方法的另一种可选流程示意图;
图5示出了本公开实施例提供的数据处理方法的再一种可选流程示意图;
图6示出了本公开实施例提供的数据处理装置的一种可选结构示意图;
图7示出了本公开实施例一种电子设备的组成结构示意图。
具体实施方式
为使本公开的目的、特征、优点能够更加的明显和易懂,下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而非全部实施例。基于本公开中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
图1示出了相关技术中TLB的结构示意图。
在云计算和数据密集访问的应用场景下,会产生大量的数据访问,而大量的数据访问会伴随着大量的页表查找和页表回填,传统的结构中,如图1所示,TLB中的每个表项只会保存一个页表,例如读取页表1,回填到TLB时,页表1占用表项1;读取页表2,回填到TLB时,页表2占用表项2;由于TLB的容量是有限的,一方面会导致页表占用的表项较多,另一方面在不同软件之间切换的过程中,需要回填上一个软件对应的页表,读取下一个软件对应的页表,增加了访问延迟。
针对相关技术中读取页表、回填页表中存在的问题,本公开提供一种数据处理方法,可以将连续的页表进行合并然后存储至(回填)TLB中,实现多个页表占用TLB中的一项,大大提高了TLB的利用率,从而缩短数据访问延迟。
图2示出了本公开实施例提供的数据处理方法的一种可选流程示意图,图3示出了本公开实施例提供的数据处理方法的可选示意图,将根据各个步骤进行说明。
步骤S101,读取第一页表后,将所述第一页表与缓存中的至少一个页表进行匹配。
在一些实施例中,数据处理装置(以下简称装置)读取第一页表后,将所述第一页表与缓存中的至少一个页表进行匹配。
具体实施时,缓存中存储至少一个表项,每一个表项中存储一个页表,所述每一个表项中存储的页表可以进行有限次合并或无限次合并,所述每一个表项中存储的页表可以是初始页表(未进行过合并的页表),也可以是进行过合并的页表。其中,所述有限次合并可以包括,所述表项中存储的页表可以合并X个页表;所述无限次合并可以包括,所述表项中存储的页表可以合并不限数量个页表;其中,X可以为8、16、32等8的倍数。
进一步,响应于缓存中每一表项(或表项中存储的页表)支持有限次合并,则基于初始页表确定起始合并范围和终止合并范围;对所述第一页表中的预设项目与缓存中至少一个页表对应的项目进行匹配;和/或,确认所述第一页表中VA和PA是否满足第一匹配条件。其中,所述初始页表可以包括存储至缓存,且没有进行过合并的页表,每一个表项的起始合并范围和终止合并范围均基于存储至该表项中的初始页表确定;所述第一匹配条件可以包括所述第一页表的VA对应的值属于第一合并范围,和/或,所述第一页表的PA对应的值属于第二合并范围。
例如,假设缓存中的每一个表项支持8个页表的合并,支持的VA范围为:0-7、8-15、16-23等,进入缓存的页表(初始页表)VA为5,则能与所述初始页表匹配的页表的VA的范围需要在0到7之间(即起始合并范围为0和终止合并范围为7);后续VA为10的初始页表进入缓存后,则开启缓存中一个新的表项,与其匹配的页表的VA的范围需要在8至15之间(即起始合并范围为8和终止合并范围为15)。
进一步,在一些可选实施例中,所述预设项目包括第一页表中除VA和PA以外的项目,以及VA和PA中除VA和PA标识连续部分以外的项目。
或者,响应于缓存中每一表项(或表项中存储的页表)支持无限次合并,则确认缓存中的至少一个页表和所述第一页表的连续性;响应于所述缓存中的至少一个页表和所述第一页表之间具备连续性,则将所述第一页表与缓存中的至少一个页表进行匹配。
具体实施时,所述装置可以从软件获取所述至少一个页表和所述第一页表的属性信息;基于所述属性信息,确认缓存中的至少一个页表和所述第一页表的连续性。或者,所述装置还可以基于第一计数器中记录的数据,确认缓存中的至少一个页表和所述第一页表的连续性;其中,所述第一计数器中记录所述缓存中的至少一个页表和所述第一页表未合并的次数;所述未合并的次数小于或等于第一阈值,表征缓存中的至少一个页表和所述第一页表具备连续性。其中,所述连续性可以用于体现页表与其他页表进行合并的次数,合并次数越多,则说明页表的连续性越强。
进一步,所述装置对所述第一页表中的预设项目与缓存中至少一个页表对应的项目进行匹配;以及,确认所述第一页表中VA和PA是否满足第二匹配条件。其中,所述第二匹配条件可以包括所述第一页表中VA和PA的最后一位均与所述第二页表中VA和PA的最后一位不同;具体的VA和PA是指位宽为Y位的二进制数(Y可为40/44/48等)。假如第一页表的VA为8000000,另一个页表的VA为8000001,说明第一页表的VA与另一个页表的VA是连续的。所述预设项目包括第一页表中除VA和PA以外的项目,以及VA和PA中除VA和PA标识连续部分以外的项目。
步骤S102,若所述第一页表与所述至少一个页表中第二页表匹配成功,则将所述第一页表与所述第二页表合并。
在一些实施例中,若所述第一页表与所述至少一个页表中第二页表匹配成功,则所述装置将所述第一页表与所述第二页表合并。
具体实施时,所述装置响应于所述缓存中每一表项(或表项中存储的页表)支持有限次合并,响应于所述第一页表中的预设项目与缓存中至少一个页表对应的项目匹配成功,且所述第一页表中VA和PA满足第一匹配条件,确认所述第一页表与所述至少一个页表中第二页表匹配成功,将所述第一页表与所述第二页表合并。
在一些可选实施例中,所述装置还可以更新缓存中所述第二页表对应的第一指示向量;所述第一指示向量用于表征所述第二页表对应的表项所合并的页表的信息;每一个表项均对应一个指示向量,所述指示向量用于表征相应的表项所合并的页表的信息;每一次成功合并页表之后,均更新对应的指示向量。
或者,具体实施时,所述装置响应于缓存中每一表项(或表项中存储的页表)支持无限次合并,响应于所述第一页表中的预设项目与缓存中至少一个页表对应的项目匹配成功,且所述第一页表中VA和PA满足第二匹配条件,确认所述第一页表与所述至少一个页表中第二页表匹配成功。
步骤S103,若所述第一页表与所述至少一个页表均未匹配成功,则将所述第一页表存入所述缓存。
在一些实施例中,若所述第一页表与所述至少一个页表均未匹配成功,则所述装置将所述第一页表存入所述缓存中的任一个空闲表项中,以使所述第一页表与后续读取的页表进行匹配和/或合并。
具体实施时,所述装置响应于所述缓存中每一表项(或表项中存储的页表)支持有限次合并,响应于所述第一页表中的预设项目未与缓存中至少一个页表对应的项目匹配成功,或者,所述第一页表中VA和PA不满足第一匹配条件,确认所述第一页表与所述至少一个页表中第二页表未匹配成功。
或者,具体实施时,所述装置响应于缓存中每一表项(或表项中存储的页表)支持无限次合并,响应于所述第一页表中的预设项目未与缓存中至少一个页表对应的项目匹配成功,或者,所述第一页表中VA和PA不满足第二匹配条件,确认所述第一页表与所述至少一个页表中第二页表未匹配成功。
在一些可选实施例中,响应于缓存中存储空间不足(或缓存中存储的表项满了,无法再存储新的页表或表项)所述方法还可以包括:
步骤S104,将所述缓存中存储的第三页表存储至TLB的TLB表项。
在一些实施例中,所述第三页表包括第一页表、第一页表和第二页表合并后的页表,或所述缓存中的其他页表。
具体实施时,所述装置响应于所述缓存中包括空闲表项,且所述第三页表未进行合并,则将所述第三页表存储至所述TLB表项中,并在所述缓存区生成新的表项;或者,响应于所述缓存中不包括空闲表项,且所述第三页表未进行合并,则通过替换算法确认所述缓存中进行过合并的页表,将所述进行过合并的页表存储至所述TLB表项中;或者,响应于第三页表进行过合并,则通过替换算法将所述第三页表存储至所述TLB表项中。
如图3所示,页表(如第一页表)被读取后,取回所述页表,并进行匹配,响应于匹配成功,将所述页表与缓存中的至少一个表项中存储的页表进行合并,在所述缓存中存储空间不足时,将存储的页表存储至TLB的TLB表项中。
如此,通过本公开实施例提供的数据处理方法,通过读取第一页表后,将所述第一页表与缓存中的至少一个页表进行匹配;若所述第一页表与所述至少一个页表中第二页表匹配成功,则将所述第一页表与所述第二页表合并;或者,若所述第一页表与所述至少一个页表均未匹配成功,则将所述第一页表存入所述缓存,以使所述第一页表与后续读取的页表进行匹配和/或合并;可以将连续的页表进行合并然后存储至TLB中,实现多个页表占用TLB中的一项,大大提高了TLB的利用率,从而缩短数据访问延迟。
图4示出了本公开实施例提供的数据处理方法的另一种可选流程示意图,针对缓存中的表项支撑有限次合并的情景,在该情景中,第一页表可以与缓存中存储的至少一个页表中其中一个页表匹配成功,将根据各个步骤进行说明。
步骤S201,读取第一页表后,将所述第一页表与缓存中的至少一个页表进行匹配。
在一些实施例中,数据处理装置(以下简称装置)读取第一页表后,将所述第一页表与缓存中的至少一个页表进行匹配。
具体实施时,缓存中存储至少一个表项,每一个表项中存储一个页表,所述每一个表项中存储的页表可以进行有限次合并。其中,所述有限次合并可以包括,所述表项中存储的页表可以合并X个页表。
在一些实施例中,所述装置基于初始页表确定起始合并范围和终止合并范围;对所述第一页表中的预设项目与缓存中至少一个页表对应的项目进行匹配;和/或,确认所述第一页表中VA和PA是否满足第一匹配条件。其中,所述初始页表可以包括存储至缓存,且没有进行过合并的页表,每一个表项的起始合并范围和终止合并范围均基于存储至该表项中的初始页表确定;所述第一匹配条件可以包括所述第一页表的VA对应的值属于第一合并范围,和/或,所述第一页表的PA对应的值属于第二合并范围。
例如,假设缓存中的每一个表项支持8个页表的合并,支持的VA范围为:0-7、8-15、16-23等,进入缓存的页表(初始页表)VA为5,则能与所述初始页表匹配的页表的VA的范围需要在0到7之间(即起始合并范围为0和终止合并范围为7);后续VA为10的初始页表进入缓存后,则开启缓存中一个新的表项,与其匹配的页表的VA的范围需要在8至15之间(即起始合并范围为8和终止合并范围为15)。
进一步,在一些可选实施例中,所述预设项目包括第一页表中除VA和PA以外的项目,以及VA和PA中除VA和PA标识连续部分以外的项目。
步骤S202,响应于所述第一页表中的预设项目与缓存中至少一个页表对应的项目匹配成功,且所述第一页表中VA和PA满足第一匹配条件,将所述第一页表与所述第二页表合并。
在一些实施例中,所述装置响应于所述缓存中每一表项(或表项中存储的页表)支持有限次合并,响应于所述第一页表中的预设项目与缓存中至少一个页表对应的项目匹配成功,且所述第一页表中VA和PA满足第一匹配条件,确认所述第一页表与所述至少一个页表中第二页表匹配成功,将所述第一页表与所述第二页表合并。
在一些可选实施例中,所述装置还可以更新缓存中所述第二页表对应的第一指示向量;所述第一指示向量用于表征所述第二页表对应的表项所合并的页表的信息;每一个表项均对应一个指示向量,所述指示向量用于表征相应的表项所合并的页表的信息;每一次成功合并页表之后,均更新对应的指示向量。
步骤S203,将所述缓存中存储的第三页表存储至TLB的TLB表项。
在一些实施例中,所述第三页表包括第一页表、第一页表和第二页表合并后的页表,或所述缓存中的其他页表。
具体实施时,所述装置响应于所述缓存中包括空闲表项,且所述第三页表未进行合并,则将所述第三页表存储至所述TLB表项中,并在所述缓存区生成新的表项;或者,响应于所述缓存中不包括空闲表项,且所述第三页表未进行合并,则通过替换算法确认所述缓存中进行过合并的页表,将所述进行过合并的页表存储至所述TLB表项中;或者,响应于第三页表进行过合并,则通过替换算法将所述第三页表存储至所述TLB表项中。
如此,通过本公开实施例提供的数据处理方法,可以将连续的页表进行合并然后存储至TLB中,实现多个页表占用TLB中的一项,大大提高了TLB的利用率,从而缩短数据访问延迟。
图5示出了本公开实施例提供的数据处理方法的再一种可选流程示意图,针对缓存中的表项支撑无限次合并的情景,在该情境中,第一页表可以与缓存中存储的至少一个页表匹配成功,将根据各个步骤进行说明。
步骤S301,读取第一页表后,确认缓存中的至少一个页表和所述第一页表的连续性。
在一些实施例中,数据处理装置(以下简称装置)读取第一页表后,确认缓存中的至少一个页表和所述第一页表的连续性。
具体实施时,缓存中存储至少一个表项,每一个表项中存储一个页表,所述每一个表项中存储的页表可以进行无限次合并。其中,所述无限次合并可以包括,所述表项中存储的页表可以合并不限数量个页表;其中,X可以为8、16、32等8的倍数。
具体实施时,所述装置从软件获取所述至少一个页表和所述第一页表的属性信息;基于所述属性信息,确认缓存中的至少一个页表和所述第一页表的连续性;或者,基于第一计数器中记录的数据,确认缓存中的至少一个页表和所述第一页表的连续性;其中,所述第一计数器中记录所述缓存中的至少一个页表和所述第一页表未合并的次数;所述未合并的次数小于或等于第一阈值,表征缓存中的至少一个页表和所述第一页表具备连续性。
进一步,所述装置对所述第一页表中的预设项目与缓存中至少一个页表对应的项目进行匹配;以及,确认所述第一页表中VA和PA是否满足第二匹配条件。其中,所述第二匹配条件可以包括所述第一页表中VA和PA的最后一位均与所述第二页表中VA和PA的最后一位不同;具体的VA和PA是指位宽为Y位的二进制数(Y可为40/44/48等)。假如第一页表的VA为8000000,另一个页表的VA为8000001,说明第一页表的VA与另一个页表的VA是连续的。所述预设项目包括第一页表中除VA和PA以外的项目,以及VA和PA中除VA和PA标识连续部分以外的项目。
步骤S302,响应于缓存中的至少一个页表和所述第一页表具备连续性,对所述第一页表与所述至少一个页表中第二页表进行匹配。
在一些实施例中,所述装置对所述第一页表中的预设项目与缓存中至少一个页表对应的项目进行匹配;以及,确认所述第一页表中VA和PA是否满足第二匹配条件。其中,所述第二匹配条件可以包括所述第一页表中VA和PA的最后一位均与所述第二页表中VA和PA的最后一位不同;具体的VA和PA是指位宽为Y位的二进制数(Y可为40/44/48等)。假如第一页表的VA为8000000,另一个页表的VA为8000001,说明第一页表的VA与另一个页表的VA是连续的。所述预设项目包括第一页表中除VA和PA以外的项目,以及VA和PA中除VA和PA标识连续部分以外的项目。
其中,所述具备连续性可以包括页表的合并次数大于预设阈值;其中预设阈值可以根据实际需求或实验结果确定。
步骤S303,响应于所述第一页表与所述至少一个页表中第二页表匹配成功,则将所述第一页表与所述第二页表合并。
在一些实施例中,所述装置响应于所述第一页表中的预设项目与缓存中至少一个页表对应的项目匹配成功,且所述第一页表中VA和PA满足第二匹配条件,确认所述第一页表与所述至少一个页表中第二页表匹配成功;其中,所述第二页表可以是一个页表,也可以是两个及两个以上页表。
具体实施时,所述装置响应于第一页表中的预设项目均与缓存中至少一个页表对应的项目匹配成功,且所述第一页表中VA和PA满足第二匹配条件,确认所述第一页表与所述至少一个页表中第二页表匹配成功。
在一些可选实施例中,响应于所述第一页表与两个及两个以上页表均匹配成功,所述装置可以将所述第一页表与所述两个及个以上页表中任一个页表进行合并,也可以将所述第一页表与所述两个及两个以上页表进行合并,并只保留最终合并完成的页表,删除其他页表。
步骤S304,将所述缓存中存储的第三页表存储至TLB的TLB表项。
在一些实施例中,所述第三页表包括第一页表、第一页表和第二页表合并后的页表,或所述缓存中的其他页表。
具体实施时,所述装置响应于所述缓存中包括空闲表项,且所述第三页表未进行合并,则将所述第三页表存储至所述TLB表项中,并在所述缓存区生成新的表项;或者,响应于所述缓存中不包括空闲表项,且所述第三页表未进行合并,则通过替换算法确认所述缓存中进行过合并的页表,将所述进行过合并的页表存储至所述TLB表项中;或者,响应于第三页表进行过合并,则通过替换算法将所述第三页表存储至所述TLB表项中。
如此,通过本公开实施例提供的数据处理方法,可以将连续的页表进行合并然后存储至TLB中,实现多个页表占用TLB中的一项,大大提高了TLB的利用率,从而缩短数据访问延迟。
图6示出了本公开实施例提供的数据处理装置的一种可选结构示意图,将根据各个部分进行说明。
在一些实施例中,数据处理装置600包括匹配单元601、合并单元602和存储单元603。
所述匹配单元601,用于读取第一页表后,将所述第一页表与缓存中的至少一个页表进行匹配;
所述合并单元602,用于若所述第一页表与所述至少一个页表中第二页表匹配成功,则将所述第一页表与所述第二页表合并;
所述存储单元603,用于若所述第一页表与所述至少一个页表均未匹配成功,则将所述第一页表存入所述缓存,以使所述第一页表与后续读取的页表进行匹配和/或合并。
所述匹配单元601,具体用于响应于缓存中每一表项支持有限次合并,则基于初始页表确定起始合并范围和终止合并范围;
对所述第一页表中的预设项目与缓存中至少一个页表对应的项目进行匹配;和/或,确认所述第一页表中虚拟地址VA和物理地址PA是否满足第一匹配条件;
其中,所述初始页表包括分配至所述缓存且没有进行过合并的页表。
所述合并单元602,具体用于响应于所述第一页表中的预设项目与缓存中至少一个页表对应的项目匹配成功,且所述第一页表中VA和PA满足第一匹配条件,确认所述第一页表与所述至少一个页表中第二页表匹配成功,将所述第一页表与所述第二页表合并。
所述合并单元602,将所述第一页表与所述第二页表合并之后,还用于更新缓存中所述第二页表对应的第一指示向量;所述第一指示向量用于表征所述第二页表对应的表项所合并的页表的信息。
所述匹配单元601,具体用于响应于缓存中每一表项支持无限次合并,则确认缓存中的至少一个页表和所述第一页表的连续性;
响应于所述缓存中的至少一个页表和所述第一页表之间具备连续性,则将所述第一页表与缓存中的至少一个页表进行匹配。
所述匹配单元601,具体用于从软件获取所述至少一个页表和所述第一页表的属性信息;基于所述属性信息,确认缓存中的至少一个页表和所述第一页表的连续性;或者,基于第一计数器中记录的数据,确认缓存中的至少一个页表和所述第一页表的连续性;其中,所述第一计数器中记录所述缓存中的至少一个页表和所述第一页表未合并的次数;所述未合并的次数小于或等于第一阈值,表征缓存中的至少一个页表和所述第一页表具备连续性。
所述匹配单元601,具体用于对第一页表中的预设项目与缓存中至少一个页表对应的项目进行匹配;以及,确认所述第一页表中VA和PA是否满足第二匹配条件。
所述合并单元602,具体用于响应于所述第一页表中的预设项目与缓存中至少一个页表对应的项目匹配成功,且所述第一页表中VA和PA满足第二匹配条件,确认所述第一页表与所述至少一个页表中第二页表匹配成功;
其中,所述第二匹配条件包括所述第一页表中VA和PA的最后一位均与所述第二页表中VA和PA的最后一位不同。
在一些实施例中,所述存储单元603,还用于将所述缓存中存储的第三页表存储至TLB的TLB表项;
其中,所述第三页表包括第一页表、第一页表和第二页表合并后的页表,或所述缓存中的其他页表。
所述存储单元603,具体用于实现以下之一:
响应于所述缓存中包括空闲表项,且所述第三页表未进行合并,则将所述第三页表存储至所述TLB表项中,并在所述缓存区生成新的表项;
响应于所述缓存中不包括空闲表项,且所述第三页表未进行合并,则通过替换算法确认所述缓存中进行过合并的页表,将所述进行过合并的页表存储至所述TLB表项中;
响应于第三页表进行过合并,则通过替换算法将所述第三页表存储至所述TLB表项中。
需要说明的是,自第一台通用电子计算机问世以来,计算机技术在几十年间取得了飞速的发展,计算机技术的飞速发展得益于计算机体系结构的改进以及计算机生产技术的发展。计算机生产技术对计算机技术的发展的贡献一直是稳定的;然而,由于计算机体系结构经历几十年的改进,使得计算机体系结构的改进空间愈发狭小,因此针对计算机体系结构的任意小的改进都将对处理器的性能和计算机技术的发展带来较明显的影响。
根据本公开的实施例,本公开还提供了一种电子设备和一种可读存储介质。
下面说明本公开实施例提供的电子设备的示例性应用,本公开实施例提供的电子设备可以实施为电子设备,所述电子设备可以是服务器或终端设备。
服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云计算服务的云服务器。终端设备可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。终端设备以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本公开实施例在此不做限制。
参见图7,图7是本公开实施例提供的电子设备400的一种组成结构示意图,图7所示的电子设备400包括:至少一个处理器410、存储器450、用户接口430和总线440;电子设备400中的各个组件通过总线440耦合在一起。可理解,总线440用于实现这些组件之间的连接通信。总线440除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图7中将各种总线都标为总线440。
处理器410可以是一种集成电路芯片,具有信号的处理能力,例如通用处理器、数字信号处理器(DSP,Digital Signal Processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。
用户接口430包括使得能够呈现媒体内容的一个或多个输出装置,包括一个或多个扬声器和/或一个或多个视觉显示屏。用户接口430还包括一个或多个输入装置,包括有助于用户输入的用户接口部件,比如键盘、鼠标、麦克风、触屏显示屏、摄像头、其他输入按钮和控件。
存储器450中存储有用于实现本公开实施例提供的数据处理方法的可执行指令,数据处理方法可由图6所示的数据处理装置600实现;存储器450可以是可移除的,不可移除的或其组合。示例性的硬件设备包括固态存储器,硬盘驱动器,光盘驱动器等。存储器450可选地包括在物理位置上远离处理器 410的一个或多个存储设备。
在一些实施例中,存储器450能够存储数据以支持各种操作,这些数据的示例包括程序、模块和数据结构或者其子集或超集。
存储在存储器450中的数据处理装置600,其可以是程序和插件等形式的软件,包括以下软件模块:匹配单元601、合并单元602以及存储单元603,这些模块是逻辑上的,因此根据所实现的功能可以进行任意的组合或进一步拆分。将在下文中说明各个模块的功能。
所述匹配单元601,用于读取第一页表后,将所述第一页表与缓存中的至少一个页表进行匹配;所述合并单元602,用于若所述第一页表与所述至少一个页表中第二页表匹配成功,则将所述第一页表与所述第二页表合并;所述存储单元603,用于若所述第一页表与所述至少一个页表均未匹配成功,则将所述第一页表存入所述缓存,以使所述第一页表与后续读取的页表进行匹配和/或合并。
在一些实施例中,电子设备400还可以包括:
操作系统451,包括用于处理各种基本系统服务和执行硬件相关任务的系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务;
网络通信模块452,用于经由一个或多个(有线或无线)网络接口420到达其他计算设备,示例性的网络接口420包括:蓝牙、无线相容性认证(WiFi)、和通用串行总线(USB,Universal Serial Bus)等。
本公开实施例提供一种存储有可执行指令的计算机可读存储介质,其中存储有可执行指令,当可执行指令被处理器执行时,将引起处理器执行本公开实施例提供的数据处理方法,例如,如图2、图4以及图5示出的数据处理方法。
在一些实施例中,计算机可读存储介质可以是FRAM、ROM、PROM、EPROM、EEPROM、闪存、磁表面存储器、光盘、或CD-ROM等存储器;也可以是包括上述存储器之一或任意组合的各种设备。
在一些实施例中,可执行指令可以采用程序、软件、软件模块、脚本或代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。
作为示例,可执行指令可被部署为在一个计算设备上执行,或者在位于一个地点的多个计算设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算设备上执行。
本公开实施例提供一种计算机程序产品,所述计算机程序产品包括计算机程序/指令,所述计算机程序/指令被处理器执行时实现本公开所述的数据处理方法。
以上,仅为本公开的实施例而已,并非用于限定本公开的保护范围。凡在本公开的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本公开的保护范围之内。
Claims (12)
1.一种数据处理方法,其特征在于,所述方法包括:
读取第一页表后,将所述第一页表与缓存中的至少一个页表进行匹配;
若所述第一页表与所述至少一个页表中第二页表匹配成功,则将所述第一页表与所述第二页表合并;
或者,若所述第一页表与所述至少一个页表均未匹配成功,则将所述第一页表存入所述缓存,以使所述第一页表与后续读取的页表进行匹配和/或合并;
其中,所述将所述第一页表与缓存中的至少一个页表进行匹配,包括:
响应于缓存中每一表项支持有限次合并,则基于初始页表确定起始合并范围和终止合并范围;对所述第一页表中的预设项目与缓存中至少一个页表对应的项目进行匹配;和/或,确认所述第一页表中虚拟地址VA和物理地址PA是否满足第一匹配条件;其中,所述初始页表包括分配至所述缓存且没有进行过合并的页表;
或者,响应于缓存中每一表项支持无限次合并,则确认缓存中的至少一个页表和所述第一页表的连续性;响应于所述缓存中的至少一个页表和所述第一页表之间具备连续性,则将所述第一页表与缓存中的至少一个页表进行匹配。
2.根据权利要求1所述的方法,其特征在于,所述若所述第一页表与所述至少一个页表中第二页表匹配成功,则将所述第一页表与所述第二页表合并,包括:
响应于所述第一页表中的预设项目与缓存中至少一个页表对应的项目匹配成功,且所述第一页表中VA和PA满足第一匹配条件,确认所述第一页表与所述至少一个页表中第二页表匹配成功,将所述第一页表与所述第二页表合并。
3.根据权利要求2所述的方法,其特征在于,所述将所述第一页表与所述第二页表合并之后,所述方法还包括:
更新缓存中所述第二页表对应的第一指示向量;所述第一指示向量用于表征所述第二页表对应的表项所合并的页表的信息。
4.根据权利要求1所述的方法,其特征在于,所述确认缓存中的至少一个页表和所述第一页表的连续性,包括:
从软件获取所述至少一个页表和所述第一页表的属性信息;
基于所述属性信息,确认缓存中的至少一个页表和所述第一页表的连续性。
5.根据权利要求1所述的方法,其特征在于,所述确认缓存中的至少一个页表和所述第一页表的连续性,包括:
基于第一计数器中记录的数据,确认缓存中的至少一个页表和所述第一页表的连续性;
其中,所述第一计数器中记录所述缓存中的至少一个页表和所述第一页表未合并的次数;所述未合并的次数小于或等于第一阈值,表征缓存中的至少一个页表和所述第一页表具备连续性。
6.根据权利要求1所述的方法,其特征在于,所述将所述第一页表与缓存中的至少一个页表进行匹配,包括:
对所述第一页表中的预设项目与缓存中至少一个页表对应的项目进行匹配;以及,确认所述第一页表中虚拟地址VA和物理地址PA是否满足第二匹配条件。
7.根据权利要求6所述的方法,其特征在于,所述第一页表与所述至少一个页表中第二页表匹配成功,包括:
响应于所述第一页表中的预设项目与缓存中至少一个页表对应的项目匹配成功,且所述第一页表中VA和PA满足第二匹配条件,确认所述第一页表与所述至少一个页表中第二页表匹配成功;
其中,所述第二匹配条件包括所述第一页表中VA和PA的最后一位均与所述第二页表中VA和PA的最后一位不同。
8.根据权利要求1所述的方法,其特征在于,所述方法还包括:
将所述缓存中存储的第三页表存储至转译后备缓冲区TLB的TLB表项;
其中,所述第三页表包括第一页表、第一页表和第二页表合并后的页表,或所述缓存中的其他页表。
9.根据权利要求8所述的方法,其特征在于,所述将所述缓存中存储的第三页表存储至转译后备缓冲区TLB的TLB表项,包括以下之一:
响应于所述缓存中包括空闲表项,且所述第三页表未进行合并,则将所述第三页表存储至所述TLB表项中,并在所述缓存中生成新的表项;
响应于所述缓存中不包括空闲表项,且所述第三页表未进行合并,则通过替换算法确认所述缓存中进行过合并的页表,将所述进行过合并的页表存储至所述TLB表项中;
响应于第三页表进行过合并,则通过替换算法将所述第三页表存储至所述TLB表项中。
10.一种数据处理装置,其特征在于,所述装置包括:
匹配单元,用于读取第一页表后,将所述第一页表与缓存中的至少一个页表进行匹配;
合并单元,用于若所述第一页表与所述至少一个页表中第二页表匹配成功,则将所述第一页表与所述第二页表合并;
存储单元,用于若所述第一页表与所述至少一个页表均未匹配成功,则将所述第一页表存入所述缓存,以使所述第一页表与后续读取的页表进行匹配和/或合并;
所述匹配单元,具体用于响应于缓存中每一表项支持有限次合并,则基于初始页表确定起始合并范围和终止合并范围;对所述第一页表中的预设项目与缓存中至少一个页表对应的项目进行匹配;和/或,确认所述第一页表中虚拟地址VA和物理地址PA是否满足第一匹配条件;其中,所述初始页表包括分配至所述缓存且没有进行过合并的页表;或者,响应于缓存中每一表项支持无限次合并,则确认缓存中的至少一个页表和所述第一页表的连续性;响应于所述缓存中的至少一个页表和所述第一页表之间具备连续性,则将所述第一页表与缓存中的至少一个页表进行匹配。
11.一种电子设备,其特征在于,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-9中任一项所述的方法。
12.一种存储有计算机指令的非瞬时计算机可读存储介质,其特征在于,所述计算机指令用于使所述计算机执行根据权利要求1-9中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210535954.7A CN114676071B (zh) | 2022-05-18 | 2022-05-18 | 数据处理方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210535954.7A CN114676071B (zh) | 2022-05-18 | 2022-05-18 | 数据处理方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114676071A CN114676071A (zh) | 2022-06-28 |
CN114676071B true CN114676071B (zh) | 2022-08-19 |
Family
ID=82079822
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210535954.7A Active CN114676071B (zh) | 2022-05-18 | 2022-05-18 | 数据处理方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114676071B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108139981A (zh) * | 2016-08-11 | 2018-06-08 | 华为技术有限公司 | 一种页表缓存tlb中表项的访问方法,及处理芯片 |
CN111949572A (zh) * | 2020-08-24 | 2020-11-17 | 海光信息技术有限公司 | 页表条目合并方法、装置及电子设备 |
CN111949562A (zh) * | 2019-05-15 | 2020-11-17 | 三星电子株式会社 | 应用处理器、系统级芯片及操作存储器管理单元的方法 |
CN112631961A (zh) * | 2019-09-24 | 2021-04-09 | 阿里巴巴集团控股有限公司 | 一种内存管理单元、地址转译方法以及处理器 |
-
2022
- 2022-05-18 CN CN202210535954.7A patent/CN114676071B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108139981A (zh) * | 2016-08-11 | 2018-06-08 | 华为技术有限公司 | 一种页表缓存tlb中表项的访问方法,及处理芯片 |
CN111949562A (zh) * | 2019-05-15 | 2020-11-17 | 三星电子株式会社 | 应用处理器、系统级芯片及操作存储器管理单元的方法 |
CN112631961A (zh) * | 2019-09-24 | 2021-04-09 | 阿里巴巴集团控股有限公司 | 一种内存管理单元、地址转译方法以及处理器 |
CN111949572A (zh) * | 2020-08-24 | 2020-11-17 | 海光信息技术有限公司 | 页表条目合并方法、装置及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN114676071A (zh) | 2022-06-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3252592A1 (en) | Method and device for storing and reading data | |
CN107835986B (zh) | 一种电子设备的数据操作方法及电子设备 | |
CN105631035A (zh) | 数据存储方法和装置 | |
CN103559055A (zh) | 一种应用于Android平台的启动活动的方法和装置 | |
CN108875046A (zh) | 一种存储系统访问方法、装置及电子设备 | |
CN110908734A (zh) | 基于插件化的应用组合方法、装置、终端设备及存储介质 | |
CN104268229A (zh) | 一种基于多进程浏览器的资源获得方法及装置 | |
CN104765528A (zh) | 一种虚拟键盘显示方法及装置 | |
CN109213450B (zh) | 一种基于闪存阵列的关联元数据删除方法、装置及设备 | |
CN108037932B (zh) | Spi-nand的配置文件获取方法和装置 | |
CN115114232A (zh) | 一种历史版本对象列举方法、装置及其介质 | |
US20200034101A1 (en) | Data displaying method and electronic device | |
KR20070063132A (ko) | 이동 통신 단말기의 배드 블럭 관리장치와 배드 블럭관리방법 | |
CN103870762A (zh) | 分区访问方法和电子设备 | |
CN107148612B (zh) | 一种扩展用户分区的方法和装置 | |
CN113127430B (zh) | 镜像信息处理方法、装置、计算机可读介质及电子设备 | |
CN114676071B (zh) | 数据处理方法、装置、电子设备及存储介质 | |
US9817837B2 (en) | Method and system for file storage and access | |
CN108399076A (zh) | 一种基于uefi的固件更新方法与装置 | |
WO2020113421A1 (zh) | 一种挂载文件系统的方法、终端设备及存储介质 | |
CN111443945A (zh) | 组件代码修改方法及设备 | |
CN115981565A (zh) | 存储器、数据存储方法及电子设备 | |
CN113704177B (zh) | 一种服务器固件升级文件的存储方法、系统及相关组件 | |
CN113132241B (zh) | Acl模板动态配置方法及装置 | |
CN113849494A (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 |