掌桥专利:专业的专利平台
掌桥专利
首页

一种数据处理方法、装置、电子设备及存储介质

文献发布时间:2023-06-19 16:11:11



技术领域

本公开涉及计算机技术领域,尤其涉及一种数据处理方法、装置、电子设备及存储介质。

背景技术

为了提升处理器的处理效率,会采用分支预测的方式,在处理器的处理单元评估分支指令之前,沿着预测的分支推测性地执行后续指令;然而分支预测的过程中,存在较大的预测期缓存访问,引起较高的功耗开销。

发明内容

本公开提供了一种数据处理方法、装置、电子设备及存储介质,以至少解决现有技术中存在的以上技术问题。

根据本公开的第一方面,提供一种数据处理方法,包括:

确定第一时间区间内方向预测器包括的至少一个预测表的状态;

响应于所述至少一个预测表中第一预测表的状态为休眠状态,则基于所述方向预测器进行预测时,不访问所述第一预测表;

其中,预测表的状态包括激活状态或休眠状态;所述激活状态表征第一时间区间内预测表满足输出预测结果、更新命中或更新分配至少之一;所述休眠状态表征第一时间区间内预测表未满足输出预测结果、更新命中和更新分配。

上述方案中,所述确定第一时间区间内方向预测器包括的至少一个预测表的状态,包括:

基于第一时间区间内至少一个预测访问信息对应的预测访问结果,确认所述方向预测器包括的至少一个预测表的状态。

上述方案中,所述基于第一时间区间内至少一个预测访问信息对应的预测访问结果,确认所述方向预测器包括的至少一个预测表的状态,包括:

响应于所述第一时间区间内,至少一个预测表中第二预测表基于至少一个预测访问信息中任一个预测访问信息输出的历史标签,与所述第二预测表基于至少一个预测访问信息中任一个预测访问信息输出的预测标签相同,则确认所述第二预测表满足输出预测结果;

或者,响应于所述第一时间区间内,所述第二预测表基于所述至少一个预测访问信息中全部预测访问信息输出的历史标签,与所述第二预测表基于至少一个预测访问信息中任一个预测访问信息输出的预测标签不相同,则确认所述第二预测表未满足输出预测结果。

上述方案中,所述基于第一时间区间内,至少一个预测访问信息对应的预测结果,确认所述方向预测器包括的至少一个预测表的状态,包括:

响应于所述第一时间区间内,所述至少一个预测表中第三预测表和第四预测表均满足输出预测结果,则确认所述第三预测表和第四预测表中,表号大的预测表满足输出预测结果,和/或,确认所述表号大的预测表输出的预测访问结果为预测结果;

或者,响应于所述第一时间区间内,所述至少一个预测表中第二类型预测表均未满足输出预测结果,则确认第一类型预测表满足输出预测结果,和/或,确认所述第一类型预测表输出的预测访问结果为预测结果;

其中,所述至少一个预测表包括第一类型预测表和第二类型预测表;所述第一类型预测表的表号最小,索引包括低阶地址;所述第二类型预测表的表号呈阶梯式增加,索引包括低阶地址和/或分支路径历史。

上述方案中,所述确定第一时间区间内方向预测器包括的至少一个预测表的状态,包括:

基于第一时间区间内至少一个更新访问信息对应的更新访问结果,确认所述方向预测器包括的至少一个预测表的状态。

上述方案中,所述基于第一时间区间内至少一个更新访问信息对应的更新访问结果,确认所述方向预测器包括的至少一个预测表的状态,包括:

响应于所述第一时间区间内,至少一个预测表中第五预测表基于至少一个更新访问信息中任一个更新访问信息输出的历史标签,与所述第五预测表基于至少一个更新访问信息中任一个更新访问信息输出的更新标签相同,则确认所述第五预测表满足更新命中;

或者,响应于所述第一时间区间内,所述第五预测表基于至少一个更新访问信息中任一个更新访问信息输出的历史标签,与所述第五预测表基于所述至少一个更新访问信息中任一个更新访问信息输出的更新标签不相同,则确认所述第五预测表未满足更新命中。

上述方案中,所述基于第一时间区间内至少一个更新访问信息对应的更新访问结果,确认所述方向预测器包括的至少一个预测表的状态,包括:

响应于所述第一时间区间内,确认所述至少一个预测表中,第六预测表和第七预测表均满足更新命中,则确认所述第六预测表和第七预测表中,表号大的预测表满足更新命中;

或者,响应于所述第一时间区间内,所述至少一个预测表中第二类型预测表均未满足更新命中,则确认第一类型预测表满足更新命中;

