高速缓存行的非对齐加载指令的推测并行执行方法技术

技术编号:13088357 阅读:160 留言:0更新日期:2016-03-30 18:07
一种执行高速缓存行非对齐加载指令的推测并行执行的方法,包括:推断地预测加载指令与高度缓存存储器是否是非对齐的;将所述加载指令标注为非对齐的并发射指令到调度器;并行地向第一和第二加载流水线派遣所述被标注为非对齐的加载指令,并确定两个加载流水线的相应地址以从包括目标加载数据的第一和第二高速缓冲行撷取数据,并合并从两个加载流水线检测的数据。可以基于匹配被确认为实际上非对齐的加载指令的在前次例程的指令指针来进行预测。可以进一步基于使用前次地址和跳步进行预测以预测加载指令的连续例程之间的地址步长。选择两个加载的地址以合并目标加载数据。

【技术实现步骤摘要】
高速缓存行的非对齐加载指令的推测并行执行方法本申请是申请日为2015年11月18日、申请号为201510794204.1、专利技术名称为“高速缓存行的非对齐加载指令的推测并行执行系统和方法”的专利技术专利申请的分案申请。
本专利技术一般涉及一种执行加载指令的进程,以从微处理器的存储器中加载信息,更具体地涉及一种高速缓存行的非对齐加载指令的推测并行执行的系统和方法,以加载跨越高速缓存行边界的数据。
技术介绍
计算机程序包括用于执行程序功能的指令,包括用于从存储器读取数据的加载指令(loadinstructions)。典型的计算机系统包括用于执行指令的微处理器以及耦接到微处理器的、用于存储计算机程序以及可应用的数据和信息的部分的外部系统存储器。从系统存储器加载数据消耗宝贵的处理时间,因此微处理器往往会包括较小的并且显著快速的高速缓存存储器,以加载用于处理的数据。高速缓存存储器典型地包括在微处理器内,以便快速访问。高速缓存存储器可以位于外部,但是,如果这样,通常经由单独的和/或专用的高速缓存总线来连接以获得较高的性能。数据块可以一次拷贝到高速缓存存储器,并且当从高速缓存存储器而非较大的较慢的外部系统存储器进行操作时,微处理器执行得较快且较高效。高速缓存存储器由一顺序序列的高速缓存行构成,其中每一个高速缓存行典型地具有预定长度。例如,高速缓存行通常的尺寸是64字节,但也可考虑替换的高速缓存尺寸。计算机程序可能重复地执行一个或多个加载指令,诸如在一个循环中等等,以从高速缓存存储器中的特定存储器位置加载特定的数据量。每个加载指令可以包括加载地址和数据长度。但是,在软件程序中指定的加载地址可能不是由微处理器用来访问高速缓存存储器的相同的物理地址。诸如基于x86指令集架构的现代的微处理器执行包括分段(segmentation)和分页等的地址翻译,其中加载地址被转换为全部不同的物理地址以访问高速缓存存储器。而且,可以顺序地执行一系列加载操作以撷取较大的数据块,其中一个或多个加载指令不直接与高速缓存行尺寸对齐。结果,存储器读取操作可以试图加载跨越高速缓存行边界的数据,这意味着指定的数据在一个高速缓存行上开始并在下一个高速缓存行上结束。由于目标数据占据多于一个的缓冲器行,所以这种类型的存储器读操作被称为高速缓存行非对齐加载。通常要求特定的方法来处理高速缓存行非对齐加载操作,因为数据是不能使用单个正常的加载请求来撷取的。现代的微处理器往往使用流行的高速缓存结构,其中对于单个加载请求仅可访问一个高速缓存行,从而高速缓存行非对齐的加载操作一定会以负面地影响性能的不同的方式来处理。通过一些微处理器执行的公共解决方案是在加载流水线(loadpipeline)内顺序地在不同的时间发射相同的加载指令两次。当加载指令初始地由加载流水线接收时,用于定位数据的地址首先被转换为虚拟地址(并且最终转换为用于访问高速缓存存储器的物理地址),并且只有在那时才能确定数据加载操作跨越高速缓存行边界。这样的非对齐加载操作会导致加载失中(loadmiss)。在加载失中的事件中,在加载流水线中再次执行该加载指令,这会进一步导致由于该加载操作的依赖(dependent)指令的回放(replay)引起的加载失中。进一步,非对齐加载指令的二次发射引起在非对齐加载指令的二次发射与正常发射的另一加载指令之间的仲裁,这将导致相当可观的长延迟。在这种方式中,高速缓存行非对齐加载操作是效率低且耗费了宝贵的处理时间以最终撷取到正确的数据,包括初始检测、双重执行、资源仲裁、以及依赖指令的回放。造成相当多数量的高速缓存行非对齐加载操作的软件程序会导致效率低的操作和性能下降。
技术实现思路
根据一个实施例的用于执行高速缓存行的非对齐加载指令的推测并行执行的方法,包括:预测加载指令是否是非对齐的,当预测加载指令是非对齐的加载的时候将加载指令标注为非对齐的,向调度器发射被标注为非对齐的加载指令,派遣被标注为非对齐的加载指令到第一加载流水线,并派遣被标注为非对齐的加载指令的副本到第二加载流水线,在第一加载流水线中确定被标注为非对齐的加载指令的第一地址以从第一高速缓存行访问第一数据,并在第二加载流水线中确定被标注为非对齐的所述加载指令的副本的第二地址以从第二高速缓存行访问第二数据,以及合并第一数据和第二数据以提供被标注为非对齐的加载指令的结果数据。本专利技术前述实施例所描述的高速缓存行的非对齐加载指令的推测并行执行的方法被用来改进非对齐加载性能。非对齐加载像正常加载一样完成,没有其他延迟。当高速缓存命中发生时,非对齐加载不引起回放,指令流不因为非对齐延迟而停顿。本专利技术描述的高速缓存行的非对齐加载指令的推测行执行的方法对于使用多个非对齐加载操作的程序和应用非常有用。附图说明参照以下描述和附图,将更好地理解本专利技术的益处、特征和优点,在附图中:图1是根据本专利技术的一个实施例实施的执行高速缓存行非对齐加载操作的超标量流水线微处理器的简化框图;图2是根据本专利技术的一个实施例的非对齐加载指令和作为结果的合并操作的推测并行执行结果的简化图;图3是根据本专利技术一个实施例的预测器(可被用作图1的预测器)的简化框图;图4是根据本专利技术另一个实施例的预测器(也可被用作图1的预测器)的简化框图;图5是根据本专利技术一个实施例的非对齐加载派遣器(可被用作图1的非对齐加载派遣器)的简化框图;以及图6是根据本专利技术另一个实施例的非对齐加载派遣器(也可被用作图1的非对齐加载派遣器)的简化框图。具体实施方式专利技术人已经认识到与执行高速缓存行非对齐加载指令相关的低效率和低性能。因此,他们开发了一种高速缓存行的非对齐加载指令的推测并行执行的系统和方法,用于检测和执行跨越高速缓存行边界的存储器读取操作。检测跨越高速缓存行边界的加载指令是推测地确定的。许多,如果不是大多数,加载指令在循环中执行。在第一检测方法中,第一非对齐加载的第一例程(iteration)的指令指针(IP)被存储并与后来的例程进行比较以预测后来的非对齐加载。在第二检测方法中,IP用来识别加载指令的后来的例程,并且加载指令的两次例程之间的跳步(skipstride)用来推测一步长,该步长被用于预测加载指令的随后例程的起始地址,其中跳步是该加载指令的前次执行的结束地址和该加载指令的下次执行的起始地址之间的地址跨越长度。预测的起始地址和所提供的每个加载指令例程的数据长度被用于推测地预测加载是否跨越高速缓存边界。非对齐加载被标注并被提供到调度器,调度器将该加载指令复制并派遣至两个单独的加载执行流水线。当地址在执行阶段被确时序,如果该加载最终被确定为是实际上的非对齐加载,则第一加载流水线从第一高速缓存行撷取第一数据,并且第二加载流水线单独地从下面连续的高速缓存行撷取第二数据。第一数据和第二数据然后一起被合并为单个高速缓存行作为第一流水线的结果。在一些实施例中,在第一和第二高速缓存行被撷取之后,才最终确定该加载为实际上非对齐加载。这里描述的高速缓存行的非对齐加载指令的推测并行执行的系统和方法被用来改进非对齐加载性能。非对齐加载像正常加载一样完成,没有其他延迟。当高速缓存命中发生时,非对齐加载不引起回放,指令流不因为非对齐延迟而停顿。本文描述的高速缓存行的非对齐加载指令的推测并行执行的系统和方法对于本文档来自技高网
...

