服务器 频道

AMD技术日:解析“推土机”与新型GPU

    【IT168 专稿】日前,AMD在北京召开了2010创新技术大会,隆重发布了第二代DX11 HD6800系列显卡的同时,也为我们带来了最新的“推土机”(Bulldozer)架构CPU和“山猫”(Bobcat)架构的详细信息。本文前半部分主要解析两款CPU的有关信息,而后半部分则详解AMD HD6000系列GPU和上一代的区别。

AMD技术日:解析新型GPU与“推土机”

    Don Newell是AMD服务器部门的CTO,他认为,由于云计算趋势日渐明显,因而AMD在x86核心处理器方面未来将产品细分为两个平台:面向后端大规模计算对性能和扩展性需求的“推土机”(Bulldozer)以及面向客户端兼具灵活、低功耗和小巧的“山猫”(Bobcat)平台。

AMD技术日:解析新型GPU与“推土机”
▲AMD服务器部门CTO Don Newell

    面向性能及客户端和服务器市场的“推土机”

   要说“推土机”的架构,首先要提一下目前处理器支持多线程的方法。常见的有SMT同步多线程(Intel的Nehalem系列就是这种多线程),该方法是将两个线程叠加到一个处理器中,使得同一时钟周期内有两个不同的线程在运算(好处是复用了单核空间),但其缺点也很明显一旦一个线程很庞大占据大部分内核空间,则另一个线程就会被明显的延迟——造成互相争抢处理器资源的情况。这种多线程方式适用于线程运算量较小,系统利用率较低的情况——也因此我们在一些海量计算评测中发现打开超线程的性能反而不如关闭超线程时。

AMD技术日:解析新型GPU与“推土机”
▲Don列举的两种常见的多线程方法

    另一种常见的多线程则是CMP单新片多处理器结构,这种模式将每个线程都分配给专门的核心进行计算。简单来说就是将运行着的线程用强制方法约束在一个核心内(好处是单线程拥有足够资源),缺点是任务量低时空置核心资源。

AMD技术日:解析新型GPU与“推土机”
▲“推土机”架构拥有独特的设计思路,使得两个整数核心拥有一个共享的浮点计算单元

    Don在介绍时表示,AMD有自己的思路并且在“推土机”架构中实现了另一种多线程方式:用两个整数核心与一个浮点计算模块共同组成一个核心模块。从而更细的将所处理的线程通过整数和浮点两部分来区分——这种模块化的组合将大大提高处理器的灵活性,并可让对缓存更敏感的整数计算单元享用更多缓存(L1 Cache只提供给整数计算器)。设想一下,如果今后类似APU中的庞大GPU模块来取代浮点计算单元,该处理器的优势将多么强大。

    从数字上来看,代号“推土机”的新架构处理器采用了模块化设计方式,每个模块内包括两个四管线核心、两个整数调度器、一个浮点调度器、两个128位FMAC单元、共享二级缓存以及预取、解码单元,然后多个模块共享三级缓存。每个模块的两个核心彼此紧密关联,可以高效共享资源,同时还有大量新的能效和电源管理,IPC特性更丰富,栅极/时钟更低。 

    其两个整数核心支持执行两个线程,会共享对延迟要求较高的功能、平缓突发和低效应用、线程间动态分配资源,好处是比两个线程共享一个核心更高的伸缩性和可预测性、多线程负载的吞吐优势、单线程时所有共享资源均可访问、以少得多的面积和功耗提供高性能。

AMD技术日:解析新型GPU与“推土机”
▲这张图更清晰的显示了整数模块和浮点模块之间的优先级关系,以及共用的L2缓存和L3缓存

    Don表示,紫色部分标注的两个整数模块作为专用组件可以有效的提高系统在面对大多数应用时的性能(多数为整数),并能提高系统可扩展性。而红色部分的共享特性则有助于降低核心间的通信延迟和功耗。此外,值得一提的是“推土机”架构可以自动的让整数部分与浮点部分进行切换。进而最大限度的提升每瓦特性能。

    那么这一个双整数模块单浮点模块的核心是如何与别的核心协同的呢?下面是一张基于“推土机”架构的处理器逻辑图:

AMD技术日:解析新型GPU与“推土机”

    可以明显看出“推土机”将模块化进行到底的设计思路——这种模块化布局可以造出任意核心数量的处理器——我们刚刚从国外网站获悉“推土机”架构的桌面级产品将于明年上半年正式发布;而服务器端处理器“瓦伦西亚”(Valencia)将拥有八个核心,也会在明年年中前后发布,更晚还会发布拥有16个核心的“英特拉格斯”(Interlagos)。

AMD技术日:解析新型GPU与“推土机”
▲国外网站曝光的八核心“推土机”晶圆图片

    基于“推土机”架构的处理器将采用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。

AMD技术日:解析新型GPU与“推土机”
▲相比传统的多线程技术,面对两个整数级应用,“推土机”具有绝对优势

    这种设计的其他好处还有:支持FMA4指令而实现非破坏性DEST,降低寄存器的压力;消除中间反复步骤,提高精确度。

    “山猫”求小、求高效、求强大

    Don在介绍“山猫”(Bobcat)架构时表示,其设计目标就是小巧、高效和低功耗——用以完成便携式的云终端设备等。据了解,“山猫”是AMD第一款APU上的CPU引擎(融合了GPU与CPU的处理器)。其性能可以达到目前AMD主流笔记本CPU性能的90%,但功耗只是现有产品的一小半。

AMD技术日:解析新型GPU与“推土机”
▲山猫架构也是典型的整数+浮点计算器,并为整数单元配备了L1缓存,但与“推土机”同样,“山猫”也将整数调度器和浮点调度器分割开,从而使两者互不影响效率提高。

    从Don的介绍中,记者了解到“山猫”的热设计功耗不到1瓦,其最早将应用在2011年发布的AMD笔记本平台“Ontario”上。更多细节我们会在今后介绍GPU与APU的文章里继续为各位介绍。

0
相关文章