其中,所述至少一个预测表包括第一类型预测表和第二类型预测表;其中所述第一类型预测表的表号最小,索引包括低阶地址;所述第二类型预测表的表号阶梯式增加,索引包括低阶地址和/或分支路径历史。

上述方案中,所述确定第一时间区间内至少一个更新访问信息对应的更新访问结果,确认所述方向预测器包括的至少一个预测表的状态,包括:

确认表号大于满足更新命中的预测表中,未满足更新命中且表号最小的预测表满足更新分配。

上述方案中,所述方法还包括:

对满足更新命中的预测表进行更新,和/或,对满足更新分配的预测表进行分配;以使待更新的分支信息存储至所述满足更新命中的预测表和/或满足更新分配的预测表的缓存中。

上述方案中,所述方法还包括:

响应于所述方向预测器输出的预测结果为预测失败,则将所述至少一个预测表中全部处于休眠状态的预测表转换为激活状态。

根据本公开的第二方面,提供了一种数据处理装置,包括:

确定单元,用于确定第一时间区间内方向预测器包括的至少一个预测表的状态;

预测单元,用于响应于所述至少一个预测表中第一预测表的状态为休眠状态,则基于所述方向预测器进行预测时,不访问所述第一预测表;

其中,预测表的状态包括激活状态或休眠状态;所述激活状态表征第一时间区间内预测表满足输出预测结果、更新命中或更新分配至少之一;所述休眠状态表征第一时间区间内预测表未满足输出预测结果、更新命中和更新分配。

根据本公开的第三方面,提供了一种电子设备,包括:

至少一个处理器;以及

与所述至少一个处理器通信连接的存储器;其中,

所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行本公开所述的方法。

根据本公开的第四方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行本公开所述的方法。

本公开的数据处理方法,通过确定第一时间区间内方向预测器包括的至少一个预测表的状态;响应于所述至少一个预测表中第一预测表的状态为休眠状态,则基于所述方向预测器进行预测时,不访问所述第一预测表;其中,预测表的状态包括激活状态或休眠状态;所述激活状态表征第一时间区间内预测表满足输出预测结果、更新命中或更新分配至少之一;所述休眠状态表征第一时间区间内预测表未满足输出预测结果、更新命中和更新分配;由于预测表通过静态随机存取存储器(Static Random-Access Memory,SRAM)实现,其工作时的功率很高,通过本公开在预测过程中不访问处于休眠状态的预测表,减少对于SRAM的访问,从而降低预测器的功耗。

应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。

附图说明

通过参考附图阅读下文的详细描述,本公开示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本公开的若干实施方式,其中:

在附图中,相同或对应的标号表示相同或对应的部分。

图1示出了本公开实施例提供的数据处理方法的一种可选流程示意图;

图2示出了本公开实施例提供的数据处理方法的另一种可选流程示意图;

图3示出了本公开实施例提供的数据处理装置的一种可选结构示意图;

图4示出了本公开实施例提供的方向预测器的可选结构示意图;

图5示出了本公开实施例提供的数据处理方法的又一种可选流程示意图;

图6示出了本公开实施例提供的数据处理装置的另一种可选结构示意图;

图7是本公开实施例提供的电子设备的一种组成结构示意图。

具体实施方式

为使本公开的目的、特征、优点能够更加的明显和易懂,下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而非全部实施例。基于本公开中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。

由于方向预测器由多个并行访问的预测表构成(即多个SRAM),会给每次的预测访问带来较大的功耗开销。为降低方向预测器整体的处理功耗,本公开实施例中,通过检测方向预测器在一段周期内的状态,即根据预测访问时预测表是否提供最终预测结果以及更新访问时预测表是否命中或被分配,来判断该预测表是否存在有价值的历史信息,如果是,则该预测表可以继续正常访问(处于激活状态);如果否,即表明该预测表已经长时间相对价值较低或无价值,则可以将该预测表进入休眠状态(临时休眠状态),针对处于休眠状态的预测表设定预测访问权限,以实现减少功耗的效果。一旦某次更新访问发现处于休眠状态的预测表中存在有价值的信息,就可以重新启用该预测表,即将预测表的状态从“休眠状态”切换到“激活状态”,使得该预测表继续在方向预测器中提供预测结果。随着程序执行,分支预测器(方向预测器)中的预测表可以根据自身的价值输出,在“休眠状态”和“激活状态”中切换,形成在预测访问时自适应的功耗控制。

图1示出了本公开实施例提供的数据处理方法的一种可选流程示意图,将根据各个步骤进行说明。

