双问题处理器究竟是什么?

时间:2011-11-04 19:28:44

标签: embedded arm pipeline cpu-architecture

我偶然发现了一些关于双重问题处理器概念的引用(我希望这句话在句子中有意义)。我无法找到究竟是什么双重问题的任何解释。 Google为我提供了微控制器规范的链接,但这个概念在任何地方都没有解释。以下是此类reference的示例。我在找错了地方吗?关于它是什么的简短段落将非常有帮助。

1 个答案:

答案 0 :(得分:43)

双重问题意味着处理器可以将每个时钟周期从管道的一个阶段移动到另一个阶段。发生这种情况取决于处理器和公司的术语:它可能意味着两个指令从解码队列移动到重新排序队列(英特尔称之为此问题),或者它可能意味着移动指令(或微操作或某些东西)来自将队列重新排序到执行端口(afaik IBM称这个问题,而英特尔称之为调度)

但从广义上讲,通常意味着你可以维持每个周期执行两条指令。

由于您标记了此ARM,我认为他们使用的是英特尔的术语。 Cortex-A8和Cortex-A9每个周期都可以获取两条指令(Thumb-2中更多),解码两条指令,并“发出”两条指令。在Cortex-A8上没有乱序执行,虽然我不记得你是否仍然有一个解码队列 - 如果不是你直接从解码指令插入到两个执行流水线。在Cortex-A9上有一个问题队列,因此在那里发出解码的指令 - 然后每个周期最多4个指令被分派到执行流水线。