用于容忍存储器违反排序检查缓冲器的排空延迟的推测性指令唤醒制造技术

技术编号:29600917 阅读:15 留言:0更新日期:2021-08-06 20:05
一种用于推测性地执行加载依赖性指令的技术包括检测对于完成的加载指令而言,存储器排序一致性队列已满。所述技术还包括当所述存储器排序一致性队列已满时,将由所述完成的加载指令加载的数据存储至用于存储数据的存储位置中。所述技术还包括推测性地执行依赖于所述完成的加载指令的指令。所述技术还包括响应于时隙在所述存储器排序一致性队列中变得可用,重放所述加载指令。所述技术还包括响应于接收到用于所述重放加载指令的加载数据,通过比较用于所述重放加载指令的所述加载数据与存储在所述存储位置中的由所述完成的加载指令加载的所述数据来测试数据的错误推测。

【技术实现步骤摘要】
【国外来华专利技术】用于容忍存储器违反排序检查缓冲器的排空延迟的推测性指令唤醒相关申请的交叉引用本申请要求2019年10月31日提交的美国非临时申请号16/671,097和2019年4月3日提交的美国临时专利申请序列号62/828,861的权益,其内容通过引用的方式并入本文中。关于政府利益的声明本专利技术是在DOE授予的美国劳伦斯·利弗莫尔国家安全局的PathForward项目(主要合同编号DE-AC52-07NA27344,分包合同编号B620717)的政府支持下完成的。政府享有本专利技术中的某些权利。
技术介绍
乱序处理器按乱序执行指令,但却遵守某些约束以确保执行按程序指定的方式发生。一类约束涉及确保遵循某些存储器排序语义。可以放宽与存储器排序语义相关的约束以改善性能,但也需要采取附加的步骤以确保执行的正确性。附图说明可从结合附图以举例方式给出的以下描述中获得更详细的理解,在附图中:图1是在其中可以实现一个或多个所公开实施方案的示例性装置的框图;图2是根据一个示例的位于图1的处理器内的指令执行流水线的框图;图3A示出了用于触发依赖于有资格被置于已满的存储器一致性排序队列中的加载指令的指令的推测性执行的示例性操作;图3B示出了针对这种队列先前已满的加载指令的响应于时隙在存储器排序一致性队列中变得空闲的示例性操作;以及图4是根据一个示例的用于推测性地执行依赖于存储器排序一致性队列已满的加载指令的指令的方法的流程图。具体实施方式提供了一种用于推测性地执行加载依赖性指令的技术。所述技术包括检测对于完成的加载指令而言,存储器排序一致性队列已满。所述技术还包括当所述存储器排序一致性队列已满时,将由所述完成的加载指令加载的数据存储至用于存储数据的存储位置中。所述技术还包括推测性地执行依赖于所述完成的加载指令的指令。所述技术还包括响应于时隙在所述存储器排序一致性队列中变得可用,重放所述加载指令。所述技术还包括响应于接收到用于所述重放加载指令的加载数据,通过比较用于所述重放加载指令的所述加载数据与存储在所述存储位置中的由所述完成的加载指令加载的所述数据来测试数据的错误推测。提供了一种用于推测性地执行加载依赖性指令的处理器子系统。所述处理器子系统包括存储器排序一致性队列和加载/存储单元。所述加载/存储单元检测对于完成的加载指令而言,存储器排序一致性队列已满;当所述存储器排序一致性队列已满时,将由所述完成的加载指令加载的数据写入到用于存储数据的存储位置中;允许推测性地执行依赖于所述完成的加载指令的指令;响应于时隙在所述存储器排序一致性队列中变得可用,重放所述加载指令;以及响应于接收到用于所述重放加载指令的加载数据,通过比较用于所述重放加载指令的所述加载数据与存储在所述存储位置中的由所述完成的加载指令加载的所述数据来测试数据的错误推测。提供了一种用于推测性地执行加载依赖性指令的处理器。所述处理器包括存储器排序一致性队列、加载/存储单元以及一个或多个功能单元。所述加载/存储单元检测对于完成的加载指令而言,存储器排序一致性队列已满;当所述存储器排序一致性队列已满时,将由所述完成的加载指令加载的数据写入到用于存储数据的存储位置中;允许推测性地执行依赖于所述完成的加载指令的指令;响应于时隙在所述存储器排序一致性队列中变得可用,重放所述加载指令;以及响应于接收到用于所述重放加载指令的加载数据,通过比较用于所述重放加载指令的所述加载数据与存储在所述存储位置中的由所述完成的加载指令加载的所述数据来测试数据的错误推测。所述一个或多个功能单元推测性地执行依赖于所述完成的加载指令的所述指令。图1是其中实现了本公开的各方面的示例性装置100的框图。装置100包括例如计算机、游戏装置、手持式装置、机顶盒、电视、移动电话或平板计算机。装置100包括处理器102、存储器104、存储装置106、一个或多个输入装置108以及一个或多个输出装置110。装置100还可以任选地包括输入驱动器112和输出驱动器114。应理解,装置100可以包括图1中未示出的附加部件。处理器102包括中央处理单元(CPU)、图形处理单元(GPU)、位于同一管芯上的CPU和GPU、或者一个或多个处理器核心,其中每个处理器核心是CPU或GPU。存储器104可以与处理器102位于同一管芯上,或者可以与处理器102分开定位。存储器104包括易失性或非易失性存储器,例如随机存取存储器(RAM)、动态RAM或高速缓存。存储装置106包括固定或可移除存储装置,例如硬盘驱动器、固态驱动器、光盘或快闪驱动器。输入装置108包括键盘、小键盘、触摸屏、触摸板、检测器、传声器、加速度计、陀螺仪、生物计量扫描仪或网络连接件(例如,用于无线IEEE802信号的传输和/或接收的无线局域网卡)。输出装置110包括显示器、扬声器、打印机、触觉反馈装置、一个或多个灯、天线或网络连接件(例如,用于无线IEEE802信号的传输和/或接收的无线局域网卡)。输入驱动器112与处理器102和输入装置108通信,并且允许处理器102接收来自输入装置108的输入。输出驱动器114与处理器102和输出装置110通信,并且允许处理器102将输出发送到输出装置110。应注意,输入驱动器112和输出驱动器114为任选部件,并且装置100在不存在输入驱动器112和输出驱动器114的情况下将以相同方式操作。图2是根据一个示例的位于图1的处理器102内的指令执行流水线200的框图。指令执行流水线200从存储器检索指令并执行指令,将数据输出到存储器,以及修改指令执行流水线200内元件的状态,诸如在寄存器文件218内的寄存器。指令执行流水线200包括指令提取单元204,其经由指令高速缓存202从系统存储器(诸如存储器104)提取指令;解码器208,其对提取的指令进行解码;功能单元216,其执行计算以处理指令;加载/存储单元214,其经由数据高速缓存220从系统存储器加载数据或将数据存储至系统存储器;以及寄存器文件218,其包括存储用于指令的工作数据的寄存器。重排序缓冲器210跟踪当前进行中的指令并且尽管在飞行中允许无序执行,其也确保了按顺序引退指令。“飞行中”的指令指的是已经由重排序缓冲器210接收到但尚未将结果提交给处理器的架构状态(例如,将非推测性结果写入到寄存器文件等)的指令。保留站212维护等待要在功能单元216上执行的指令,并且跟踪指令操作数。当所有操作数都准备好执行特定指令时,保留站212将指令发送到功能单元216或加载/存储单元214以便执行。完成的指令在重排序缓冲器210中被标记为引退并且当在重排序缓冲器队列210的开头时引退。引退是指将指令的结果提交到处理器的架构状态的行为。例如,通过加法指令将加法结果写入架构寄存器的最新的非推测性副本中;通过加载指令将加载的值写入架构寄存器的最新的非推测性副本中;或者通过分支指令非推测性地使指令流跳转到新位置都是指令引退的示例。指令执行流水线200的各个元件经由公共数据总线222进行通信。例如,本文档来自技高网...