步骤S101,确定第一时间区间内方向预测器包括的至少一个预测表的状态。

在一些实施例中,预测表的状态包括激活状态或休眠状态;所述激活状态表征第一时间区间内预测表满足输出预测结果、更新命中或更新分配至少之一;所述休眠状态表征第一时间区间内预测表未满足输出预测结果、更新命中和更新分配。

在一些实施例中,数据处理装置(以下简称装置)基于第一时间区间内至少一个预测访问信息对应的预测访问结果,确认所述方向预测器包括的至少一个预测表的状态,和/或,基于第一时间区间内至少一个更新访问信息对应的更新访问结果,确认所述方向预测器包括的至少一个预测表的状态;其中,所述第一时间区间可以基于实际需求或实验结果确定,本公开不作具体限制。

具体实施时,响应于第一时间区间内,所述装置确认所述至少一个预测表基于所述至少一个预测访问信息对应的预测访问结果,若所述预测访问结果为最终输出的预测结果,则确认对应的预测表为激活状态;或者,若所述预测访问结果不是最终输出预测结果,则确认对应的预测表为休眠状态。

或者,具体实施时,响应于第一时间区间内,所述装置确认所述至少一个预测表基于至少一个更新访问信息对应的更新访问结果,若所述更新访问结果为满足更新命中,则确认对应的预测表为激活状态;或者,若所述更新访问结果为不满足更新命中,则确认对应的预测表为休眠状态。其中,所述更新命中可以包括基于更新访问信息输出的历史标签,与基于更新访问信息生成的更新标签相同。

再或者,具体实施时,所述装置确认表号大于满足更新命中的预测表中,未满足更新命中且表号最小的预测表满足更新分配,进而确定满足更新分配的预测表处于激活状态。

例如,假设方向预测器中包括预测表T0~预测表T5,共6个预测表,其中预测表T3为满足更新命中的预测表,预测表T4和预测表T5未满足更新命中;由于预测表T4的表号小于预测表T5的表号,则确定预测表T4为满足更新分配的预测表,进而确定预测表T4处于激活状态。

在一些可选实施例中,所述装置还可以对满足更新命中的预测表进行更新,和/或,对满足更新分配的预测表进行分配;以使待更新的分支信息存储至所述满足更新命中的预测表和/或满足更新分配的预测表的缓存中。

步骤S102,响应于所述至少一个预测表中第一预测表的状态为休眠状态,则基于所述方向预测器进行预测时,不访问所述第一预测表。

在一些实施例中,所述装置响应于所述至少一个预测表中第一预测表的状态为休眠状态,则基于所述方向预测器进行预测时,不访问所述第一预测表;或者,所述装置响应于所述至少一个预测表中第一预测表的状态为激活状态,则基于所述方向预测器进行预测时,访问所述第一预测表。可选的,其他的预测流程与相关技术相同,本公开不再重复赘述。

在一些实施例中,步骤S101至步骤S102可以在每一次执行预测访问之前执行,也可以周期性执行,本公开不作具体限制。

在一些实施例中,所述装置还可以响应于所述方向预测器输出的预测结果为预测失败,则将所述至少一个预测表中全部处于休眠状态的预测表转换为激活状态。预测失败说明当前处于激活状态的预测表中不存在有价值的历史信息,相应的,有价值的历史信息存在于处于休眠状态的预测表中,因此,需要将全部处于休眠状态的预测表转换为激活状态以实现更为准确的预测;在一段时间(或计数器确定预测一定数值之后),将满足条件(未输出预测结果、未更新命中、未更新分配)的预测表转为休眠状态。

如此,通过本公开实施例提供的数据处理方法,通过确定第一时间区间内方向预测器包括的至少一个预测表的状态;响应于所述至少一个预测表中第一预测表的状态为休眠状态,则基于所述方向预测器进行预测时,不访问所述第一预测表;由于预测表通过SRAM实现,其工作时的功率很高,通过本公开在预测过程中不访问处于休眠状态的预测表,减少对于SRAM的访问,从而降低预测器的功耗。

在一些实施例中,所述装置可以通过步骤S101a至步骤S101b确认第一时间区间内方向预测器包括的至少一个预测表的状态(即步骤S101)。

图2示出了本公开实施例提供的数据处理方法的另一种可选流程示意图,将根据各个步骤进行说明。

步骤S101a,基于第一时间区间内至少一个预测访问信息对应的预测访问结果,确认所述方向预测器包括的至少一个预测表的状态。

