执行访存微指令的方法和装置制造方法及图纸

技术编号:27934410 阅读:36 留言:0更新日期:2021-04-02 14:14
一种执行访存微指令的方法和装置。该执行访存微指令的方法,包括:获取第一访存微指令和第二访存微指令;确定第一访存微指令所访问的第一访存地址范围和第二访存微指令所访问的第二访存地址范围在相同的数据缓存地址段内,数据缓存地址段表示执行一次访存流水线所访问的地址段;通过执行第一次访存流水线,实现与第一访存微指令相关的操作,并实现与第二访存微指令相关的操作,与第一访存微指令相关的操作的类型和与第二访存微指令相关的操作的类型相同。该执行访存微指令的方法和装置可以提高访存流水线的带宽,加速访存微指令的执行过程,并且具有较大的优化效果。

【技术实现步骤摘要】
执行访存微指令的方法和装置
本公开的实施例涉及一种执行访存微指令的方法和装置。
技术介绍
当前的核心微架构计算每条访存微指令所访问的地址范围,并根据所计算的地址范围通过一次访存流水线执行一条访存微指令的方式来执行访存微指令。
技术实现思路
本公开至少一实施例提供一种执行访存微指令的方法,包括:获取第一访存微指令和第二访存微指令;确定第一访存微指令所访问的第一访存地址范围和第二访存微指令所访问的第二访存地址范围在相同的数据缓存地址段内,数据缓存地址段表示执行一次访存流水线所访问的地址段;通过执行第一次访存流水线,实现与第一访存微指令相关的操作,并实现与第二访存微指令相关的操作,与第一访存微指令相关的操作的类型和与第二访存微指令相关的操作的类型相同。例如,在本公开至少一实施例提供的执行访存微指令的方法中,确定第一访存微指令所访问的第一访存地址范围和第二访存微指令所访问的第二访存地址范围在相同的数据缓存地址段内,包括:获取第一访存地址范围和第二访存地址范围;响应于第一访存地址范围和第二访存地址范围均完全位于执行一次访存流水本文档来自技高网...

【技术保护点】
1.一种执行访存微指令的方法,包括:/n获取第一访存微指令和第二访存微指令;/n确定所述第一访存微指令所访问的第一访存地址范围和所述第二访存微指令所访问的第二访存地址范围在相同的数据缓存地址段内,其中,所述数据缓存地址段表示执行一次访存流水线所访问的地址段;/n通过执行第一次访存流水线,实现与所述第一访存微指令相关的操作,并实现与所述第二访存微指令相关的操作,其中,与所述第一访存微指令相关的操作的类型和与所述第二访存微指令相关的操作的类型相同。/n

【技术特征摘要】
1.一种执行访存微指令的方法,包括:
获取第一访存微指令和第二访存微指令;
确定所述第一访存微指令所访问的第一访存地址范围和所述第二访存微指令所访问的第二访存地址范围在相同的数据缓存地址段内,其中,所述数据缓存地址段表示执行一次访存流水线所访问的地址段;
通过执行第一次访存流水线,实现与所述第一访存微指令相关的操作,并实现与所述第二访存微指令相关的操作,其中,与所述第一访存微指令相关的操作的类型和与所述第二访存微指令相关的操作的类型相同。


2.根据权利要求1所述的方法,其中,确定所述第一访存微指令所访问的第一访存地址范围和所述第二访存微指令所访问的第二访存地址范围在相同的数据缓存地址段内,包括:
获取所述第一访存地址范围和所述第二访存地址范围;
响应于所述第一访存地址范围和所述第二访存地址范围均完全位于执行一次访存流水线所访问的地址段内,确定所述第一访存地址范围和所述第二访存地址范围在相同的所述数据缓存地址段内。


3.根据权利要求2所述的方法,其中,获取所述第一访存地址范围和所述第二访存地址范围,包括:
获取所述第一访存微指令对应的地址输入信息,为所述第一访存微指令创建第一追踪表项,使得所述第一追踪表项包括所述第一访存微指令对应的地址输入信息;
获取所述第二访存微指令对应的地址输入信息,使用所述第二访存微指令对应的地址输入信息的至少一部分查找所述第一追踪表项,并且响应于所述第二访存微指令对应的地址输入信息的所述至少一部分命中所述第一追踪表项,输出所述第二访存微指令对应的命中信息;
获取所述第一访存微指令对应的访存调度队列信息,并且响应于接收到所述第二访存微指令对应的命中信息,获取与所述第二访存微指令相关的附加信息;
根据所述第一访存微指令对应的访存调度队列信息确定所述第一访存地址范围,根据所述第一访存微指令对应的访存调度队列信息和与所述第二访存微指令相关的附加信息确定所述第二访存地址范围。