【技术保护点】
1.一种用于推测性地执行加载依赖性指令的方法,其包括:/n检测对于完成的加载指令而言,存储器排序一致性队列已满;/n当所述存储器排序一致性队列已满时,将由所述完成的加载指令加载的数据存储至用于存储数据的存储位置中;/n推测性地执行依赖于所述完成的加载指令的指令;/n响应于时隙在所述存储器排序一致性队列中变得可用,重放所述加载指令;以及/n响应于接收到用于所述重放加载指令的加载数据,通过比较用于所述重放加载指令的所述加载数据与存储在所述存储位置中的由所述完成的加载指令加载的所述数据来测试数据的错误推测。/n

【技术特征摘要】
【国外来华专利技术】20190403 US 62/828,861;20191031 US 16/671,0971.一种用于推测性地执行加载依赖性指令的方法,其包括:
检测对于完成的加载指令而言,存储器排序一致性队列已满;
当所述存储器排序一致性队列已满时,将由所述完成的加载指令加载的数据存储至用于存储数据的存储位置中;
推测性地执行依赖于所述完成的加载指令的指令;
响应于时隙在所述存储器排序一致性队列中变得可用,重放所述加载指令;以及
响应于接收到用于所述重放加载指令的加载数据,通过比较用于所述重放加载指令的所述加载数据与存储在所述存储位置中的由所述完成的加载指令加载的所述数据来测试数据的错误推测。