在一些实施例中,所述装置响应于所述第一时间区间内,至少一个预测表中第二预测表基于至少一个预测访问信息中任一个预测访问信息输出的历史标签,与所述第二预测表基于至少一个预测访问信息中任一个预测访问信息输出的预测标签相同,则确认所述第二预测表满足预测命中;或者,响应于所述第一时间区间内,所述第二预测表基于所述至少一个预测访问信息中全部预测访问信息输出的历史标签,与所述第二预测表基于至少一个预测访问信息中任一个预测访问信息输出的预测标签不相同,则确认所述第二预测表未满足预测命中。

其中,所述预测访问结果中包括历史标签(tag)、分支方向模式计数器(pattern_counter)和有效权重信息(use)。所述历史标签用于判断第二预测表是否命中,历史标签和预测标签相等就表示该预测表命中;预测标签是指当对第二预测表发起预测访问,同时,将当前(预测阶段)PC和THR进行hash操作,生成预测标签,用于判断预测表是否命中。

例如,预测表T1预测访问后输出的历史标签和访问时的预测标签相等,即表示预测表T1命中;其中,“预测访问后”和“访问时”可以是受限于流水线设计强调时序对齐而产生的描述,抽象出来实质是同时并行处理了两件事,1)对预测表进行预测访问获取历史标签;2)将程序计数器(又称指令指针)(Program Counter,PC)和THR进行hash生成预测标签。

在另一些实施例中,所述装置响应于所述第一时间区间内,所述至少一个预测表中第三预测表和第四预测表均满足预测命中,则确认所述第三预测表和第四预测表中,表号大的预测表输出的预测访问结果为预测结果;或者,响应于所述第一时间区间内,所述至少一个预测表中第二类型预测表均未满足预测命中,则确认第一类型预测表满足预测命中,和/或,确认所述第一类型预测表输出的预测访问结果为预测结果;其中,所述至少一个预测表包括第一类型预测表和第二类型预测表;所述第一类型预测表的表号最小,索引包括低阶地址;所述第二类型预测表的表号呈阶梯式增加,索引包括低阶地址和/或分支路径历史。

具体的,假设所述方向预测器中包括6个预测表,即预测表T0~预测表T5,预测表T0索引为PC的低阶地址,预测表T1~预测表T5索引为PC的低阶地址和分支路径历史形成的索引,且预测表T1~预测表T5使用的历史长度(可以是分支路径历史长度)不同,表号越大使用的历史长度越长(如预测表T5的表号最大,则其使用的历史长度最长)。当预测表T1~预测表T5都没有预测命中时,则最终的预测结果来自T0;当T1~T5存在预测命中时,选表号最大的预测访问结果作为最终的预测结果(预测命中具体是指预测表T1预测访问后输出的历史标签和访问时的预测标签相等,即表示预测表T1命中,其它预测表T2/T3/T4/T5同理),确认选表号大预测表的预测访问结果为最终的预测结果,是由于表号大的预测表的历史信息多可靠性高。进一步,确认第一时间区间内输出预测结果的预测表处于激活状态,其余未输出预测结果的预测表基于更新访问结果确定状态。

步骤S101b,基于第一时间区间内至少一个更新访问信息对应的更新访问结果,确认所述方向预测器包括的至少一个预测表的状态。

在一些实施例中,所述装置响应于所述第一时间区间内,至少一个预测表中第五预测表基于至少一个更新访问信息中任一个更新访问信息输出的历史标签,与所述第五预测表基于至少一个更新访问信息中任一个更新访问信息输出的更新标签相同,则确认所述第五预测表满足更新命中;或者,响应于所述第一时间区间内,所述第五预测表基于至少一个更新访问信息中任一个更新访问信息输出的历史标签,与所述第五预测表基于所述至少一个更新访问信息中任一个更新访问信息输出的更新标签不相同,则确认所述第五预测表未满足更新命中。

其中,更新访问结果中包括历史标签(tag);当对第五预测表发起更新访问同时,将当前(更新阶段)PC和THR进行hash操作,生成更新标签,用于判断预测表是否命中,历史标签和更新标签相等就表示该预测表命中。

在另一些实施例中,所述装置响应于所述第一时间区间内,确认所述至少一个预测表中,第六预测表和第七预测表均满足更新命中,则确认所述第六预测表和第七预测表中,表号大的预测表满足更新命中;或者,响应于所述第一时间区间内,所述至少一个预测表中第二类型预测表均未满足更新命中,则确认第一类型预测表满足更新命中。

在一些实施例中,所述装置确认表号大于满足更新命中的预测表中,未满足更新命中且表号最小的预测表满足更新分配。