【技术保护点】
一种执行高速缓存行非对齐加载指令的推测并行执行的方法,包括:预测加载指令是否是非对齐的;当预测所述加载指令是非对齐加载指令的时候,将所述加载指令标注为非对齐的;发射标注为非对齐的加载指令到调度器;向第一加载流水线派遣所述被标注为非对齐的加载指令,并派遣所述被标注为非对齐的加载指令的副本到并行的第二加载流水线;在所述第一加载流水线中确定所述被标注为非对齐的加载指令的第一地址以从第一高速缓存行访问第一数据,并在第二加载流水线中确定所述被标注为非对齐的加载指令的所述副本的第二地址以从第二高速缓存行访问第二数据;以及合并所述第一数据和所述第二数据以提供所述被标注为非对齐的加载指令的结果数据。

【技术特征摘要】
1.一种执行高速缓存行非对齐加载指令的推测并行执行的方法,包括:预测加载指令是否是非对齐的;当预测所述加载指令是非对齐加载指令的时候,将所述加载指令标注为非对齐的;发射标注为非对齐的加载指令到调度器;经由非对齐加载派遣器并行地向第一加载流水线及第二加载流水线派遣所述被标注为非对齐的加载指令;在所述第一加载流水线中确定所述被标注为非对齐的加载指令的第一地址以从第一高速缓存行访问第一数据,并在第二加载流水线中确定所述被标注为非对齐的加载指令的第二地址以从第二高速缓存行访问第二数据;以及合并所述第一数据和所述第二数据以提供所述被标注为非对齐的加载指令的结果数据。2.根据权利要求1所述的方法,还包括:将所述被标注为非对齐的加载指令的地址翻译为虚拟地址;以及基于所述被标注为非对齐的加载指令的所述虚拟地址和数据长度确认所述被标注为非对齐的加载指令是否是实际上非对齐的。3.根据权利要求2所述的方法,还包括:当所述被标注为非对齐的加载指令被确认为是实际上非对齐的时候,确定所述第一地址和所述第二地址。4.根据权利要求2所述的方法,其中所述预测加载指令是否是非对齐的步骤更包括:存储被确认为是实际上非对齐的每一个加载指令的非对齐指令指针;以及当新加载指令的指令指针与所存储的所述非对齐指令指针匹配时,指示所述新加载指令是非对齐的。5.根据权利要求2所述的方法,其中所述预测加载指令是否是非对齐的步骤更包括:存储被确认为实际上非对齐的每一个加载指令的非对齐指令指针、相应的虚拟地址和跳步;比较新加载指令的指令指针与所存储的所述非对齐指令指针以确定是否发现匹配;当发现匹配时,根据和与所述新加载指令匹配的所述非对齐指令指针一起存储的相应的虚拟地址和相应的跳步以及所述新加载指令的数据长度,确定所述新加载...

【专利技术属性】
技术研发人员:邸千力张俊杰
申请(专利权)人:上海兆芯集成电路有限公司
类型:发明
国别省市:上海;31

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

1