Embedded 什么是双问题处理器?

Embedded 什么是双问题处理器?,embedded,arm,pipeline,cpu-architecture,Embedded,Arm,Pipeline,Cpu Architecture,我曾多次提到双问题处理器的概念(我希望这在一句话中有意义)。我找不到任何解释来解释双重问题到底是什么。谷歌给了我微控制器规范的链接,但是这个概念没有在任何地方解释。这里有一个这样的例子。我找错地方了吗?关于它是什么的简短段落将非常有用。双重问题意味着处理器可以在每个时钟周期将两条指令从管道的一个阶段移动到另一个阶段。发生这种情况的位置取决于处理器和公司的术语:它可能意味着两条指令从解码队列移动到重新排序队列(英特尔称之为此问题),也可能意味着将指令(或微操作等)从重新排序队列移动到执行端口(af

我曾多次提到双问题处理器的概念(我希望这在一句话中有意义)。我找不到任何解释来解释双重问题到底是什么。谷歌给了我微控制器规范的链接,但是这个概念没有在任何地方解释。这里有一个这样的例子。我找错地方了吗?关于它是什么的简短段落将非常有用。

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

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


既然你给这只手臂贴上了标签,我想他们使用的是英特尔的术语。Cortex-A8和Cortex-A9每个周期都可以获取两条指令(更多的是Thumb-2),解码两条指令,然后“发出”两条指令。在Cortex-A8上没有无序执行,尽管我不记得是否还有一个解码队列,您可以直接从解码指令到将它们插入两条执行管道。在Cortex-A9上有一个问题队列,因此解码指令在那里发出-然后是指令每个周期最多向执行管道发送4条指令。

我认为您提供的链接似乎讨论的是双问题指令,而不是双问题处理器。它讨论了它们有哪些限制会导致在下一个周期中需要第二条管道。[是R系列处理器文档的另一篇文章的链接,该文章讨论了(可能不同?)双问题指令。当然,ARM和Intel完全错了。dispatch和issue这两个术语可以追溯到60年代和CDC 6600。