具体的,更新访问时,会先进行更新读访问,与预测访问类似,当预测表T1~预测表T5都没有更新命中时,则最终的会选择预测表T0进行更新,同时会在未命中的表中选择表号最小的预测表进行分配(更新命中是指预测表T1更新读访问后输出的历史标签和访问时的更新标签相等,即表示预测表T1命中,其他表T2/T3/T4/T5同理);当预测表T1~预测表T5存在更新命中时,选表号最大的预测表进行更新,同时会在大于更新的表的其他表中选择最小的表进行分配,例如:仅更新命中了预测表T2、预测表T3,则更新预测表T3(预测表T3更新命中),在预测表T4和预测表T5中选预测表T4进行分配(预测表T4更新分配)。

进一步,更新(更新命中)和分配(更新分配)会触发更新写访问,将分支相关信息写到对应的预测表中。

具体的,分支相关信息是指tag+pattern_counter+use,对应的预测表是指选取的更新(更新命中)的预测表(也可以简称为表)和分配(更新分配)的预测表。分支的更新过程分三步:更新读、更新修改和更新写(更新读>>更新修改>>更新写);其中,更新读:通过该步骤获取到各个预测表的更新访问结果,选出命中预测表中表号最大的预测表进行后续更新操作,同时在大于最大命中预测表号的其他预测表中,选取表号最小的表进行后续分配操作。更新修改:分为两个,1)将待更新操作的预测表中的pattern_counter和use根据预测正误进行饱和计数,tag保持不变(若pattern_counter解析出的预测方向和实际方向一致,即预测正确,将pattern_counter自增1,反之pattern_counter自减1;若命中且表号最大的预测表的预测方向正确,而命中且表号次大的预测表的预测方向错误,将use自增1,反之use自减1;2)将待分配操作的预测表的pattern_counter和use恢复为初始值,将用更新标签将tag进行覆写。

在一些实施例中,休眠状态是指很长时间(第一时间区间,或计数器满足一定数值)预测表在更新时未命中或未分配,在预测时没有提供最终的预测结果。

当某预测表很长时间(如第一时间区间)没有提供最终的预测结果,说明有更长历史相关的预测表提供了更可靠的预测结果或者该预测表没有记录过该分支,这是该预测表可以“休眠”的理由之一。

当某预测表很长时间没有发生更新命中,说明该预测表没有记录该分支或者即便记录了也不是最可靠的预测表,也不需要由它来提供预测,这是该预测表可以“休眠”的理由之二。

当某预测表很长时间没有发生分配,说明该预测表历史长度不够记录不下该分支或者历史长度够也能记录但是当前保存了更有价值的分支信息不能被替换,这是该预测表可以“休眠”的理由之三。

在连续的几千次预测或者第一时间区间内的过程中(可通过对每个预测表设置对应计数器来统计该事务的发生频率,并设置阈值来实现“休眠”或“激活”的进入),上述的三种场景始终成立,则该预测表就可以进入“休眠态”,如果上述场景持续成立,那就一直保持“休眠态”,否则就结束“休眠态”,下一次预测时就被“激活”。“休眠”仅指对于预测访问添加限制,更新访问不受影响。而且此限制完全是物理操作,不需要在程序人为干预。

图3示出了本公开实施例提供的数据处理装置的一种可选结构示意图;图4示出了本公开实施例提供的方向预测器的可选结构示意图,将根据各个部分进行说明。

预测访问控制单元501, 用于向方向预测器503发起预测访问(发送预测访问信息),将访问预测表(SRAM)所需的片选信息、索引地址等,通过510传输到方向预测器503;还负责接收访问统计仲裁单元504发送的状态信息,便于后续访问的控制(如访问处于激活状态的预测表,不访问处于休眠状态的预测表);其中,所述状态信息包括方向预测器503中各预测表的状态。

更新访问控制单元502,用于发起对方向预测器503的更新读访问(向方向预测器503发送更新访问信息),将访问预测表(SRAM)所需的片选信息、索引地址等,通过511传输到方向预测器503;用于接收来自访问统计仲裁单元504的写更新信息,将所述写更新信息格式化后发起对方向预测器503的更新写访问,将所需的片选信息、索引地址、写数据等,通过511传输到方向预测器503,完成对预测表(SRAM)的写操作。

510为预测访问控制单元501与方向预测器503的通信接口,511为更新访问控制单元502与方向预测器503的通信接口。

