发明名称 一种高速缓存失效的处理器访存指令处理方法
摘要 本发明公开了一种高速缓存失效的处理器访存指令处理方法,该方法包括:利用全修改Cache块节省访存带宽,通过预测失效的存数指令写高速缓存还是写低层存储系统,充分发挥两种处理方法的优点。本发明减少了失效存数指令造成的存储管理队列发生阻塞的频繁程度,避免了额外硬件开销,节省访存带宽,降低了Cache的失效率,实现存数指令对后面同一Cache块的取数指令的预取作用。
申请公布号 CN1955947A 申请公布日期 2007.05.02
申请号 CN200510116755.9 申请日期 2005.10.28
申请人 中国科学院计算技术研究所 发明人 郇丹丹;胡伟武;李祖松
分类号 G06F12/08(2006.01) 主分类号 G06F12/08(2006.01)
代理机构 北京泛华伟业知识产权代理有限公司 代理人 高存秀
主权项 1、一种高速缓存失效的处理器访存指令处理方法,具体包括如下步骤:步骤1):访存指令进入存储管理队列,将高速缓存是否命中的信息记录在存储管理队列对应项的命中域,判断命中域的值是否为1,如果是,存数指令直接写高速缓存,取数指令数据写到处理器的通用寄存器,如果否,执行步骤2);步骤2):由存储管理队列向访存失效队列发出失效访问请求,存数指令在访存失效队列执行写操作,把数据写入所进入访存失效队列项的数据域,并退出存储管理队列,取数指令在存储管理队列中等待数据返回;步骤3):判断失效访存指令对应Cache块是否在写回队列中命中;如果是,从写回队列返回的数据与对应访存失效队列项的数据域中存数指令所写的数据拼成Cache块,执行步骤7);如果否,执行步骤4);步骤4)判断是取数指令还是存数指令;如果是取数指令,执行步骤5);如果是存数指令,判断是否收集为全修改Cache块;如果收集为全修改Cache块,执行步骤7);如果没有收集为全修改Cache块,判断访存失效队列是否满;如果满,选择一个非全修改Cache块所在访存失效队列项,执行步骤5),如果没有满,继续在访存失效队列中等待收集为全修改Cache块;步骤5):向低层存储系统发出访问请求;步骤6):等待低层存储系统数据返回,将返回的数据与对应访存失效队列项的数据域中存数指令所写的数据拼成Cache块;步骤7):访问预测装置,取数指令设置预测装置中预测表对应项的值为1,执行步骤8);存数指令由预测装置预测是否写高速缓存,如果预测写高速缓存,执行步骤8),如果预测写低层存储系统,执行步骤9);步骤8):用访存失效队列对应项数据写高速缓存,同时取数指令置存储管理队列对应项命中域的值为1,执行步骤10);步骤9):等待写回队列有空项,将访存失效队列中数据写到写回队列;步骤10):失效访存指令处理完成,从访存失效队列中退出。
地址 100080北京市海淀区中关村科学院南路6号