现代英特尔处理器中的推测加载和存储是如何发生的?

现代英特尔处理器中的推测加载和存储是如何发生的?

我认为store queue在现代 Intel 处理器中,它用于存储内存地址和存储数据。它们直到提交阶段才会进入 L1 缓存。但我不能 100% 确定它是否正确,或者在执行阶段(即提交阶段之前)是否允许存储。关于加载,我不知道是否有任何load queueload-store queue或任何其他结构,或者在执行阶段(即提交阶段之前)是否允许从 L1 缓存进行加载。

我还想知道Memory dependence predictor英特尔处理器中是否有任何可以在知道加载和存储地址之前预测它们之间真正的依赖关系的功能。

请帮我澄清我的疑问。

答案1

答案是允许推测性地加载,但存储缓冲区在退出阶段之前不存储任何内容。这可能是因为我们假设允许外界影响 CPU(如果发现错误,CPU 可以忽略它)进行加载,但不允许 CPU 通过推测性存储影响外界(只有 100% 确定时才会发生)。

相关内容