方向预测器503,用于接收来自预测访问控制单元501的预测访问信息和更新访问控制单元502的更新访问信息,并将访问结果通过512或513传输到访问统计仲裁单元504,进行统计仲裁;还用于接收来自更新访问控制单元502的更新写访问,将待更新的分支信息写入方向预测器503的缓存中;需要说明的是,方向预测器503由多个预测表构成(即预测表T0~预测表T5,均通过SRAM实现,深度一致),其中预测表T0是PC低阶地址索引,每项保存每个分支的模式历史;而预测表T1~预测表T5是PC低阶地址和全局路径历史组成的索引,每项保存分支的历史标签(即PC低阶地址和全局路径历史生成的历史标签,用于预测访问或更新访问时的匹配条件)和分支模式历史。预测表T0不会进入休眠状态,只有预测表T1~预测表T5会进入休眠状态。预测表的表号越大使用的分支历史长度越长,预测的跳转结果越可信。

512和513为方向预测器503与访问统计仲裁单元504的通信接口。

访问统计仲裁单元504,用于通过512接收预测访问结果,以及通过513接收更新访问结果(更新访问读结果);根据预测访问结果,确认最终的预测结果;根据更新访问结果,确认分支更新信息,通过515传输给更新访问控制单元502,使得更新访问控制单元502向方向预测器503发起更新写访问(更新访问控制单元502向方向预测器503发送更新访问信息)。通过预测访问结果或更新访问结果,仲裁出预测表是否存在有价值的信息,若确定预测表存在有价值的信息(预测表满足提供预测结果、更新命中或更新分配),则确认预测表处于激活状态;或者,若确定预测表不存在有价值的信息(预测表不满足提供预测结果、更新命中或更新分配),则确认预测表处于休眠状态;通过514将预测表的状态传输给预测访问控制单元501,以便后续的预测访问。

514为预测访问控制单元501与访问统计仲裁单元504的通信接口,515为更新访问控制单元502与访问统计仲裁单元504的通信接口。

接下来,基于上述所述的数据处理装置的结构,进一步说明所述数据处理装置的处理流程。图5示出了本公开实施例提供的数据处理方法的又一种可选流程示意图,将根据各个步骤进行说明。

步骤S301,预测访问控制单元基于预测表的状态向方向预测器发起预测访问。

在一些实施例中,所述预测访问控制单元接收访问统计仲裁单元发送的预测表的状态;基于所述预测表的状态确认处于激活状态的预测表,以及确认访问所述处于激活状态的预测表所需的片选信息和/或索引地址,并将包括所述片选信息和/或索引地址的预测访问信息发送至所述方向预测器。

步骤S302,更新访问控制单元向方向预测器发起更新访问。

在一些实施例中,所述更新访问控制单元确认访问方向预测器对应的片选信息和/或索引地址,并将包括所述片选信息和/或索引地址的更新访问信息发送至所述方向预测器。

步骤S303,方向预测器接收预测访问信息和/或更新访问信息。

在一些实施例中,所述方向预测器接收预测访问信息,并基于所述预测访问信息生成至少一个预测访问结果;将所述预测访问结果发送至访问统计仲裁单元。

在另一些实施例中,所述方向预测器接收更新访问信息(更新写访问),并基于所述更新访问信息生成更新访问结果;将所述更新访问结果发送至访问统计仲裁单元。

步骤S304,访问统计仲裁单元确定第一时间区间内方向预测器包括的至少一个预测表的状态。

在一些实施例中,所述访问统计仲裁单元接收预测访问结果和更新访问结果,并基于所述预测访问结果和更新访问结果确定第一时间区间内方向预测器包括的至少一个预测表的状态。

具体的,所述访问统计仲裁单元可以基于步骤S101、步骤S101a至步骤S101b确定第一时间区间内方向预测器包括的至少一个预测表的状态,本公开不再重复赘述。

在一些实施例中,所述访问统计仲裁单元确认所述至少一个预测表的状态之后,还可以将所述至少一个预测表的状态发送至所述预测访问控制单元。

在另一些实施例中,所述访问统计仲裁单元基于更新访问结果,向所述更新访问控制单元发送分支更新信息,以使所述更新访问控制单元发起更新写访问,对满足更新命中的预测表进行更新,和/或,对满足更新分配的预测表进行分配;以使待更新的分支信息存储至所述满足更新命中的预测表和/或满足更新分配的预测表的缓存中。

如此,通过本公开实施例提供的数据处理方法,由于预测表通过SRAM实现,其工作时的功率很高,通过本公开在预测过程中不访问处于休眠状态的预测表,减少对于SRAM的访问,从而降低预测器的功耗。

图6示出了本公开实施例提供的数据处理装置的另一种可选结构示意图,将根据各个部分进行说明。

