旁路转换缓冲缺失的处理方法及旁路转换缓冲的制作方法

文档序号:6504333阅读:161来源:国知局
旁路转换缓冲缺失的处理方法及旁路转换缓冲的制作方法
【专利摘要】本发明实施例提供一种旁路转换缓冲缺失的处理方法及旁路转换缓冲,该方法包括:当当前访存操作发生TLB缺失异常时,TLB查询历史信息库以确定当前访存操作所使用的VA是否曾被使用,若在历史信息库中查找到该VA,则无需等到指令提取阶段再处理该TLB缺失异常,而是直接从内存中获取与当前VA对应的物理地址PA并进行相应的处理,实现对TLB缺失异常的快速处理,从而提升处理器的性能。
【专利说明】旁路转换缓冲缺失的处理方法及旁路转换缓冲

【技术领域】
[0001]本发明涉及计算机存储技术,尤其涉及一种旁路转换缓冲缺失的处理方法及旁路转换缓冲。

【背景技术】
[0002]目前,通常在中央处理器(Central Processing Unit, CPU)内设置旁路转换缓冲(Translat1n Lookaside Buffer, TLB),在进行指令取出或数据读写等访存操作时,利用TLB将虚拟地址(Virtual Address, VA)转换为物理地址(Physical Address, PA),使用PA直接对存储器进行访问。具体的,TLB中保存至少一个VA的虚拟页号(Virtual PageNumber, VPN)和PA的物理页号(Physical Page Number, PPN)的对应关系,该对应关系称之为表项,TLB根据访存操作使用的VPN,在表项中查找对应的物理页号(Physical PageNumber, PPN),如果查找到VPN,则输出对应的PPN,从而确定出PA ;否则,表示发生一次TLB缺失异常。
[0003]现有技术中,若发生TLB缺失异常,则在该TLB缺失异常结束后,处理器恢复到缺失异常发生之前的状态重新执行访存操作以保证对异常的精确处理。
[0004]然而,大多数TLB缺失异常的处理都发生在指令提交阶段,例如,指令旁路转换缓冲(Instruct1n Translat1n Lookaside Buffer, ITLB)缺失异常发生在流水线的指令读取阶段,数据旁路转换缓冲(Data Translat1n Lookaside Buffer, DTLB)缺失异常发生在流水线的访存阶段,但都是在指令提交阶段对它们进行处理,导致TLB缺失异常从发生到处理有较长的延迟,从而影响处理器的性能。


【发明内容】

