扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
日前,AMD在北京召开了2010创新技术大会,隆重发布了HD6800系列显卡的同时,也为我们带来了最新的“推土机”(Bulldozer)架构CPU和“山猫”(Bobcat)架构的详细信息。本文前半部分主要解析两款CPU的有关信息,而后半部分则详解AMD HD6000系列GPU和上一代的区别。
Don Newell是AMD的高级副总裁兼CTO,他认为,由于云计算趋势日渐明显,因而AMD在x86核心处理器方面未来将产品细分为两个平台:面向后端大规模计算对性能和扩展性需求的“推土机”(Bulldozer)以及面向客户端兼具灵活、低功耗和小巧的“山猫”(Bobcat)平台。
AMD高级副总裁兼CTO Don Newell
面向性能及客户端和服务器市场的“推土机”
要说“推土机”的架构,首先要提一下目前处理器支持多线程的方法。常见的有SMT同步多线程(Intel的Nehalem系列就是这种多线程),该方法是将两个线程叠加到一个处理器中,使得同一时钟周期内有两个不同的线程在运算(好处是复用了单核空间),但其缺点也很明显一旦一个线程很庞大占据大部分内核空间,则另一个线程就会被明显的延迟——造成互相争抢处理器资源的情况。这种多线程方式适用于线程运算量较小,系统利用率较低的情况——也因此我们在一些海量计算评测中发现打开超线程的性能反而不如关闭超线程时。
Don列举的两种常见的多线程方法
另一种常见的多线程则是CMP单新片多处理器结构,这种模式将每个线程都分配给专门的核心进行计算。简单来说就是将运行着的线程用强制方法约束在一个核心内(好处是单线程拥有足够资源),缺点是大任务量时每个内核都有很多线程在排队。
"推土机"架构拥有独特的设计思路,使得两个整数核心拥有一个共享的浮点计算单元
Don在介绍时表示,AMD有自己的思路并且在“推土机”架构中实现了另一种多线程方式:用两个整数核心与一个浮点计算模块共同组成一个核心模块。从而更细的将所处理的线程通过整数和浮点两部分来区分——这种模块化的组合将大大提高处理器的灵活性,并可让对缓存更敏感的整数计算单元享用更多缓存(L1 Cache只提供给整数计算器)。设想一下,如果今后类似APU中的庞大GPU模块来取代浮点计算单元,该处理器的优势将多么强大。
从数字上来看,代号“推土机”的新架构处理器采用了模块化设计方式,每个模块内包括两个四管线核心、两个整数调度器、一个浮点调度器、两个128位FMAC单元、共享二级缓存以及预取、解码单元,然后多个模块共享三级缓存。每个模块的两个核心彼此紧密关联,可以高效共享资源,同时还有大量新的能效和电源管理,IPC特性更丰富,栅极/时钟更低。
其两个整数核心支持执行两个线程,会共享对延迟要求较高的功能、平缓突发和低效应用、线程间动态分配资源,好处是比两个线程共享一个核心更高的伸缩性和可预测性、多线程负载的吞吐优势、单线程时所有共享资源均可访问、以少得多的面积和功耗提供CMP 80%的性能。
这张图更清晰的显示了整数模块和浮点模块之间的优先级关系,以及共用的L2缓存和L3缓存
Don表示,紫色部分标注的两个整数模块作为专用组件可以有效的提高系统在面对大多数应用时的性能(多数为整数),并能提高系统可扩展性。而红色部分的共享特性则有助于降低核心间的通信延迟和功耗。此外,值得一提的是“推土机”架构可以自动的让整数部分与浮点部分进行切换。进而最大限度的提升每瓦特性能。
那么这一个双整数模块单浮点模块的核心是如何与别的核心协同的呢?下面是一张基于“推土机”架构的处理器逻辑图:
可以明显看出“推土机”将模块化进行到底的设计思路——这种模块化布局可以造出任意核心数量的处理器——我们刚刚从国外网站确认“推土机”架构的桌面级产品将于今年12月交付给厂商做测试,并且在明年4月最终量产正式发布;而服务器端处理器“瓦伦西亚”(Valencia)将拥有六到八个核心,也会在明年年中前后发布,更晚还会发布拥有12~16个核心的“英特拉格斯”(Interlagos)。
国外网站曝光的八核心“推土机”晶圆图片
基于“推土机”架构的处理器将采用32nm HKMG工艺制造,拥有弹性浮点单元和HT3.1直连总线,并且支持动态调节平绿的Turbo Core 2.0技术以及双通道DDR3 1866Mhz内存。
指令集顺应新架构 “推土机”面向未来指令而生
推土机架构会在指令集方面做出大幅度的扩展,加入支持SSSE3、SSE 4.1/4.2、AVX、AES、FMA4、XOP、PCLMULQDQ等等,其中最关键的就是AVX。
AVX指令集可以执行256位浮点指令,但需要澄清的是,并没有什么所谓的“256位命令”。单精度命令都是32位的,双精度则是64位。使用今天标准的128位浮点单元,可以在一个时钟周期内并行执行四个单精度命令或者两个双精度命令。有了AVX效率就可以翻一番,亦即每时钟周期内执行八个32位单精度命令,或者两个64位双精度命令。
Flex FP弹性浮点单元由两个128位FMAC(乘法累加器)组成,每一个都可以在每时钟周期内执行FMAC、FADD(浮点加法)、FMUL(浮点乘法),而Intel的架构中只能通过单个FADD管线执行FADD指令,FMUL亦然。有了FMAC单元,乘法和加法命令不会像标准FADD、FMUL那样拥堵在一起,两个单元都可以灵活处理这些计算命令。如果一个程序只使用FADD,那么两个FMAC单元都可以全力执行FADD。
相比传统的多线程技术,面对两个整数级应用,“推土机”具有绝对优势
这种设计的其他好处还有:支持FMA4指令而实现非破坏性DEST,降低寄存器的压力;消除中间反复步骤,提高精确度。
“山猫”求小、求高效、求强大
Don在介绍“山猫”(Bobcat)架构时表示,其设计目标就是小巧、高效和低功耗——用以完成便携式的云终端设备等。据了解,“山猫”是AMD第一款APU上的CPU引擎(融合了GPU与CPU的处理器)。其性能可以达到目前AMD主流笔记本CPU性能的90%,但功耗只是现有产品的一小半。
山猫架构也是典型的整数+浮点计算器,并为整数单元配备了L1缓存,但与“推土机”同样,“山猫”也将整数调度器和浮点调度器分割开,从而使两者互不影响效率提高。
从Don的介绍中,记者了解到“山猫”的热设计功耗不到1瓦,其最早将应用在2011年发布的AMD笔记本平台“Ontario”上。更多细节我们会在今后介绍GPU与APU的文章里继续为各位介绍。
对比HD6800新架构GPU与上代异同
AMD全球副总裁Manju Hegde先生在技术日上着重围绕Fusion理念讲解了未来AMD希望通过CPU+GPU的方式让服务器和消费级电脑发挥更强的实力。他表示,AMD的融聚理念更注重能效,而不是盲目追求高性能。
Manju表示,从2010年10月份的最新数据来看,大中华区市场已经成了AMD GPU的最主要消费区。而自HD4000系列以来AMD在市场份额上就一直领先,到了HD5000系列则将GPU能效比推到了新的高度——相比晚来了半年的Nvidia Fermi系列仍然要高。
如今,HD6000系列GPU作为HD5000系列的继任者都有哪些方便的提升和改变呢?(注意,本次发布的是HD6800系列GPU,并没有发布HD6900系列)前者是面向图形领域,而后者则面向高端专业图形以及高性能计算领域。
Manju介绍表示,HD6800作为AMD第二代Direct 11标准下的GPU,以更高的能效比(每平方毫米比上一代高35%)和经过改进的图像质量特性成为替代HD5800系列的最佳产品。据了解,HD6800系列GPU由于内核被重新设计过,因而其浮点性能可以达到2Teraflops,每秒可以渲染24千兆个像素。此外还支持256位GDDR5高速显存,支持双扫描线并拥有增强的铺嵌单元。
本土为HD6800系列GPU的核心逻辑图
下面这张图很关键,在对比HD5850和HD6870时,我们可疑观察到一些数字的变化:如GPU面积从334平方毫米所见到255平方毫米,晶体管也相应的从21.5亿缩减到17亿。流处理器也从1600个缩减到1120个,SIMD引擎从18个精简到14个,条文单元从72个缩减到54个。在晶体管减少的情况下,HD6870的性能却提升了很多,HD6870每秒可以输出90000百万个多边形,而HD5850只能输出725百万个多边形。
从本土也可以看出HD6800系列比HD5000系列在图形显示中的优势——越平滑的渐变越好
以上信息可以给我们两个启示:1、HD6800系列对GPU架构做了很大的优化,使其性能有很大飞跃;2、由于晶体管数量减少,因此成本和良品率都应该得到提高,AMD新款GPU显卡的价格将更加平易近人。