本发明专利技术公开了一种基于应用敏感的微处理器末端高速缓存控制方法及装置,方法步骤如下:1)创建第一配置寄存器和第二配置寄存器;2)在接收指令时,译码部件获取缓存失效寄存器值、替换优先寄存器值;3)当所述指令失效时失效控制逻辑根据所述缓存失效寄存器值执行失效逻辑控制,且失效控制逻辑首先通过替换逻辑根据所述替换优先寄存器值对数据阵列内部的数据行执行替换操作;装置包括译码部件、标签阵列、有效位存储阵列、替换指示位存储阵列、替换逻辑、失效控制逻辑、数据阵列、第一配置寄存器和第二配置寄存器。本发明专利技术为应用程序调优加速实现了基础硬件支持,灵活性高。
【技术实现步骤摘要】
本专利技术涉及微处理器中末端高速缓存(LLC :Last_Level Cache)性能提升优化方法,具体涉及一种根据应用特征灵活配置末端高速缓存的微操作指令类型和替换算法、提高末端高速缓存的执行性能的基于应用敏感的微处理器末端高速缓存控制方法及装置。
技术介绍
现有技术的高速缓存流水线中的微指令译码通常与高速缓存接收到的命令形成固定映射,或与高速缓存的内部状态有关,但不能通过软件方法进行修改,如T2处理器的高速缓存是L2Cache,它的微指令产生只与接收到交叉开关部件的报文类型有关,这种方法忽略了应用程序本身的特点,无法表征出访存报文更宏观的特性。此外,现有技术微处理器末端高速缓存的替换算法通常也是设计时固定的,例如T2处理器的L2Cache采用了分组的NRU (Nearest-Recently Used,最近最少使用)算法,该算法只考虑了应用程序微观层面上的访存使用频率,而忽略了程序算法本身在使用数据集的宏观特性。
技术实现思路
本专利技术要解决的技术问题是提供一种能够通过针对不同应用程序访存模式灵活配置微操作映射方法和替换方法从而实现针对应用程序进行调优加速的基于应用敏感的微处理器末端高速缓存控制方法及装置。为了解决上述技术问题,本专利技术采用的技术方案为一种基于应用敏感的微处理器末端高速缓存控制方法,其实施步骤如下I)创建第一配置寄存器和第二配置寄存器;所述第一配置寄存器存储有一组与一致性引擎发出的指令类型一一对应的缓存失效寄存器值;所述第二配置寄存器存储有一组与一致性引擎发出的指令类型一一对应的替换优先寄存器值;2)在接收到一致性引擎的指令时,译码部件在将所述指令译码为末端高速缓存的微操作时一并获取所述指令对应第一配置寄存器中的缓存失效寄存器值、对应第二配置寄存器中的替换优先寄存器值;3)失效控制逻辑根据所述缓存失效寄存器值执行失效逻辑控制,当所述指令失效时,如果缓存失效寄存器值为I,则失效控制逻辑将直接向存储控制器发送读写指令而不再改变数据阵列现有的状态以及数据;如果缓存失效寄存器值为0,则失效控制逻辑首先通过替换逻辑根据所述替换优先寄存器值对数据阵列内部的数据行执行替换操作,然后将所述指令的写入数据或者从内存中读回的数据写入到数据阵列中被替换的数据行中。作为本专利技术基于应用敏感的微处理器末端高速缓存控制方法的进一步改进所述步骤3)的详细步骤包括3. I)判断所述指令对应微操作的地址是否命中末端高速缓存,如果命中则跳转执行步骤3. 3),否则继续执行下一步;3. 2)检查所述微操作的类型,如果微操作为修改替换优先级命令则替换逻辑将微操作的替换优先寄存器值更新,否则继续保持微操作的替换优先寄存器值不变,最终替换逻辑将替换优先寄存器值回填至替换指示位存储阵列的替换指示位;如果微操作为读命令或者读旁路命令,则从末端高速缓存的数据阵列中读取所述微操作对应的数据行返回给一致性引擎部件;如果微操作为写命令或写旁路命令,则将最新数据写入末端高速缓存的数据体阵列中;最后退出处理流程;3. 3)检查缓存失效寄存器值,如果所述缓存失效寄存器值不为1,则跳转到3. 5),否则继续执行下一步;3.4)检查所述微操作的类型;如果微操作为读旁路指令则向内存控制器发送读命令,读命令的数据返回后直接发送给 一致性引擎且不在末端高速缓存的数据阵列中保留备份;如果微操作是写旁路命令,则将写旁路命令的数据直接发送给内存控制器更新内存;如果微操作是修改替换优先级命令或空值则不做任何操作;最后退出处理流程;3. 5)替换逻辑从替换指示位存储阵列中读取同组数据行的替换指示位并从中选取一路数据行进行替换;3.6)更新末端高速缓存中标志阵列中对应被替换数据行的标志值,根据替换优先寄存器值更新替换指示位存储阵列中对应被替换数据行的替换指示位,将有效位存储阵列中对应被替换数据行的有效位置为I ;3. 7)检查微操作的类型,如果微操作为读命令或预取命令则跳转到3. 9);如果微操作为空命令并退出处理流程;如果微操作为写指令则继续执行下一步;3. 8)将写指令的数据写入末端高速缓存的数据阵列中并将被替换的数据发送给内存控制器写回内存并退出处理流程;3. 9)向内存控制器发送读请求,在读请的数据返回后将返回数据写入到末端高速缓存的数据阵列中对应的数据行,并将被替换的数据行写回内存;如果微操作为读命令,将返回数据发送给一致性引擎并退出处理流程;最后退出处理流程。所述步骤3. 5)的详细步骤包括3. 5. I)根据所述微操作的地址中寻址部分的值为索引在末端高速缓存的标签阵列中查找匹配的一个数据组,并获取所述数据组中每一路数据的替换指示位和有效位;3. 5. 2)从所述数据组中查找第一个替换指示位为O且有效位为I的数据行,如果没有找到则将所述替换指示位置为全O,并重新查找第一个替换指示位为O且有效位为I的数据行;3. 5. 3)最后将查找得到的数据行作为被替换的数据进行替换。所述步骤3. 5. I)中查找得到匹配的数据组后,首先将所述数据组分成多个子数据组;所述步骤3. 5. 2)中从所述数据组中查找第一个替换指示位为O且有效位为I的数据行时具体是指分别同时针对每一个子数据组查找第一个替换指示位为O且有效位为I的数据行,然后根据从任意一个子数据组中最早找到的第一个替换指示位为O且有效位为I的数据行作为最终找到的第一个替换指示位为O且有效位为I的数据行。本专利技术还提供一种基于应用敏感的微处理器末端高速缓存控制装置,包括译码部件、标签阵列、有效位存储阵列、替换指示位存储阵列、替换逻辑、失效控制逻辑、数据阵列,所述译码部件分别通过标签阵列、有效位存储阵列、替换指示位存储阵列和替换逻辑相连,所述替换逻辑通过失效控制逻辑与数据阵列相连,所述译码部件与替换逻辑之间还设有第一配置寄存器和第二配置寄存器,所述第一配置寄存器存储有一组与一致性引擎发出的指令类型一一对应的缓存失效寄存器值,所述第二配置寄存器存储有一组与一致性引擎发出的指令类型一一对应的替换优先寄存器值;在接收到一致性引擎的指令时,所述译码部件在将所述指令译码为末端高速缓存的微操作时一并获取所述指令对应第一配置寄存器中的缓存失效寄存器值、对应第二配置寄存器中的替换优先寄存器值;所述失效控制逻辑根据所述缓存失效寄存器值执行失效逻辑控制,当所述指令失效时,如果缓存失效寄存器值为1,则所述失效控制逻辑将直接向存储控制器发送读写指令而不再改变数据阵列现有的状态以及数据;如果缓存失效寄存器值为O,则所述失效控制逻辑首先通过替换逻辑根据所述替换优先寄存器值对数据阵列内部的数据行执行替换操作,然后将所述指令的写入数据或者从内存中读回的数据写入到数据阵列中被替换的数据行中。本专利技术基于应用敏感的微处理器末端高速缓存控制方法具有下述优点本专利技术通过创建第一配置寄存器和第二配置寄存器,在接收到一致性引擎的指令时,译码部件在将指令译码为末端高速缓存的微操作时一并获取指令对应第一配置寄存器中的缓存失效寄存器值、对应第二配置寄存器中的替换优先寄存器值,并使得失效控制逻辑根据缓存失效寄存器值执行失效逻辑控制、执行替换时失效控制逻辑首先通过替换逻辑根据替换优先寄存器值对数据阵列内部的数据行执行替换操作,因此能够实现针对应用程序特点,结合程序运行时本文档来自技高网...
【技术保护点】
一种基于应用敏感的微处理器末端高速缓存控制方法,其特征在于其实施步骤如下:1)创建第一配置寄存器和第二配置寄存器;所述第一配置寄存器存储有一组与一致性引擎发出的指令类型一一对应的缓存失效寄存器值;所述第二配置寄存器存储有一组与一致性引擎发出的指令类型一一对应的替换优先寄存器值;2)在接收到一致性引擎的指令时,译码部件在将所述指令译码为末端高速缓存的微操作时一并获取所述指令对应第一配置寄存器中的缓存失效寄存器值、对应第二配置寄存器中的替换优先寄存器值;3)失效控制逻辑根据所述缓存失效寄存器值执行失效逻辑控制,当所述指令失效时,如果缓存失效寄存器值为1,则失效控制逻辑将直接向存储控制器发送读写指令而不再改变数据阵列现有的状态以及数据;如果缓存失效寄存器值为0,则失效控制逻辑首先通过替换逻辑根据所述替换优先寄存器值对数据阵列内部的数据行执行替换操作,然后将所述指令的写入数据或者从内存中读回的数据写入到数据阵列中被替换的数据行中。
【技术特征摘要】
【专利技术属性】
技术研发人员:晏小波,李永进,邓让钰,衣晓飞,周宏伟,张英,窦强,曾坤,谢伦国,马卓,
申请(专利权)人:中国人民解放军国防科学技术大学,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。