广州励康
作者广州励康·2016-07-07 11:47
其它·广州励康

解读为中国市场定制的IBM Power8设计亮点

字数 2610阅读 1890评论 0赞 0

    2014年二季度IBM发布了重要的小型机最新产品Power8系列。据了解该产品是首个被IBM之外的公司生产制造,并针对数据中心市场所提供的创新解决方案,方案中还包括一个为中国市场定制Power8服务器产品。广州励康采用图文并茂的方式,使用通俗易懂的语言解读POWER8处理器以及四大优势亮点设计。

Power8处理器的总览:  

    2014年4月IBM正式发布了Power8,使用了22nmSOI工艺进行制造,其核心面积依然达到了650mm²。  

    具体规格方面,Power8处理器最大为12核心设计,超线程技术从上代产品的4-WaySMT提高到了8-WaySMT,也就说其单处理器卡最大能够支持96线程。12颗核心共享96MB的L3缓存,另外还可以使用128MB的Edram L4缓存.单核方面,每颗核心拥有64K的数据缓存、32K的指令缓存以及512K的二级缓存,包含有16个执行单元。SMT8技术相比Power7系列来说单线程性能最高提升将近60%。内存方面,Power8总带宽高达230GB/s,同时支持事务性内存,支持Crypto&内存扩展,另外还支持PCI-E3.0技术。

1.jpg

Power8的第一大亮点设计:SMT8  

    Power8中的SMT8将每核心的多线程数量从以前的2,4线程直接提升至8线程。而且处理器可以智能的根据应用需求在单线程,双线程和4线程以及8线程之间智能切换自身的线程数量,以获得最佳应用表现。相对于数量众多,规模较小的OLTP应用来说,多线程技术其并行效率相当于提升了一倍;在数据库索引,复杂的并发渲染中多线程将发挥其重大作用。可以说,IBMPower 8的并发多线程最大的进步不是每颗核心8线程,而是智能的根据应用调整线程数量——在面向繁多的“碎小计算”时转入SMT8模式,12核96线程最大并行计算能力体现;而面向大规模单线程计算任务时,转入SMT1模式,12核12线程,最大化的使用每颗内核参与到运算中来。

2.jpg

Power8的第二大亮点设计:CAPI  

    CAPI(CoherenceAttach Processor Interface)是在PCIe 3.0的物理总线上承载CAPI协议,它可以让外设具备直接访问CPU的内存空间(一致性)的能力,从而大大提高了外设的运行效率,比如通过CAPI协议可以让外置的闪存PCIe卡的系统开销大幅度降低,减少了不必要的总线占用。  

    POWER8晶圆上整合的PCI-E3.0插槽提供CAPI接口来连接外部组件,CAPI端口与PCI-Express插槽连接用于图形处理器或者FPGAs(现场可编程门阵列)等外部组件与这种芯片之间的通讯。借助于CAPI的开放接口,将有助于连接第三方厂商的硬件,如图像图像卡、存储设备以及客户话的定制芯片,如FPEA(可编程门阵列)卡、ASIC卡等。  

    事实上,OpenPOWER基金会的大部分成员都会专注于CAPI上的利用,比如将外置的网络、GPU、闪存等设备直接与CPU相连接,并在此基础上根据不同的主流应用场景进行开放的,定制化的系统设计,进而使POWER8的生态不断丰富,带动基于POWER8的解决方案的发展。

3.jpg

Power8的第三大亮点设计:Little Endian  

    谈到字节序的问题,必然牵涉到两大CPU派系。PowerPC系列和Intel的x86系列CPU。PowerPC系列采用bigendian方式存储数据,而x86系列则采用littleendian方式存储数据。如果你写的程序只在单机环境下面运行,并且不和别人的程序打交道,那么你完全可以忽略字节序的存在。但实际上程序往往要跟别的程序产生交互的?。在这里我想说说两种常用的编程语言。C/C++语言编写的程序里数据存储顺序是跟编译平台所在的CPU相关的,而JAVA编写的程序则唯一采用bigendian方式来存储数据。试想,如果你用C/C++语言在x86平台下编写的程序跟别人的JAVA程序互通时会产生什么结果?就拿上面的0x12345678来说,你的程序传递给别人的一个数据,将指向0x12345678的指针传给了JAVA程序,由于JAVA采取bigendian方式存储数据,很自然的它会将你的数据翻译为0x78563412。竟然变成另外一个数字了?是的,就是这种后果。因此,在你的C程序传给JAVA程序之前有必要进行字节序的转换工作。  

    所以POWER8的兼容bigendian和Little-Endian,这就意味着计算机中的某些计算可以变得更加简单和快速,节省很多源代码的更改动作。

Power8的第四大亮点设计:Transactional Memory  

    随着多核技术的不断发展,传统的串行程序已经在效率和性能方面都不能与时俱进,程序员不得不开发多线程的程序来提高芯片上的资源使用率,但与此同时,也带来了性新的问题和挑战:  

1、目前不同线程之间的同步和对共享资源的访问都是通过锁和信号量机制来完成的,然而,这种传统的基于锁和信号量的并发是存在明显的局限性的。 

2、锁对大量的共享数据做了保护,扩展性不好,因为即使在线程间不存在对共享数据的访问的情况下也可能出现冲突和阻塞,甚至死锁,优先级反转等问题。 TRANSACTIONAL MEMORY在多线程访问同样内存时会产生锁,就是常说的“LOCKS”,而IBM采用硬件的方式来完成,在微码级别中应用硬件方式解决锁的问题。大幅度提升了应用性能,特别是在大数据应用中,JAVA写的应用出现锁非常多,因此,该IBM技术更适应解决大数据应用性能的问题。  

    另外,TRANSACTIONAL MEMORY通过增加事务Cache,并修改 Cache一致性协议来实现。事务内存不仅避免了传统锁机制带来的一系列问题,增强了线程间的并行度,而且简化了并行程序开发的过程,更利于程序模块的组合。

4.jpg

如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!

0

添加新评论0 条评论

Ctrl+Enter 发表

作者其他文章

相关文章

相关问题

相关资料

X社区推广