当前位置: 首页 > 专利查询>ARM有限公司专利>正文

电路和方法技术

技术编号:24090629 阅读:26 留言:0更新日期:2020-05-09 07:54
本公开涉及电路和方法。电路包括:存储器电路,提供多个存储器位置;位置选择电路,用于根据数据项的属性与一个或多个存储器位置的集合之间的映射关系,来选择通过其访问数据项的一个或多个存储器位置的集合;位置选择电路被配置为在数据项由存储器电路新近存储并且所选择的一个或多个存储器位置的集合已经被一个或多个其他数据项占用时,发起针对该数据项的分配操作,该分配操作包括用新近存储的数据项替换一个或多个存储器位置的集合中的一个或多个其他数据项的至少一个子集的操作;以及检测器电路,用于检测数据访问冲突,其中,具有不同的相应属性的两个或更多个数据项的群组通过映射关系被映射到相同的一个或多个存储器位置的集合。

Circuits and methods

【技术实现步骤摘要】
电路和方法
本公开涉及电路和方法。
技术介绍
在一些数据处理应用中,所谓的分支预测被用于预测非线性程序流的实例,例如,来自有条件的程序流分支指令的结果(采用分支或不采用分支)。在一些示例中,分支预测过程在指令执行之前运行,以及时推测性地提供指令来避免所谓的饥饿,如果未及时提取(接下来要执行的)足够的指令来执行则可能发生。为了预测分支在给定程序代码部分中的存在,诸如所谓的分支目标缓冲器(BTB)之类的历史数据存储可以在特定程序计数器(PC)值处提供对先前采取的分支的指示。例如,代表先前采取的分支的数据项的属性,例如,PC值或其一部分,可以用作数据项与BTB中的存储位置之间映射的基础。
技术实现思路
在示例布置中,提供了电路,该电路包括:存储器电路,提供多个存储器位置;位置选择电路,用于根据数据项的属性与一个或多个存储器位置的集合之间的映射关系,来选择通过其访问数据项的一个或多个存储器位置的集合;位置选择电路被配置为在数据项由存储器电路新近存储并且所选择的一个或多个存储器位置的集合已经被一个或多个其他数据项占用时,发起针对该数据项的分配操作,该分配操作包括用新近存储的数据项替换一个或多个存储器位置的集合中的一个或多个其他数据项的至少一个子集的操作;以及检测器电路,用于检测数据访问冲突,在数据访问冲突中,具有不同的相应属性的两个或更多个数据项的群组通过映射关系被映射到一个或多个存储器位置的同一集合;位置选择电路被配置为响应于检测器电路检测到数据访问冲突,改变适用于两个或更多个数据项的群组中的至少一个数据项的属性的映射关系。在另一示例布置中,提供了一种缓存存储器,包括如上定义的电路;其中:数据项表示在相应存储地址处的较高等级存储器的内容的版本;并且数据项的属性至少部分取决于该数据项的存储地址。在另一示例布置中,提供了一种数据处理器,包括:处理元件,用于执行数据处理指令;以及提取电路,用于提取由提取队列中的条目定义的指令以供执行;以及预测电路,用于针对提取队列生成定义了要提取的一个或多个下一数据处理指令的条目;预测电路包括如上定义的电路,该电路提供分支目标存储装置以存储一个或多个数据项,每个数据项至少包括程序计数器值的一部分以及定义先前采用的分支指令的相应分支目标地址的信息,其中,数据项的属性至少取决于程序计数器值。在另一示例布置中,提供了电路,该电路包括:存储器装置,提供多个存储器位置;选择装置,用于根据数据项的属性与一个或多个存储器位置的集合之间的映射关系来选择通过其访问数据项的一个或多个存储器位置的集合;选择装置可操作来在数据项由存储器电路新近存储并且所选择的一个或多个存储器位置的集合已经被一个或多个其他数据项占用时,发起针对该数据项的分配操作,该分配操作包括用新近存储的数据项替换一个或多个存储器位置的集合中的一个或多个其他数据项的至少一个子集的操作;以及用于检测数据访问冲突的检测装置,在数据访问冲突中,具有不同的相应属性的两个或更多个数据项的群组通过映射关系被映射到一个或多个存储器位置的同一集合;选择装置可操作来:响应于检测装置检测到数据访问冲突,改变适用于两个或更多个数据项的群组中的至少一个数据项的属性的映射关系。在另一示例布置中,提供了一种方法,包括:根据数据项的属性与一个或多个存储器位置的集合之间的映射关系从多个存储器位置选择通过其访问数据项的一个或多个存储器位置的集合;在数据项由存储器电路新近存储并且所选择的一个或多个存储器位置的集合已经被一个或多个其他数据项占用时,发起针对该数据项的分配操作,该分配操作包括用新近存储的数据项替换一个或多个存储器位置的集合中的一个或多个其他数据项的至少一个子集的操作;以及检测数据访问冲突,在数据访问冲突中,具有不同的相应属性的两个或更多个数据项的群组通过映射关系被映射到一个或多个存储器位置的同一集合;响应于检测到数据访问冲突,改变适用于两个或更多个数据项的群组中的至少一个数据项的属性的映射关系。本技术的其他各个方面和特征由所附权利要求限定。附图说明将参考如在附图中图示的本技术的实施例仅通过示例的方式来进一步描述本技术,其中:图1示意性地示出了数据处理电路的示例;图2示意性地示出了一系列数据处理指令;图3示意性地示出了预测电路;图4示意性地示出了寻址信息的生成;图5和图6示意性地示出了分支目标缓冲器;图7示意性地示出了混叠(aliasing)监测;图8、图9A和图9B示意性地示出了映射函数的变化;图10示意性地示出了标签生成;图11示意性地示出了数据处理器;以及图12是示出方法的示意性流程图。具体实施方式图1是数据处理电路100的示意性示例,该数据处理电路100包括用于执行程序代码指令的处理元件(PE)110、用于从存储器和/或缓存130(例如,指令缓存)提取包含用于执行的指令的块的提取电路120。由提取队列140定义要提取的块。数据处理电路还包括预测电路150,用于预测将提取的一个或多个下一块,并将预测的下一块作为提取队列条目添加到提取队列140。预测电路150参考分支目标存储装置(至少包括分支目标缓冲器(BTB)160)和分支预测缓冲器(BPB)170。为附图的清楚起见它们被分开绘制,但它们可以视为预测电路150的一部分。在指令是分支指令的情况下,BTB160提供将要执行的指令的程序计数器(PC)值与相关联的分支目标进行关联的信息。BPB170存储关于分支指令的先前实例的结果(采用分支或未采用分支)的历史数据,该历史数据允许预测电路150得出对采用还是不采用由BTB160指示的特定分支指令的预测。预测电路150可以使用各种机制来预测预期分支指令的“采用”或“未采用”状态。在US15/806,605和https://en.wikipedia.org/wiki/Branch_predictor中提供了这种技术的示例,其中的每一个的内容通过引用合并于此。预测电路150使用这种技术来预测要提取的程序代码的块(或部分、区组(granule)、甚至在极端示例中为各个指令),并基于先进先出来将标识这种块的数据添加到提取队列140。提取电路120以相同的基础从提取队列140中检索这种数据(也就是说,提取电路120检索在提取队列140中最近添加的一个或多个条目),并发起提取由这些条目指示的块。所需的块可能在缓存130中,或者可能需要从主存储器或更高等级的缓存(图1中未示出)中检索。在适当的时候,处理元件110执行所提取的程序代码块。一般而言,该系统旨在其执行之前提取程序代码,使处理本身不会因缺乏要执行的代码而无法保持。因此,在这方面,提取是推测性的并且单纯基于预测电路所做的预测。当相关的分支指令最终被执行或解决时,分支预测结果将被证明是正确的或本文档来自技高网...

