Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
英特尔x86_64处理器不仅是流水线体系结构,还是超标量?_X86_Cpu_X86 64_Intel_Cpu Architecture - Fatal编程技术网

英特尔x86_64处理器不仅是流水线体系结构,还是超标量?

英特尔x86_64处理器不仅是流水线体系结构,还是超标量?,x86,cpu,x86-64,intel,cpu-architecture,X86,Cpu,X86 64,Intel,Cpu Architecture,英特尔x86_64处理器不仅是流水线体系结构,还是超标量 管道化-这两个序列并行执行(同一时钟中同一管道单元的不同阶段,例如添加4个阶段): 第1阶段->第2阶段->第3阶段->第4阶段->无 nothing->stage1->stage2->stage3->stage4 超标量-这两个序列并行执行(两条指令可以在同一个时钟中发送到不同的管道单元,例如ADD和MUL): 添加(阶段1)->添加(阶段2)->添加(阶段3) MUL(第一阶段)->MUL(第二阶段)->MUL(第三阶段) 是

英特尔x86_64处理器不仅是流水线体系结构,还是超标量

  • 管道化-这两个序列并行执行(同一时钟中同一管道单元的不同阶段,例如添加4个阶段):

    • 第1阶段->第2阶段->第3阶段->第4阶段->无
    • nothing->stage1->stage2->stage3->stage4
  • 超标量-这两个序列并行执行(两条指令可以在同一个时钟中发送到不同的管道单元,例如ADD和MUL):

    • 添加(阶段1)->添加(阶段2)->添加(阶段3)
    • MUL(第一阶段)->MUL(第二阶段)->MUL(第三阶段)
  • 是的。
    在谷歌上搜索了一番后,我发现是的,当代的英特尔处理器都是流水线和超标量的

    执行一条指令需要许多纳秒。这包括从指令内存中提取指令、解码指令、提取操作数、执行任何计算、从内存中提取数据以及写入结果。即使是基本性能,也必须将其分解为几个小步骤,并允许多条指令同时“在管道中”

    同样,处理器管道消耗大量资源(面积、功耗、设计复杂性等)。将1宽处理器转换为2宽超标量处理器相对来说是非常便宜的。性能的提高大于成本(尽管一旦您拥有了4宽处理器,您将看到收益递减的趋势越来越大,并且成本呈指数级增长)


    因此,您可以期望任何现代处理器(除了绝对最小的小型处理器)都是超标量处理器。经验法则-如果它连接到内存层次结构,它将是超标量的。这是因为内存层次结构消耗了太多的电力和能源,因此需要一个超标量处理器来保持忙碌。

    看看这与编程有什么关系?无论如何,在“P5奔腾是第一个超标量x86处理器”的第一个结果中可以很容易地找到它。超标量性能优化有自己的代码风格。是的,例如,我看到现代CPU Intel Core有4个指令解码器:应该迁移到cs.stackexchange.com您的答案是肯定的,但您链接到了一个相当广泛的文档。你能再详细一点吗?我知道这个问题不太适合写太多。@user2657676谢谢!好文章!是的,那是一篇好文章。但那太老了!17年前。在这个地区,17年意味着2到3代人。如果你在写这篇文章的时候生了一个孩子,那么这个孩子现在已经足够大了,可以上大学学习CPU是如何工作的了(只有前20名的大学才是如此)。嗯,这篇文章的最后一次更新是在2015年6月。这是非常新鲜的材料。谢谢!“(虽然一旦拥有4宽处理器,您将看到收益递减的趋势变得更广,成本呈指数级增长)”-您的意思是指令重新排序的成本不断增长(需要更多时间来确定指令同时执行的独立性)?或者,您的意思是源代码的复杂性越来越高(独立执行指令需要更多困难的源代码-例如,重写算法
    前缀\u sum()
    /
    scan()
    /
    inclusive\u scan()
    的源代码以同时并行执行)?处理器面积和能量方面的成本。虽然是的,但设计的复杂性也会增加,这意味着实施和验证更复杂的设计的成本会增加,因为这些设计更容易出现错误。不仅所有主要的x86处理器都是超标量的,而且它们的执行也会出问题。(Atom是2-wide超标量,但较新的Silvermont是OOO。我忘了AMD的低功耗bobcat/jaguar。)