在一些实施例中,数据处理装置500包括确定单元506和预测单元507。

确定单元506,用于确定第一时间区间内方向预测器包括的至少一个预测表的状态;

预测单元507,用于响应于所述至少一个预测表中第一预测表的状态为休眠状态,则基于所述方向预测器进行预测时,不访问所述第一预测表;

其中,预测表的状态包括激活状态或休眠状态;所述激活状态表征第一时间区间内预测表满足输出预测结果、更新命中或更新分配至少之一;所述休眠状态表征第一时间区间内预测表未满足输出预测结果、更新命中和更新分配。

所述确定单元506,具体用于基于第一时间区间内至少一个预测访问信息对应的预测访问结果,确认所述方向预测器包括的至少一个预测表的状态。

所述确定单元506,具体用于响应于所述第一时间区间内,至少一个预测表中第二预测表基于至少一个预测访问信息中任一个预测访问信息输出的历史标签,与所述第二预测表基于至少一个预测访问信息中任一个预测访问信息输出的预测标签相同,则确认所述第二预测表满足输出预测结果;

或者,响应于所述第一时间区间内,所述第二预测表基于所述至少一个预测访问信息中全部预测访问信息输出的历史标签,与所述第二预测表基于至少一个预测访问信息中任一个预测访问信息输出的预测标签不相同,则确认所述第二预测表未满足输出预测结果。

所述确定单元506,具体用于响应于所述第一时间区间内,所述至少一个预测表中第三预测表和第四预测表均满足输出预测结果,则确认所述第三预测表和第四预测表中,表号大的预测表输出的预测访问结果为预测结果;

或者,响应于所述第一时间区间内,所述至少一个预测表中第二类型预测表均未满足输出预测结果,则确认第一类型预测表满足输出预测结果,和/或,确认所述第一类型预测表输出的预测访问结果为预测结果;

其中,所述至少一个预测表包括第一类型预测表和第二类型预测表;所述第一类型预测表的表号最小,索引包括低阶地址;所述第二类型预测表的表号呈阶梯式增加,索引包括低阶地址和/或分支路径历史。

所述确定单元506,具体用于基于第一时间区间内至少一个更新访问信息对应的更新访问结果,确认所述方向预测器包括的至少一个预测表的状态。

所述确定单元506,具体用于响应于所述第一时间区间内,至少一个预测表中第五预测表基于至少一个更新访问信息中任一个更新访问信息输出的历史标签,与所述第五预测表基于至少一个更新访问信息中任一个更新访问信息输出的更新标签相同,则确认所述第五预测表满足更新命中;

或者,响应于所述第一时间区间内,所述第五预测表基于至少一个更新访问信息中任一个更新访问信息输出的历史标签,与所述第五预测表基于所述至少一个更新访问信息中任一个更新访问信息输出的更新标签不相同,则确认所述第五预测表未满足更新命中。

所述确定单元506,具体用于响应于所述第一时间区间内,确认所述至少一个预测表中,第六预测表和第七预测表均满足更新命中,则确认所述第六预测表和第七预测表中,表号大的预测表满足更新命中;

或者,响应于所述第一时间区间内,所述至少一个预测表中第二类型预测表均未满足更新命中,则确认第一类型预测表满足更新命中;

其中,所述至少一个预测表包括第一类型预测表和第二类型预测表;其中所述第一类型预测表的表号最小,索引包括低阶地址;所述第二类型预测表的表号阶梯式增加,索引包括低阶地址和/或分支路径历史。

所述确定单元506,具体用于确认表号大于满足更新命中的预测表中,未满足更新命中且表号最小的预测表满足更新分配。

在一些实施例中,所述数据处理装置500还可以包括更新单元508。

所述更新单元508,用于对满足更新命中的预测表进行更新,和/或,对满足更新分配的预测表进行分配;以使待更新的分支信息存储至所述满足更新命中的预测表和/或满足更新分配的预测表的缓存中。

所述确认单元,还用于响应于所述方向预测器输出的预测结果为预测失败,则将所述至少一个预测表中全部处于休眠状态的预测表转换为激活状态。

在一些可选实施例中,确定单元506的功能可以通过访问统计仲裁单元实现;预测单元507的功能可以通过方向预测器503实现,更新单元508可以通过更新访问控制单元503实现。

需要说明的是,自第一台通用电子计算机问世以来,计算机技术在几十年间取得了飞速的发展,计算机技术的飞速发展得益于计算机体系结构的改进以及计算机生产技术的发展。计算机生产技术对计算机技术的发展的贡献一直是稳定的;然而,由于计算机体系结构经历几十年的改进,使得计算机体系结构的改进空间愈发狭小,因此针对计算机体系结构的任意小的改进都将对处理器的性能和计算机技术的发展带来较明显的影响。