【技术保护点】
1.一种电路,包括:/n存储器电路,提供多个存储器位置;/n位置选择电路,用于根据数据项的属性与一个或多个存储器位置的集合之间的映射关系,来选择通过其访问所述数据项的所述一个或多个存储器位置的集合;/n所述位置选择电路被配置为在数据项由所述存储器电路新近存储并且所选择的一个或多个存储器位置的集合已经被一个或多个其他数据项占用时,发起针对所述数据项的分配操作,所述分配操作包括用新近存储的数据项替换所述一个或多个存储器位置的集合中的所述一个或多个其他数据项的至少一个子集的操作;以及/n检测器电路,用于检测数据访问冲突,在所述数据访问冲突中,具有不同的相应属性的两个或更多个数据项的群组通过所述映射关系被映射到一个或多个存储器位置的同一集合;/n所述位置选择电路被配置为响应于所述检测器电路检测到数据访问冲突,改变适用于所述两个或更多个数据项的群组中的至少一个数据项的所述属性的所述映射关系。/n

【技术特征摘要】
20181030 GB 1817689.11.一种电路,包括:
存储器电路,提供多个存储器位置;
位置选择电路,用于根据数据项的属性与一个或多个存储器位置的集合之间的映射关系,来选择通过其访问所述数据项的所述一个或多个存储器位置的集合;
所述位置选择电路被配置为在数据项由所述存储器电路新近存储并且所选择的一个或多个存储器位置的集合已经被一个或多个其他数据项占用时,发起针对所述数据项的分配操作,所述分配操作包括用新近存储的数据项替换所述一个或多个存储器位置的集合中的所述一个或多个其他数据项的至少一个子集的操作;以及
检测器电路,用于检测数据访问冲突,在所述数据访问冲突中,具有不同的相应属性的两个或更多个数据项的群组通过所述映射关系被映射到一个或多个存储器位置的同一集合;
所述位置选择电路被配置为响应于所述检测器电路检测到数据访问冲突,改变适用于所述两个或更多个数据项的群组中的至少一个数据项的所述属性的所述映射关系。