4.根据权利要求3所述的方法,其中,
获取所述第一访存微指令对应的地址输入信息包括:获取所述第一访存微指令对应的读写标识、比例、索引、基址、偏移量和微指令标号,其中,所述偏移量可以包括偏移量高位和块偏移;
使用所述第二访存微指令对应的地址输入信息的至少一部分查找所述第一追踪表项包括:使用所述第二访存微指令对应的读写标识、比例、索引、基址和偏移量高位查找所述第一追踪表项;
输出所述第二访存微指令对应的命中信息包括:输出所述第二访存微指令对应的命中标识、块偏移差值和微指令编号。


5.根据权利要求4所述的方法,其中,获取所述第一访存微指令对应的访存调度队列信息,并且响应于接收到所述第二访存微指令对应的命中信息,获取与所述第二访存微指令相关的附加信息包括:
为所述第一访存微指令创建第一访存表项,使得所述第一访存表项包括所述第一访存微指令对应的访存调度队列信息;
响应于接收到所述第二访存微指令对应的命中信息,使得所述第一访存表项还包括与所述第二访存微指令相关的附加信息;
查询所述第一访存表项,以获取所述第一访存微指令对应的访存调度队列信息和与所述第二访存微指令相关的附加信息。


6.根据权利要求5所述的方法,其中,
获取所述第一访存微指令对应的访存调度队列信息包括:获取所述第一访存微指令对应的访存首地址、访存粒度和完成标识;
响应于接收到所述第二访存微指令对应的命中信息,获取与所述第二访存微指令相关的附加信息包括:响应于接收到所述第二访存微指令对应的命中信息,获取所述第二访存微指令对应的块偏移差值、访存粒度和完成标识。


7.根据权利要求6所述的方法,其中,
根据所述第一访存微指令对应的访存调度队列信息确定所述第一访存地址范围包括:根据所述第一访存微指令对应的访存首地址和访存粒度确定所述第一访存地址范围;
根据所述第一访存微指令对应的访存调度队列信息和与所述第二访存微指令相关的附加信息确定所述第二访存地址范围,包括:根据所述第一访存微指令对应的访存首地址和所述第二访存微指令对应的块偏移差值、访存粒度确定所述第二访存地址范围。


8.根据权利要求7所述的方法,其中,通过执行第一次访存流水线,实现与所述第一访存微指令相关的操作,并实现与所述第二访存微指令相关的操作包括:通过执行所述第一次访存流水线,实现对所述第一访存地址范围的访存操作,并实现对所述第二访存地址范围的访存操作。


9.根据权利要求8所述的方法,其中,所述第一次访存流水线包括一次读流水线,对所述第一访存地址范围的访存操作和对所述第二访存地址范围的访存操作均为读操作,
通过执行第一次访存流水线,实现对所述第一访存地址范围的访存操作,并实现对所述第二访存地址范围的访存操作包括:通过执行所述一次读流水线,实现对所述第一访存地址范围的读操作,并实现对所述第二访存地址范围的读操作。


10.根据权利要求8所述的方法,其中,所述第一次访存流水线包括一次写完成流水线,对所述第一访存地址范围的访存操作和对所述第二访存地址范围的访存操作均为写完成操作,
通过执行第一次访存流水线,实现对所述第一访存地址范围的访存操作,并实现对所述第二访存地址范围的访存操作包括:通过执行所述一次写完成流水线,实现对所述第一访存地址范围的写完成操作,并实现对所述第二访存地址范围的写完成操作。


11.根据权利要求8所述的方法,还包括:在完成对所述第一访存地址范围的访存操作后,删除所述第一追踪表项。


12.根据权利要求8所述的方法,还包括:为所述第二访存微指令创建第二访存表项,使得所述第二访存表项包括所述第二访存微指令对应的访存调度队列信息,并在完成对所述第二访存地址范围的访存操作后,保留所述第二访存表项,响应于所述第二访存表项被挑选,检查对所述第二访存地址范围的访存操作是否正确,并且
响应于对所述第二访存地址范围的访存操作正确,删除所述第二访存表项,
响应于对所述第二访存地址范围的访存操作错误,重新执行所述第二访存微指令。


13.根据权利要求7所述的方法,其中,与所述第一访存微指令相关的操作为设置所述第一访存微指令在访存调度队列中的状态,与所述第二访存微指令相关的操作为设置所述第二访存微指令在访存调度队列中的状态,
通过执行第一次访存流水线,实现与所述第一访存微指令相关的操作,并实现与所述第二访存微指令相关的操作包括:通过执行所述第一次访存流水线,设置所述第一访存微指令在访存调度队列中的状态为睡眠状态,并设置所述第二访存微指令在访存调度队列中的状态为睡眠状态。


14.根据权利要求1所述的方法,还包括:
确定所述第一访存地址范围和所述第二访存地址范围不在相同的数据缓存地址段内;

【专利技术属性】
技术研发人员:崔泽汉
申请(专利权)人:海光信息技术股份有限公司
类型:发明
国别省市:天津;12

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

1