[0005]本发明实施例提供一种旁路转换缓冲缺失的处理方法及旁路转换缓冲,以实现对TLB缺失异常的快速处理,从而提升处理器的性能。
[0006]第一个方面,本发明实施例提供一种旁路转换缓冲缺失的处理方法,包括:
[0007]若当前访存操作发生旁路转换缓存TLB缺失异常,则在历史信息库中查找所述当前访存操作使用的当前虚拟地址VA,所述历史信息库中保存有历史访存操作过程中使用过的VA,所述历史访存操作为发生在所述当前访存操作之前的访存操作;
[0008]若在所述历史信息库中查找到所述当前VA,则从内存中获取与所述当前VA对应的物理地址PA。
[0009]在第一个方面的第一种可能的实现方式中,所述若当前访存操作发生旁路转换缓存TLB缺失异常,则在历史信息库中查找所述当前访存操作使用的当前虚拟地址VA之前,包括:
[0010]执行所述历史访存操作时,在所述历史信息库中记录所述历史访存操作过程中使用的VA。
[0011 ] 结合第一个方面的第一种可能的实现方式,在第一个方面的第二种可能的实现方式中,所述在所述历史信息库中记录所述历史访存操作过程中使用的VA,包括:
[0012]利用布隆过滤器在所述历史信息库中记录所述历史访存操作过程中使用的VA。
[0013]结合第一个方面的第一种可能的实现方式,在第一个方面的第三种可能的实现方式中,所述在所述历史信息库中记录所述历史访存操作过程中使用的VA,包括:
[0014]利用环形缓存在所述历史信息库中记录所述历史访存操作过程中使用的VA。
[0015]结合第一个方面、第一方面的第一种、第二种或第三种可能的实现,在第一个方面的第四种可能的实现方式中,所述若在所述历史信息库中查找到所述当前VA,则从内存中获取与所述当前VA对应的物理地址PA之后,包括:
[0016]判断所述TLB缺失异常是否需要处理,若所述TLB缺失异常需要处理,则记录所述当前VA与所述PA的对应关系;
[0017]否则,若所述TLB缺失异常不需要处理,则丢弃所述PA。
[0018]结合第一个方面、第一方面的第一种、第二种、第三种或第四种可能的实现,在第一个方面的第五种可能的实现方式中,所述若在所述历史信息库中查找到所述当前VA,则从内存中获取与所述当前VA对应的物理地址PA,包括:
[0019]若在所述历史信息库中查找到所述当前VA,则通知存储器管理单元MMU启动硬件页表查询,以从内存中获取与所述当前VA对应的PA。
[0020]第二个方面,本发明实施例提供一种旁路转换缓冲,包括:
[0021]查找模块,用于若当前访存操作发生旁路转换缓存TLB缺失异常,则在历史信息库中查找所述当前访存操作使用的当前虚拟地址VA,所述历史信息库中保存有历史访存操作过程中使用过的VA,所述历史访存操作为发生在所述当前访存操作之前的访存操作;
[0022]获取模块,用于若所述查找模块在所述历史信息库中查找到所述当前VA,则从内存中获取与所述当前VA对应的物理地址PA。
[0023]在第二个方面的第一种可能的实现方式中,旁路转换缓冲还包括:
[0024]记录模块,用于在执行所述历史访存操作时,在所述历史信息库中记录所述历史访存操作过程中使用的VA。
[0025]结合第二个方面的第一种可能的实现方式,在第二个方面的第二种可能的实现方式中,所述记录模块包括:
[0026]第一记录单元,用于利用布隆过滤器在所述历史信息库中记录所述历史访存操作过程中使用的VA。
[0027]结合第二个方面的第一种可能的实现方式,在第二个方面的第三种可能的实现方式中,所述记录模块包括:
[0028]第二记录单元,用于利用环形缓存在所述历史信息库中记录所述历史访存操作过程中使用的VA。
[0029]结合第二个方面、第二方面的第一种、第二种或第三种可能的实现,在第二个方面的第四种可能的实现方式中,旁路转换缓冲还包括:
[0030]判断模块,用于判断所述TLB缺失异常是否需要处理;
[0031]处理模块,用于若所述判断模块判断出所述TLB缺失异常需要处理,则记录所述当前VA与所述PA的对应关系;
[0032]丢弃模块,用于若所述判断模块判断出所述TLB缺失异常不需要处理,则丢弃所述PA。
[0033]结合第二个方面、第二方面的第一种、第二种、第三种或第四种可能的实现,在第二个方面的第五种可能的实现方式中,所述获取模块具体用于:
[0034]若在所述历史信息库中查找到所述当前VA,则通知存储器管理单元MMU启动硬件页表查询,以从内存中获取与所述当前VA对应的PA。
[0035]第三个方面,本发明实施例提供一种处理器,包括如上第二个方面、第二个方面的第一种至第五种可能的实现方式中的任一种旁路转换缓冲。
[0036]本发明实施例提供的旁路转换缓冲缺失的处理方法及旁路转换缓冲,当当前访存操作发生TLB缺失异常时,TLB查询历史信息库以确定当前访存操作所使用的VA是否曾被使用,若在历史信息库中查找到该VA,则无需等到指令提取阶段再处理该TLB缺失异常,而是直接从内存中获取与所述当前VA对应的物理地址PA并进行相应的处理,实现对TLB缺失异常的快速处理,从而提升处理器的性能。

【专利附图】

【附图说明】
[0037]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0038]图1为本发明旁路转换缓冲缺失的处理方法实施例一的流程图;
[0039]图2A为本发明旁路转换缓冲缺失的处理方法实施例二的流程图;
[0040]图2B为图2A中5个索引表的不意图;
[0041]图3为本发明旁路转换缓冲实施例一的结构示意图;
[0042]图4为本发明旁路转换缓冲实施例二的结构示意图;
[0043]图5为本发明旁路转换缓冲实施例三的结构示意图。

