用于向量的加载存储流水线选择制造技术

技术编号:39398850 阅读:9 留言:0更新日期:2023-11-19 15:52
公开了用于向量的加载存储流水线选择的系统和方法。例如,用于执行指令的集成电路(例如,处理器)包括向存储器系统提供接口的L1高速缓存;连接到L1高速缓存的L2高速缓存,其与L1高速缓存实现高速缓存一致性协议;第一存储单元,其被配置为经由L1高速缓存向存储器系统写入数据;第二存储单元,其被配置为绕过L1高速缓存并且经由L2高速缓存将数据写入存储器系统;以及存储流水线选择电路系统,其被配置为:识别与具有向量自变量的存储指令的第一节拍相关联的地址;基于与存储指令的第一节拍相关联的地址,在第一存储单元和第二存储单元之间进行选择;以及将存储指令分派到所选择的存储单元。储单元。储单元。

【技术实现步骤摘要】
用于向量的加载存储流水线选择
[0001]相关申请的交叉引用
[0002]本申请要求于2022年5月12日提交的美国临时专利申请序列号63/341,051的优先权和权益,该申请的全部公开内容通过引用并入本文。


[0003]本公开涉及用于向量的加载存储流水线选择。

技术介绍

[0004]处理器可以被配置为执行向量指令,该向量指令在比能够在单个时钟周期中写入到存储器系统的数字位长的自变量上进行操作。用于向量的存储指令可以由存储单元或流水线在多个时钟周期上以一系列节拍(beat)来执行。
附图说明
[0005]当结合附图阅读时,从以下详细描述能够最好地理解本公开。应强调的是,根据惯例,附图的各种特征未按比例绘制。相反,为了清楚,各种特征的尺寸被任意地扩大或缩小。
[0006]图1是用于以向量的加载存储流水线选择来执行指令的集成电路的示例的框图。
[0007]图2是用于向量的加载存储流水线选择的预测器电路系统的示例的框图。
[0008]图3是用于以向量的加载存储流水线选择来执行指令的技术的示例的流程图。
[0009]图4是用于通过在内部高速缓存中检查与和向量指令的第一节拍相关联的地址相匹配的标签来选择加载存储流水线的技术的示例的流程图。
[0010]图5是用于使用预测器来选择加载存储流水线的技术的示例的流程图。
[0011]图6是用于基于地址是否映射到输入/输出来选择加载存储流水线的技术的示例的流程图。
[0012]图7是用于基于加载存储流水线中的匹配目标地址来选择加载存储流水线的技术的示例的流程图。
[0013]图8是用于基于加载存储流水线中的匹配目标地址来延迟指令的分派的技术的示例的流程图。
[0014]图9是用于促进集成电路的生成和制造的系统的示例的框图。
[0015]图10是用于促进集成电路的生成的系统的示例的框图。
具体实施方式
[0016]概述
[0017]本文公开了用于向量的加载存储流水线选择的实施方式。一些实施方式可以用于比先前已知的解决方案更有效地增加来自处理器(例如,诸如x86的CPU、ARM和/或RISC

V的CPU)中的处理器核心的存储器带宽。
[0018]被配置为执行向量指令(例如,使用具有向量寄存器文件的向量单元)的处理器核
心可以包括被配置为并行地执行存储指令以增加处理器核心的存储器带宽的多个存储单元(例如,加载/存储流水线)。处理器核心的第一存储单元可以通过L1高速缓存(例如,L1数据高速缓存)访问存储器系统,而处理器核心的第二存储单元可以绕过L1高速缓存。例如,第二存储单元可以经由与L1高速缓存实现高速缓存一致性协议的L2高速缓存来访问存储器系统。绕过L1高速缓存能够增加处理器核心与存储器系统之间可用的带宽,但是可以通过在L1数据高速缓存中引起高速缓存失效事件而遭受性能损失,其中绕过的写入无意地渲染L1高速缓存中的条目。
[0019]可以动态地确定哪个存储单元用于执行给定存储指令以试图提高性能。用于向量的存储指令可以使用各种寻址模式,包括跨距寻址或索引寻址。在用于存储指令的分派时间,可能不是与写入指令相关联的所有地址都已经被解析。在一些实施方式中,识别与存储指令的第一节拍相关联的地址并将其用于选择哪个存储单元将用于存储指令。例如,相关联的地址可以是在存储指令的第一节拍期间要存储的元素的目标地址。该相关联的地址可以提供预期与存储指令相关联的地址范围的合理指示。
[0020]例如,与第一节拍相关联的地址可以用于在L1高速缓存中检查与相关联的地址相匹配的标签。如果在L1高速缓存中找到匹配标签,则第一存储单元可以用于执行存储指令。如果在L1高速缓存中未找到匹配标签,则第二存储单元可以用于执行存储指令并且L1高速缓存可以被绕过。
[0021]在一些实施方式中,预测器用于在第一存储单元和第二存储单元之间进行选择。可以使用用于预测的各种技术,诸如以饱和计数器来维持预测器条目,该饱和计数器在对应写入指令导致高速缓存失效时被更新或在不导致高速缓存失效时执行。例如,预测条目可以通过程序计数器值的散列和存储指令的目标地址来索引。
[0022]强制对存储器映射的输入/输出(MMIO)的写入以通过L1高速缓存可能是有利的。在一些实施方式中,检查与存储指令的第一节拍相关联的地址以确定其是否对应于MMIO。如果其确实对应于MMIO,则将写入指令分派到第一存储单元。
[0023]指令之间的相关性可以使并行使用两个存储单元复杂化。它可能导致在按照以地址为目标的程序顺序执行较早的指令之前存储指令在相同地址处执行的错误。例如,可能存在写后写(WAW)危险或读后写(WAR)危险。如果写入指令被分派到与正在执行按照程序顺序较早的指令的单元不同的存储单元并且与较晚的写入指令共享目标地址,则存在较晚的写入指令将在较早的指令之前被执行的风险。防止这个问题的一个解决方案是检测相关性并且强制较晚的写入指令被分派到与较早的指令相同的单元,使得较晚的指令在先进先出(FIFO)队列中在较早的指令之后被执行。防止这个问题的另一个解决方案是检测相关性并且延迟较晚的写入指令的分派,直到较早的指令完成执行为止,并且然后基于其它准则为较晚的写入指令选择执行单元。
[0024]本文描述的实施方式可以提供优于传统处理器的优点,例如,增加处理器核心的存储器带宽同时减少高速缓存失效事件的机会和/或改善处理器核心的性能。
[0025]如本文所使用的,术语“电路系统”是指被构造为实现一个或多个功能的电子组件(例如,晶体管、电阻器、电容器和/或电感器)的布置。例如,电路系统可以包括互连以形成共同实现逻辑功能的逻辑门的一个或多个晶体管。
[0026]如本文所使用的,术语“微架构状态”是指集成电路(例如,处理器或微控制器)的
状态(例如,数据位)中不可以由集成电路执行的软件直接访问的部分。例如,微架构状态可以包括存储在高速缓存中的数据和/或由用于做出关于控制流执行的预测的控制流预测器存储的数据。
[0027]细节
[0028]图1是用于以用于向量的加载存储流水线选择来执行指令的集成电路110的示例的框图。例如,集成电路110可以是处理器、微处理器、微控制器或IP核心。集成电路110包括被配置为执行对向量自变量进行操作的向量指令的处理器核心120。在该示例中,处理器核心120包括具有向量寄存器文件132的向量单元130,该向量寄存器文件132被配置为执行对向量自变量进行操作的向量指令。在一些实施方式中,处理器核心120还可以包括用于执行标量指令的标量单元和具有用于指令提取、解码和分派的阶段的共享处理器流水线(图1中未示出)。集成电路110包括提供到集成电路110的存储器系统的接口的L1高速缓存150。集成电路110包括连接到L1高速缓存150的L2高速缓存152,其与L1高速缓存150实现高速缓存一致性协议。在该示例中,L1高速缓存150是处理器核心本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种集成电路,包括:处理器核心,所述处理器核心被配置为执行对向量自变量进行操作的向量指令;L1高速缓存,所述L1高速缓存向所述集成电路的存储器系统提供接口;连接到所述L1高速缓存的L2高速缓存,所述L2高速缓存与所述L1高速缓存实现高速缓存一致性协议;第一存储单元,所述第一存储单元被配置为经由所述L1高速缓存向所述存储器系统写入数据;第二存储单元,所述第二存储单元被配置为绕过所述L1高速缓存并且经由所述L2高速缓存向所述存储器系统写入数据;以及存储流水线选择电路系统,所述存储流水线选择电路系统被配置为:识别与具有向量自变量的存储指令的第一节拍相关联的地址;基于与所述存储指令的所述第一节拍相关联的地址,在所述第一存储单元和所述第二存储单元之间进行选择;以及将所述存储指令分派到所选择的存储单元。2.根据权利要求1所述的集成电路,其中,所述存储流水线选择电路系统被配置为:在所述L1高速缓存中搜索与和所述存储指令的所述第一节拍相关联的地址相匹配的标签;以及响应于在所述L1高速缓存中找到匹配标签,选择所述第一存储单元。3.根据权利要求1所述的集成电路,其中,所述存储流水线选择电路系统被配置为:在所述L1高速缓存中搜索与和所述存储指令的所述第一节拍相关联的地址相匹配的标签;以及响应于在所述L1高速缓存中未找到匹配标签,选择所述第二存储单元。4.根据权利要求1所述的集成电路,其中,所述存储流水线选择电路系统被配置为:检查与所述存储指令的所述第一节拍相关联的地址是否对应于存储器映射的输入/输出;以及响应于确定与所述存储指令的所述第一节拍相关联的地址对应于存储器映射的输入/输出,选择所述第一存储单元。5.根据权利要求1所述的集成电路,其中,所述存储流水线选择电路系统包括预测器,并且所述存储流水线选择电路系统被配置为:将与所述存储指令的所述第一节拍相关联的地址和程序计数器值输入到所述预测器,以获得指示所述第一存储单元还是所述第二存储单元应当被用于所述存储指令的预测;以及基于所述预测在所述第一存储单元与所述第二存储单元之间进行选择。6.根据权利要求5所述的集成电路,其中,所述预测器存储由程序计数器值的散列和目标地址所索引的条目。7.根据权利要求5至6中任一项所述的集成电路,其中,所述预测器的条目基于所述高速缓存一致性协议的高速缓存失效事件来更新,所述高速缓存失效事件响应于由所述第二存储单元执行指令而使所述L1高速缓存的条目失效。8.根据权利要求5至7中任一项所述的集成电路,其中,所述预测器的条目存储在退出
所述存储指令时被更新的计数器。9.根据权利要求1至8中任一项所述的集成电路,其中,所述存储指令是第一存储指令,并且存储流水线选择电路系统被配置为:在所选择的存储单元中检查具有与第二存储指令的目标地址相匹配的目标地址的指令;以及响应于由所选择的存储单元执行的所述第一存储指令的目标地址与所述第二存储指令的目标地址相匹配,将所述第二存储指令分派到所选择的存储单元。10.根据权利要求1至9中任一项所述的集成电路,其中,所述存储指令是第一存储指令,并且存储流水线选择电路系统被配置为:在所选择的存储单元中检查具有与第二存储指令的目标地址相匹配...

【专利技术属性】
技术研发人员:安德鲁
申请(专利权)人:斯法夫股份有限公司
类型:发明
国别省市:

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

1