推土机架构
简介AMD首次公开了下一代微处理器架构“推土机”(Bulldozer)的架构
细节,提出新观念的同时也留下了个问题:以后的处理器核心数量该怎么计算?
Intel Nehalem架构支持单核心双线程,而AMD推土机架构则颇有点儿反其道而行之的意思,将每两个核心捆绑在一块儿,称之为一个“推土机模块”(Bulldozer Module),让其中着两个核心既有各自独立的执行管线、整数调度器和一级缓存,也有共享的预取和解码单元、浮点调度器(和两个128-bit FMAC乘法累加单元)、二级缓存。
Intel在Core/Nehalem微架构中使用一个统一调度器处理所有指令,不管是整数的还是浮点的,而AMD推土机架构将它们独立开来。AMD表示,每个推土机模块都有一个浮点调度器,辅以两个128-bit FMAC,而分配给核心的每个线程都可以使用任意一个FMAC单元;如果一个线程是纯整数的,另一个就可以将所有浮点执行资源据为己有。
另外AMD相信,常规服务器工作负载量中有80%都是纯整数操作,所以才给每个推土机模块配备了两个整数调度器,每个核心一个。
那么在AMD路线图上的新架构四核心处理器指的是四个这样的模块呢,还是四个计算核心呢?
AMD对此给出的回复是:“将每个拥有双整数核心的推土机模块视为一个独立的单元,就对了。”显然,AMD在这里刻意回避了单纯的核心数量问题,更强调两两组成的有机整体,所以在面对推土机架构处理器的时候我们可以说它是四核心、八核心的,也可以说是双模块、四模块的。或许,以后不会再有奇数核心了,因为推土机的每个模块都是整体的,看起来不能单独屏蔽其中一个核心。
单模块(双核心)
双模块四核心推土机处理器示意图(所有核心共享三级缓存和北桥)
四模块(八核心)
Intel的超线程技术让处理器核心面积增加了不到5%,可带来最多30%的性能提升,其中浮点7%、整数13%,当然实际应用中差异很大。
AMD推土机模块使用两个整数核心增加的核心面积则有50%左右,但AMD表示这在线程代码上获得的性能提升最多能有80%。当然,不要指望新架构就能带来翻天覆地的变化。根据路线图,“赞比西河”(Zambezi)会有四核心和八核心版本(双模块和四模块),其中四核心的整数性能大约比频率类似的Phenom II X4高出10-35%,八核心的将成为一个线程怪兽。
在Hot Chips大会上AMD公布了详细的架构资料推土机还是x86架构,采用模块化设计方式,每个模块内包括两个四管线核心、两个整数调度器、一个浮点调度器、两个128位FMAC单元、共享二级缓存以及预取、解码单元,然后多个模块共享三级缓存。每个模块的两个核心彼此紧密关联,可以高效共享资源,同时还有大量新的能效和电源管理,IPC特性更丰富,栅极/时钟更低。
在多线程计算方面,主要有两种传统技术:同步多线程(SMT)、芯片多处理(CMP)。AMD认为它们都存在不少缺点。
推土机模块的两个核心支持执行两个线程,会共享对延迟要求较高的功能、平缓突发和低效应用、线程间动态分配资源,好处是比两个线程共享一个核心更高的伸缩性和可预测性、多线程负载的吞吐优势、单线程时所有共享资源均可访问、以少得多的面积和功耗提供CMP 80%的性能。
指令集架构(ISA)和功能扩展:推土机支持SSE4.1、SSE4.2、AVX、XSAVE、XOP等最新指令集,还有Light Weight Profiling (LWP)——3DNow!指令集被删除。
推土机还在能效、电源管理方面做了大量努力,微架构方面支持资源动态共享、数据转移最小化、大量时钟和电源栅极,并增加了主动电源管理(APM),支持芯片级的核心功耗栅极。根据不同的工作负载,芯片功耗也会实时相应调整,同时给超频留下了空间。
总结:推土机重点改进的地方包括功耗/核心面积效率、新的ISA支持、核心扩展性、模块化设计理念,有望显著改善单位功耗和面积的性能。