amd 有什么架构
严格来说,现代CPU本质上都是 RISC处理器 86-64 又叫 AMD64,它的 Intel 版本叫做 EM64T(换个名字而已),是AMD在 IA32 的基础上扩展出来的一套 64位 CPU 架构,Intel 可以使用的原因也是因为 Intel和AMD之间的交叉专利授权。x86-64是AMD在其最新的Athlon 64处理器系列中采用的新架构,但这一处理器基础架构还是IA-32,在IA-32架构基础之上作了一些扩展,以支持64位程序的应用,进一步提高处理器的运算性能。x86-64相比Intel的64位服务器处理器产品Itanium和 Itanium 2系列处理器产品来说最大的优点就是可以全面兼容以前的32位x86架构的应用程序,保护以用户以前的投资;而Intel的Itanium和 Itanium 2系列处理器需要另外通过软件或硬件来实现对以前32位程序的兼容,所以IA-32(即x86-32)、x86-64都属于x86,即英特尔的32位x86架构,如Intel的32位服务器Xeon(至强)处理器系列、AMD的全系列,还有VIA的全系列处理器产品都属于x86架构的, IA-64架构是英特尔为了全面提高以前IA-32位处理器的运算性能,是Intel和Hp共同开发了6年的64位CPU架构,是专为服务器市场开发的一种全新的处理器架构,它放弃了以前的x86架构,认为它严重阻碍了处理器的性能提高。它的最初应用是英特尔的Itanium(安腾)系列服务器处理器,现在最新的Itanium 2系列处理器也是采用这一架构的。由于它不能很好地解决与以前32位应用程序的兼容,所以应用受到较大的限制,尽管目前Intel采取了各种软、硬方法来弥补这一不足,但随着AMD Operon处理器的全面投入,Intel的IA-64架构的这两款处理器前景不容乐观。
推土机架构 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%,八核心的将成为一个线程怪兽。
AMD“推土机”将采用32nmSOI工艺,这让“推土机”相比“马尼库尔”皓龙处理器可以在不增加功耗的前提下增加33%的核心数量、增加50%的吞吐量。与AMD之前所有处理器都有所不同的是,“推土机”采用了“模块化”的设计,每个“模块”包含两个处理器核心,这有些像一个启用了SMT的单核处理器。每个核心具有各自的整数调度器和四个专有的管线,两个核心共享一个浮点调度器和两个128位FMAC乘法累加器。 所不同的,在K10架构中,ALU和AGU共享三个管线(平均15个),“推土机”中每个核心整数单元管线的数量增加为4个,2个AGU专有、2个ALU专有。L1缓存也有所不同,在K10架构中,每个核心具有64KB L1指令缓存和64KB L1数据缓存;而“推土机”每个核心具有16KBL1数据缓存、每个模块具有64KB双向L1指令缓存,至于减小的L1缓存是否会影响性能还有待观察。两个核心共享L2缓存,模块之间共享L3缓存及北桥。 AMD“推土机”模块 “模块”和“核心”,这让我们不免会产生混淆,实际对于用户们来说,没必要去刻意的关注“模块”的概念,这只不过是AMD在设计上的称谓,而当产品投放市场的时候,依旧会以核心数量为标识,比如我们说采用推土机架构的“Interlagos”服务器处理器具有16个核心,而不会说是8个模块。对于为何采用这种“模块”设计的主要原因,AMD表示是“为了减少CPU的冗余电路”。 如果采用CMP的方式,随着核心数量的增加,CPU的核心面积也会越来越大,重复的电路也会越来越多,功耗也会随之增加——因为CMP是采用复制核心的方式。而采用“模块”设计可以大大减少冗余电路,这对核心的大量增加很有意义。比如“推土机”,两个核心共享浮点部分,对于大部分服务器应用来说,整数运算的部分要远远高于浮点运算(高性能计算除外),所以将浮点执行单元共享并不会影响大多数应用中的性能。而整数部分则不是共享的,否则会造成瓶颈。 上文我们回顾过CMP和SMT设计的特点,我们可以把AMD“推土机”架构看做是介于这两种之间的一种设计:两个线程(核心)共享浮点执行单元,但是各自具有独立的整数执行资源。这看上去像是SMT的另一种形式,或者说是经过AMD改良的一种“AMD式的第三种方式”。但与传统的SMT设计不同,SMT仅仅复制的是核心的存储部分,一个线程一个存储模块(registerfile),而AMD“推土机”架构中,每个线程复制的是完整的整数执行单元硬件,一个线程具有一个存储模块(registerfile)和一组完整的整数执行单元。 AMD“推土机”核心架构的一些特性 每个线程具有独立的整数执行单元是AMD“推土机”和双线程SMT设计的主要区别。不过从“推土机”的设计来看,这并不像真正意义上的“CMP双核”,毕竟两个核心还要共享浮点执行单元,或者可以称之为“15核”。这样设计的好处就是能够大大节省晶体管的数量、降低核心面积和功耗,同时降低成本。即使不是真正的“双核”,但不难想象这样的设计要比SMT更加高效,相比之下,传统的SMT设计可以称之为是一种“12核”的设计。 AMD表示平均计算下,一个单独的“推土机”核心执行两个线程可以达到18核CMP的效率,但是,这样的数字也是要依赖于负载情况。虽然“推土机”的模块设计要比传统的SMT设计在执行效率上更高,但是增加的整数执行单元也提高了成本和能耗。另外,没有意外的话,AMD“推土机”应该具备很好的浮点计算性能。AMD表示虽然FPU是被两个线程共享的一个部分,如果给予足够的内存带宽,芯片将具有很高的浮点运算能力。
有的,AMD首款ARM架构的处理器是“Opteron A1100”,代号“西雅图”。
属于服务器处理器;
基于64-bit ARM Cortex-A57架构,采用SoC单芯片设计;
拥有四个或八个核心,每一对核心共享1MB二级缓存,总计最多4MB;
全部核心共享一体化三级缓存,容量最多8MB;
频率可超过2GHz,制造工艺则是GlobalFoundries 28nm;
内存控制器同时支持DDR3、DDR4。位宽是128-bit,双通道,类型支持SODIMM、UDIMM、RDIMM,最高频率1866MHz,最多可安装四条,RDIMM DDR3最大容量128GB;
集成了PCI-E 30总线控制器,八条信道,可拆分为单路x8、双路x4,还有SATA 6Gbps控制器,最多八个接口,整合光纤,还有两个10GbE万兆以太网端口、ARM TrustZone安全模块、加密和数据压缩协处理器。
0条评论