2.如权利要求1所述的方法,其还包括:
响应于确定用于所述重放加载指令的所述加载数据与由所述完成的加载指令加载的所述数据相同,确定未发生违反所述存储器排序规则。


3.如权利要求2所述的方法,其还包括:
从加载队列移除所述加载指令;
将所述加载指令存储在所述存储器排序一致性队列中;以及
针对在所述存储器排序一致性队列中的所述加载指令,测试是否违反了所述存储器排序一致性规则。


4.如权利要求1所述的方法,其还包括:
响应于确定用于所述重放加载指令的所述加载数据与由所述完成的加载指令加载的所述数据不相同,确定发生了违反所述存储器排序一致性语义。


5.如权利要求4所述的方法,其还包括:
响应于发生所述违反,刷新并重放所述加载指令。


6.如权利要求1所述的方法,其中依赖于所述完成的加载指令的指令包括消耗由所述完成的加载指令加载的所述数据的指令。


7.如权利要求1所述的方法,其中所述存储器排序规则包括加载至加载的排序规则。


8.如权利要求1所述的方法,其中所述存储器排序规则包括存储至加载的排序规则。


9.如权利要求1所述的方法,其中:
所述存储位置包括以下项中的一个:寄存器文件中的寄存器,所述寄存器是所述完成的加载指令的目的地寄存器;以及存储器,所述存储器专用于存储加载数据以针对加载依赖性指令测试是否违反了存储器排序一致性语义。


10.一种用于推测性地执行加载依赖性指令的处理器子系统,所述处理器子系统包括:
存储器排序一致性队列;以及
加载/存储单元,所述加载/存储单元被配置为:
检测对于完成的加载指令而言,存储器排序一致性队列已满;
在所述存储器排序一致性队列已满的条件下,将由所述完成的加载指令加载的数据存储至用于存储数据的存储位置中;
允许推测性地执行依赖于所述完成的加载指令的指令;
响应于时隙在所述存储器排序一致性队列中变得可用,重放所述加载指令;以及
响应于接收到用于所...

【专利技术属性】
技术研发人员:约翰·卡拉马丁纳斯直下进克里斯南·V·拉马尼斯科特·托马斯·宾汉
申请(专利权)人:超威半导体公司
类型:发明
国别省市:美国;US

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

1