分享

Intel Sandy Bridge怎么给力 | 编译点滴

 看见就非常 2012-05-13

Intel Sandy Bridge怎么给力

CES展可谓如火如荼。各大厂商纷纷上台。先是出了Intel的Sandy Bridge, AMD Fusion的一系列终端产品,笔记本电脑、台式机、平板。然后MS坐不住了,说windows支持ARM了。NVIDIA也没闲着,说要进军ARM处理器。b

Sandy Bridge是Intel在此次CES上的重拳。各大评测也接踵而至。什么图形计算给力,什么视频编解码牛逼等等。这篇文章,《编译点滴》就来学习一下Sandy Bridge的新特性。

1 Sandy Bridge的新特性1

如下图所示,为Intel Sandy Bridge的版图概览,从中可以看到Sandy Bridge的新特性,下面简单归类,一一道来。

Sandy Bridge新特性

1.1 CPU功能集成方面

CPU芯片集成北桥功能。北桥的功能主要有:主存控制器、图像控制器和PCI Express控制器。重新设计了DDR3双通道内存控制器,支持DDR3-1333

1.1.1 集成图形处理单元

也就是一个芯片里,除了控制功能复杂的核,还继承了控制功能简单,计算功能强大的GPU。上图 的“Display”和”Graphics”就是。基本上一个处理2D、一个处理3D.比较牛的一点是,它们和CPU核心共享最后一级cache。这样编程使用GPU的时候,就不用向CUDA那样把数据搬来搬去了。而且cache命中的话,直接不用访存。只是还不能把图形处理单元做的很强。

1.1.2 采用 环总线结构2

说白了,用环实现CPU内部部件间通信。使用环通信的是CPU的每个core,最后一级cache,集成内存控制器、PCI Express控制器、图形控制器等。上图给出了环总线的连接和通信方式。值得注意的是虽然最后一级cache有四个,但这四个cache和四个core并不是一一对应的,而是多对多的关系。
整个环通信的内容有:

  • 数据
  • 请求
  • 答复
  • 探听
    有了这四个动作,这些部件之间的通信过程也就不言而喻了。

1.2 性能方面

性能方面主要针对每个单核而做。如图,为Sandy Bridge的单核结构。其中黄色部分是改进部分。

Sandy Bridge 单核结构

1.2.1 新增微操作解码Cache

增加一个新的微操作(Uop)解码cache.我们知道X86指令先会被分解成微操作,微操作再作指令解码。有cache后,若cache命中,就能减少指令解码代价,提升指令带宽,降低延时。但目前这个cache的替换策略很低级,尽管如此,还是有80%的命中率。这样在进入循环之类的操作后,就可以直接命中cache,这样就可以让L1 cache和指令解码器少干点活。此处不解,现在的处理器都有指令流水线,若使用cache减小了解码时间,而其他时间还是不变的话,唯一带来的好处是少点解码动作,降低功耗?

1.2.2 重新设计了分支预测器

CPU中,有指令分支预测技术,通过预测即将解码的分支指令的真假,从而提前作动作,得到相关操作数。

1.2.3 新的AVX向量指令集。

这套向量指令集在原MMX、SSE、SSE2的基础上,增加了对256位单精度、双精度浮点 和 AES加密指令支持,共12条新指令,其他不变。。256位的向量数据要想在寄存器、运算功能部件之间来去自如,各个环节都要做些调整

  • 运算部件更新新增了几个针对AVX向量指令的浮点运算部件。指令调度器调度使用这些运算部件。因为AVX指令的操作数为256位,而这些运算部件只有128位宽,所以在执行AVX指令时,会将一个调度端口内,两个运算部件合并完成运算。如下图所示:

    AVX运算部件融合

    为了尽可能不搬移数据,Sandy Bridge还修改了运算结果数传递机制。直接给出一个已得结果数列表,而不是直接存回re-order buffer。

    虽然新增的浮点指令不多,但Sandy Bridge这一系列调整,为更多的向量支持打好了基础。更多的指令,只是时间问题。关于AVX的更多东西,可以参考这个网站3

  • 访存部件原来Intel CPU有三个访存通道,分别完成:取数据、存数据和存地址操作。现在取数据和存地址两个通道既可以取数据也可以存地址。这样取数速度更快,更主要的是AVX的数据宽256位,访存宽128,这样原来需要两拍才能完成的访存操作,现在用两个访存通道,一拍就能搞定。

1.3 功耗方面

1.3.1 下一代Turbo Boost技术

说白了,就是自动超频。换个角度就是Intel为了避免出错,把频率预设低点,卖的便宜的不让超频,稍微贵点的,可以超频。这个超频过程是自动的,量温度,温度不高,就多超点,温度高了,就不超。所谓下一代,就是几个core,以及图形控制器分别控制各自的频率和电压。

2 分析

Intel基本已经形成了两年一次微架构更新,两年一次生产工艺更新的发展趋势。这次Sandy Bridge的微结构更新确,在功能、性能和功耗上都带来不少变化。整个计算机系统都是建立在CPU基础上,CPU大的技术升级,需要很长一段时间才能被上层软件消化吸收。
从编译器和操作系统的角度,可能有如下机会:

  • 取数据和存地址通道复用,意味着需要调整机器模型,如何作指令排序
  • AVX 256浮点向量运算指令也需要合并两个运算通道,这也需要指令排序调整
  • 微操作cache会给编译器带来什么影响,指令cache的缺失会变化吗?
  • 集成的图形处理单元,需要怎样的编程环境支持。编译器如何调整指令的生成,计算的调度。或者操作系统来做。
  • 功耗方面,可以加入软件预测吗?

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多