2.根据权利要求1所述的电路,其中,所述检测器电路被配置为响应于所述位置选择电路针对给定数据项执行至少预定数量的连续分配操作来检测数据访问冲突。


3.根据权利要求2所述的电路,其中,所述位置选择电路被配置为改变适用于至少所述给定数据项的所述属性的所述映射关系。


4.根据权利要求1所述的电路,其中,所述检测器电路被配置为改变与从由以下各项组成的列表中选择的数据项相关联的指示符数据的状态:
(i)所述位置选择电路针对其已经改变了所述映射关系的数据项;以及
(ii)被检测为针对其已经检测到数据访问冲突的一个或多个数据项的群组的一部分的数据项。


5.根据权利要求4所述的电路,其中,所述位置选择电路被配置为通过将散列函数应用于数据项的所述属性来选择用于所述数据项的一个或多个存储器位置的集合。


6.根据权利要求5所述的电路,其中,所述位置选择电路被配置为将所述散列函数应用于所述属性和所述指示符数据的组合。


7.根据权利要求4所述的电路,其中,所述检测器电路被配置为禁止对与针对其已经检测到数据访问冲突的所述数据项相关联的所述指示符数据的进一步改变,直到所述位置选择电路已经执行了至少预定数量的后续分配操作为止。


8.根据权利要求1所述的电路,其中,所述存储器位置的集合包括两个或更多个存储器位置。


9.一种缓存存储...

【专利技术属性】
技术研发人员:胡德哈法·布兹古鲁纪尧姆·博尔贝内斯艾迪·拉皮雷吕克·俄里翁
申请(专利权)人:ARM有限公司
类型:发明
国别省市:英国;GB

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1