【具体实施方式】
[0044]为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0045]图1为本发明旁路转换缓冲缺失的处理方法实施例一的流程图。本实施例的执行主体为TLB,适用于发生TLB缺失异常的场景。具体的,本实施例包括以下步骤:
[0046]101、若当前访存操作发生旁路转换缓存TLB缺失异常,则在历史信息库中查找当前访存操作使用的当前虚拟地址V A,历史信息库中保存有历史访存操作过程中使用过的V A,历史访存操作为发生在当前访存操作之前的访存操作。
[0047]具体的,访存操作给出的地址范围往往是范围很大的VA,而该数据或指令真正在内存中对应的地址是范围较小的PA,这就需要做一次VA到PA的转换。地址转换过程中,通常以页(page)为单位进行地址转换,由于TLB容量有限,TLB通常保存部分表项,每个表项对应一个页的VA和PA的映射关系。一般的,VA包含页内偏移(page offset)与虚拟页号,PA包含页内偏移和物理页号,一个页面内的VA与PA的页内偏移是一样的。例如,假设,页的大小为(Page Size)为4KB,则VA与PA的低12位是一样的,均为页内偏移。
[0048]本步骤中,若当前访存操作发生TLB缺失异常,即进行当前访存操作过程中,TLB根据当前访存操作所使用的VA,未能在自身已保存的表项中找到相同的VA或者该VA对应的VPN时,TLB判断该VA是否曾被替换出。具体的,TLB从保存有历史访存操作过程中使用的VA的历史信息库中查找该VA,若查找到该VA,说明该VA近期被使用过,曾被替换出,被使用的几率比较大;否则,若未查找到该VA,则说明该VA未被替换出,需要在指令提交阶段对该TLB确实进行处理。
[0049]需要说明的是,上述TLB缺失异常包括ITLB确实异常、DTLB缺失异常等,本发明并不以此为限。
[0050]102、若在历史信息库中查找到当前VA,则从内存中获取与当前VA对应的物理地址PA。
[0051]若TLB从历史信息库中查找到当前访存操作所使用的当前VA,则从内存中获取与该当前VA对应的PA。例如,TLB直接通知存储器管理单元(Memory Management Unit,MMU)启动硬件页表查询(Hardware Tablewalk),以从内存中查询并获取与当前VA对应的PA ;或者,采用软件的方式从内存中查询并获取与当前VA对应的PA ;或者,以其他方式查询并获取与当前VA对应的PA,本发明并不以此为限制。
[0052]发生TLB缺失异常时,TLB在查找到当前访存操作的VA对应的PA后,可根据预设的规则进行相应的处理。例如,若该TLB缺失异常为ITLB缺失异常,则执行指令的取出;若该TLB缺失异常为DTLB缺失异常,则自动发生中断。另外,由于是否需要对该次TLB缺失异常进行处理,在指令提交阶段才可以判断出,例如,如果发送TLB缺失异常的指令之前,已有指令发生了跳转预测误差或者其他异常,此时就不需要处理该TLB缺失异常。因此,可以在指令提交阶段,TLB判断该TLB缺失异常是否需要处理,若需要处理,则记录当前VA与PA的对应关系,即在本地添加新的表项;否则,若不需要处理,则丢弃PA。
[0053]本发明实施例提供的旁路转换缓冲缺失的处理方法,当当前访存操作发生TLB缺失异常时,TLB查询历史信息库以确定当前访存操作所使用的VA是否曾被使用,若在历史信息库中查找到该VA,则无需等到指令提取阶段再处理该TLB缺失异常,而是直接从内存中获取与所述当前VA对应的物理地址PA并进行相应的处理,实现对TLB缺失异常的快速处理,从而提升处理器的性能。
[0054]进一步的,上述实施例一中,若当前访存操作发生旁路转换缓存TLB缺失异常,则在历史信息库中查找当前访存操作使用的当前虚拟地址VA之前,包括:执行历史访存操作时,在历史信息库中记录历史访存操作过程中使用的VA。
[0055]具体的,每次进行访存操作时,TLB都可以将该次访存操作过程中所使用的VA记录到历史信息库中,例如,可利用布隆过滤器、环形缓存等在历史信息库中记录历史访存操作过程中使用的VA,以供访存操作过程中,若发生TLB缺失异常,则可从该历史信息库中查找相关信息。
[0056]图2A为本发明旁路转换缓冲缺失的处理方法实施例二的流程图。本实施例利用布隆过滤器在历史信息库中记录历史访存操作过程中使用的VA。具体的,本实施例包括以下步骤:
[0057]201、发生TLB缺失异常。
[0058]当前访存操作发生TLB缺失异常。例如,在流水线的指令取值阶段,发生ITLB ;或者,在流水线的访存阶段,发生DTLB。
[0059]202、TLB在历史信息库中是否查找到当前VA。
[0060]历史信息库中保存有TLB利用布隆过滤器(Bloom Filter)记录的历史访存操作过程中使用过的VA,以及该VA所属的页包含的所有表项或部分表项构成的VA使用表。具体的,未发生TLB缺失异常时,TLB根据访存操作所使用的VA对应的VPN去查找该VA使用表,若在VA使用表中找到该VA对应的VPN,则继续正常流程,如在TLB自身存储的表项中查找并获取与该VA对应的PA ;若未找到,则在该VA使用表中标识该VA为曾被使用过,即曾被替换出。下面,以VA共49位、Page Size为4KB为例详细说明Bloom Filter如何记录历史访存操作过程中使用过的VA。
[0061]假设VA共49位,Page Size为4KB,页内偏移的最大偏移量就是4KB,即212,因此,可以用12个比特位来记录页内偏移,则VPN为37位,即VA[48:12]。建立两个位宽为I比特、深度为256比特的表和三个位宽I比特、深度为256比特的表,则5个表的索引以以下方式构成:
[0062]INDEXO= {VA [47],VA [42],VA [37],VA [32],VA [27],VA [22],VA [ 17],VA [ 12]};
[0063]INDEX1={VA[46], VA[41], VA[36], VA[31], VA[26], VA[21], VA[16], VA[11]};
[0064]INDEX2= {VA [45],VA [40],VA [35],VA [30],VA [25],VA [20],VA [ 15]};
[0065]INDEX3= {VA [44],VA [39],VA [34],VA [29],VA [24],VA [ 19],VA [ 14]};
[0066]INDEX4= {VA [43],VA [38],VA [33],VA [28],VA [23],VA [ 18],VA [ 13]}。
[0067]具体的,可参见图2B,图2B为图2A中5个索引表的示意图。
[0068]未发生TLB缺失异常时,TLB根据访存操作所使用的VA对应的VPN的相应的位去索引该5个表,将索引到的5个表中的对应位置标识为I (如图中箭头所示),后续再使用其他VA或同样的VA时,继续根据所使用的VA对应的VPN的相应的位去索引该5个表。
[0069]当发送TLB缺失异常时,用发生TLB缺失异常时采用的VA的VPN的相应位去索引这5个表,若查到的每个表的相应位置均为1,则表明该VA可能曾被使用过,即曾被替换出,执行步骤203 ;否则,若其中任意一个表的相应位置未被标识为1,则说明该VA未被使用过,历史信息库中无该VA的相关信息,执行步骤207。
[0070]203、TLB通知MMU启动Hardware Tablewalk以获取与当前VA对应的PA。
[0071]可选的,TLB也可通过其他方式获取与当前VA对应的PA。
[0072]204、判断TLB缺失异常是否需要处理。
[0073]具体的,在指令提交阶段,TLB判断该TLB缺失异常是否需要处理,若需要处理,则将VA与PA的对应关系存储到TLB自身中,即执行步骤206 ;否则,若不需要处理,则丢弃获取到的PA,即执行步骤205。
[0074]205、丢弃获取到的PA。
[0075]206、记录当前VA与PA的对应关系。
[0076]207、判断TLB缺失异常是否需要处理。
[0077]对于在历史信息库中查找不到的VA,则与现有技术一样,TLB在指令提交阶段判断该TLB缺失异常是否需要处理。若需要,则在内存中查找与该VA对应的PA,即执行步骤208 ;否则,若不需要处理,则不对该TLB缺失异常进行处理,即执行步骤209。
[0078]208、TLB通知MMU启动Hardware Tablewalk以获取与当前VA对应的PA。
[0079]在获取到与当前VA对应的PA后,执行步骤206,将VA与PA的对应关系存储到TLB自身中。
[0080]209、不对该TLB缺失异常进行处理。
[0081]需要说明的是,如图中虚线所示,上述步骤201?203均发生在指令取值阶段或访存阶段,步骤204?209发生在指令提取阶段,即写回阶段。
[0082]另外,还需要说明的是,由于利用布隆过滤器在历史信息库中记录历史访存操作过程中使用的VA的过程中,牺牲了正确率换取时间和空间,为了保证TLB确实异常处理的精确性,若构建出的某个索引表的所有位,或者超过预设阀门的位均被标识为1,此时可考虑将所有的索引表清零或重建索引表。
[0083]可选的,TLB也可利用环形缓存等在历史信息库中记录历史访存操作过程中使用的VA,以供访存操作过程中,若发生TLB缺失异常,则可从该历史信息库中查找相关信息。
[0084]具体的,可在TLB旁边设置一个容量为10项的环形Buffer。未发生TLB缺失异常时,将每次使用的VA都存储在这个环形Buffer中,当Buffer填满后,新填入的VA就覆盖最早填入的VA,从而实现对最近10次访存操作中使用的VA的记录。
[0085]当发生一次TLB缺失异常时首先在环形Buffer中查找该VA,若找到,则无需等到指令提取阶段再处理该TLB缺失异常,而是直接从内存中获取与当前VA对应的物理地址PA并进行相应的处理;否则,如同现有技术中,TLB在指令提交阶段判断该TLB缺失异常是否需要处理。
[0086]图3为本发明旁路转换缓冲实施例一的结构示意图。本实施例提供的旁路转换缓冲是与本发明图1实施例对应的装置实施例,具体实现过程在此不再赘述。具体的,本实施例提供的旁路转换缓冲100具体包括:
[0087]查找模块11,用于若当前访存操作发生旁路转换缓存TLB缺失异常,则在历史信息库中查找当前访存操作使用的当前虚拟地址VA,历史信息库中保存有历史访存操作过程中使用过的VA,历史访存操作为发生在当前访存操作之前的访存操作;
[0088]获取模块12,用于若查找模块在历史信息库中查找到当前VA,则从内存中获取与当前VA对应的物理地址PA。
[0089]本发明实施例提供的旁路转换缓冲,当当前访存操作发生TLB缺失异常时,TLB查询历史信息库以确定当前访存操作所使用的VA是否曾被使用,若在历史信息库中查找到该VA,则无需等到指令提取阶段再处理该TLB缺失异常,而是直接从内存中获取与当前VA对应的物理地址PA并进行相应的处理,实现对TLB缺失异常的快速处理,从而提升处理器的性能。
[0090]图4为本发明旁路转换缓冲实施例二的结构示意图。如图4所示,本实施例的旁路转换缓冲200在图3装置结构的基础上,进一步的,还包括:
[0091]记录模块13,用于在执行历史访存操作时,在历史信息库中记录历史访存操作过程中使用的VA。
[0092]再请参照图4,进一步的,记录模块13包括:
[0093]第一记录单元131,用于利用布隆过滤器在历史信息库中记录历史访存操作过程中使用的VA。
[0094]第二记录单元132,用于利用环形缓存在历史信息库中记录历史访存操作过程中使用的VA。
[0095]再请参照图4,进一步的,旁路转换缓冲200还包括:
[0096]判断模块14,用于判断TLB缺失异常是否需要处理;
[0097]处理模块15,用于若判断模块判断出TLB缺失异常需要处理,则记录当前VA与PA的对应关系;
[0098]丢弃模块16,用于若判断模块判断出TLB缺失异常不需要处理,则丢弃PA。
[0099]进一步的,获取模块12具体用于若在历史信息库中查找到当前VA,则通知存储器管理单元MMU启动硬件页表查询,以从内存中获取与当前VA对应的PA。
[0100]图5为本发明旁路转换缓冲实施例三的结构示意图。如图5所示,本实施例提供的旁路转换缓冲300包括处理器31和存储器32。旁路转换缓冲300还可以包括发射器33、接收器34。发射器33和接收器34可以和处理器31相连。其中,存储器32存储执行指令,当旁路转换缓冲300运行时,处理器31与存储器32之间通信,处理器31调用存储器32中的执行指令,用于执行图1所示方法实施例,其实现原理和技术效果类似,此处不再赘述。
[0101]另外,基于上述方法和装置的实施例,本发明还提供一种处理器,其包括如图3、图4或图5所示的任一种旁路转换缓冲,具体的,旁路转换缓冲的工作原理及性能,请参见上述有关旁路转换缓冲缺失的处理方法的说明,此处不再赘述。
[0102]在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0103]所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0104]本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:R0M、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
[0105]最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
【权利要求】
1.一种旁路转换缓冲缺失的处理方法,其特征在于,包括: 若当前访存操作发生旁路转换缓存TLB缺失异常,则在历史信息库中查找所述当前访存操作使用的当前虚拟地址VA,所述历史信息库中保存有历史访存操作过程中使用过的VA,所述历史访存操作为发生在所述当前访存操作之前的访存操作; 若在所述历史信息库中查找到所述当前VA,则从内存中获取与所述当前VA对应的物理地址PA。
2.根据权利要求1所述的方法,其特征在于,所述若当前访存操作发生旁路转换缓存TLB缺失异常,则在历史信息库中查找所述当前访存操作使用的当前虚拟地址VA之前,包括: 执行所述历史访存操作时,在所述历史信息库中记录所述历史访存操作过程中使用的VA。
3.根据权利要求2所述的方法,其特征在于,所述在所述历史信息库中记录所述历史访存操作过程中使用的VA,包括: 利用布隆过滤器在所述历史信息库中记录所述历史访存操作过程中使用的VA。
4.根据权利要求2所述的方法,其特征在于,所述在所述历史信息库中记录所述历史访存操作过程中使用的VA,包括: 利用环形缓存在所述历史信息库中记录所述历史访存操作过程中使用的VA。
5.根据权利要求1?4任一项所述的方法,其特征在于,所述若在所述历史信息库中查找到所述当前VA,则从内存中获取与所述当前VA对应的物理地址PA之后,包括: 判断所述TLB缺失异常是否需要处理,若所述TLB缺失异常需要处理,则记录所述当前VA与所述PA的对应关系; 否则,若所述TLB缺失异常不需要处理,则丢弃所述PA。
6.根据权利要求1?5任一项所述的方法,其特征在于,所述若在所述历史信息库中查找到所述当前VA,则从内存中获取与所述当前VA对应的物理地址PA,包括: 若在所述历史信息库中查找到所述当前VA,则通知存储器管理单元MMU启动硬件页表查询,以从内存中获取与所述当前VA对应的PA。
7.一种旁路转换缓冲,其特征在于,包括: 查找模块,用于若当前访存操作发生旁路转换缓存TLB缺失异常,则在历史信息库中查找所述当前访存操作使用的当前虚拟地址VA,所述历史信息库中保存有历史访存操作过程中使用过的VA,所述历史访存操作为发生在所述当前访存操作之前的访存操作; 获取模块,用于若所述查找模块在所述历史信息库中查找到所述当前VA,则从内存中获取与所述当前VA对应的物理地址PA。
8.根据权利要求7所述的旁路转换缓冲,其特征在于,还包括: 记录模块,用于在执行所述历史访存操作时,在所述历史信息库中记录所述历史访存操作过程中使用的VA。
9.根据权利要求8所述的旁路转换缓冲,其特征在于,所述记录模块包括: 第一记录单元,用于利用布隆过滤器在所述历史信息库中记录所述历史访存操作过程中使用的VA。
10.根据权利要求8所述的旁路转换缓冲,其特征在于,所述记录模块包括: 第二记录单元,用于利用环形缓存在所述历史信息库中记录所述历史访存操作过程中使用的VA。
11.根据权利要求7?10任一项所述的旁路转换缓冲,其特征在于,还包括: 判断模块,用于判断所述TLB缺失异常是否需要处理; 处理模块,用于若所述判断模块判断出所述TLB缺失异常需要处理,则记录所述当前VA与所述PA的对应关系; 丢弃模块,用于若所述判断模块判断出所述TLB缺失异常不需要处理,则丢弃所述PA。
12.根据权利要求7?11任一项所述的旁路转换缓冲,其特征在于,所述获取模块具体用于: 若在所述历史信息库中查找到所述当前VA,则通知存储器管理单元MMU启动硬件页表查询,以从内存中获取与所述当前VA对应的PA。
13.—种处理器,其特征在于,包括如权利要求7?12任一项所述的旁路转换缓冲。
【文档编号】G06F12/10GK104239236SQ201310239646
【公开日】2014年12月24日 申请日期:2013年6月17日 优先权日:2013年6月17日
【发明者】侯锐, 郭旭斌, 冯煜晶, 张科 申请人:华为技术有限公司, 中国科学院计算技术研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1