根据本公开的实施例,本公开还提供了一种电子设备和一种可读存储介质。

下面说明本公开实施例提供的电子设备的示例性应用,本公开实施例提供的电子设备可以实施为电子设备,所述电子设备可以是服务器或终端设备。

服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云计算服务的云服务器。终端设备可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。终端设备以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本公开实施例在此不做限制。

参见图7,图7是本公开实施例提供的电子设备400的一种组成结构示意图,图7所示的电子设备400包括:至少一个处理器410、存储器450、用户接口430和总线440;电子设备400中的各个组件通过总线440耦合在一起。可理解,总线440用于实现这些组件之间的连接通信。总线440除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图7中将各种总线都标为总线440。

处理器410可以是一种集成电路芯片,具有信号的处理能力,例如通用处理器、数字信号处理器(DSP,Digital Signal Processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。

用户接口430包括使得能够呈现媒体内容的一个或多个输出装置,包括一个或多个扬声器和/或一个或多个视觉显示屏。用户接口430还包括一个或多个输入装置,包括有助于用户输入的用户接口部件,比如键盘、鼠标、麦克风、触屏显示屏、摄像头、其他输入按钮和控件。

存储器450中存储有用于实现本公开实施例提供的数据处理方法的可执行指令,数据处理方法可由图3或图6所示的数据处理装置500实现;存储器450可以是可移除的,不可移除的或其组合。示例性的硬件设备包括固态存储器,硬盘驱动器,光盘驱动器等。存储器450可选地包括在物理位置上远离处理器 410的一个或多个存储设备。

在一些实施例中,存储器450能够存储数据以支持各种操作,这些数据的示例包括程序、模块和数据结构或者其子集或超集。

存储在存储器450中的数据处理装置500,其可以是程序和插件等形式的软件,包括以下软件模块:确定单元506、预测单元507以及更新单元508,这些模块是逻辑上的,因此根据所实现的功能可以进行任意的组合或进一步拆分。将在下文中说明各个模块的功能。

确定单元506,用于确定第一时间区间内方向预测器包括的至少一个预测表的状态;预测单元507,用于响应于所述至少一个预测表中第一预测表的状态为休眠状态,则基于所述方向预测器进行预测时,不访问所述第一预测表;其中,预测表的状态包括激活状态或休眠状态;所述激活状态表征第一时间区间内预测表满足输出预测结果、更新命中或更新分配至少之一;所述休眠状态表征第一时间区间内预测表未满足输出预测结果、更新命中和更新分配;所述更新单元508,用于对满足更新命中的预测表进行更新,和/或,对满足更新分配的预测表进行分配;以使待更新的分支信息存储至所述满足更新命中的预测表和/或满足更新分配的预测表的缓存中。

在一些实施例中,电子设备400还可以包括:

操作系统451,包括用于处理各种基本系统服务和执行硬件相关任务的系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务;

网络通信模块452,用于经由一个或多个(有线或无线)网络接口420到达其他计算设备,示例性的网络接口420包括:蓝牙、无线相容性认证(WiFi)、和通用串行总线(USB,Universal Serial Bus)等。

本公开实施例提供一种存储有可执行指令的计算机可读存储介质,其中存储有可执行指令,当可执行指令被处理器执行时,将引起处理器执行本公开实施例提供的数据处理方法,例如,如图1至图2、图5示出的数据处理方法。

在一些实施例中,计算机可读存储介质可以是FRAM、ROM、PROM、EPROM、EEPROM、闪存、磁表面存储器、光盘、或CD-ROM等存储器;也可以是包括上述存储器之一或任意组合的各种设备。

在一些实施例中,可执行指令可以采用程序、软件、软件模块、脚本或代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。

作为示例,可执行指令可被部署为在一个计算设备上执行,或者在位于一个地点的多个计算设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算设备上执行。

本公开实施例提供一种计算机程序产品,所述计算机程序产品包括计算机程序/指令,所述计算机程序/指令被处理器执行时实现本公开所述的数据处理方法。

以上,仅为本公开的实施例而已,并非用于限定本公开的保护范围。凡在本公开的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本公开的保护范围之内。

相关技术
  • 数据加密处理方法、数据解密处理方法、装置、电子设备及可读存储介质
  • 一种数据仓库数据处理方法、装置、电子设备及存储介质
技术分类

06120114731219