在P4处理器中,解码后的uop被存储在Trace Cache中。
Trace Cache 和 一般Cache区别:
在一般的Cache中,指令的存储顺序和内存中的指令顺序是一样的,而Trace Cache中的指令顺序是指令的执行顺序,而不是指令的地址顺序。
下面这个程序中,包含有跳转指令:
load
jmp T1;跳转到T1处
store
...
T1: xor
指令在普通cache上存放的位置根据程序地址决定,指令这样存储:
而在Trace Cache中,指令的存储格式如下:
Trace Cache与传统Cache有两点不同:
(1)Trace Cache存储的是译码之后的微操作,而不是x86指令。这样执行循环代码时,就省了指令的译码过程。
(2)Trace Cache存储的是微操作是按照执行顺序存储的,而不是指令顺序。在超标量处理器中一次取多条指令时,减少了Cache Line的访问。