CPU中推土机架构是什么

   CMP和SMT

  CMP:CMP的方式非常直接,简单来说,CMP是通过“复制”物理核心来扩展处理器在多线程软件中的性能,这是获得最佳性能一种最简单和最有效的方式。但CMP的缺点是制造成本很昂贵,并且也要受到处理器制造工艺的限制,毕竟不能将芯片做的越来越大。并且CMP的方式对负载要求也很高,只有经过适当并行优化的负载才能充分发挥CMP的性能,很多核心的CMP常常会浪费资源,在一些应用中,主频更高、结构更简单的双核和四核处理器就往往可以获得更好的性能。

  SMT:SMT是一个相对廉价的技术,比如英特尔的Hyper-Threading,允许每个物理核心运行两个同步线程。SMT的设计思想是充分利用每个核心的资源。如果一个物理核心只有一个执行线程,那么在等待内存中的关键代码或数据的时候,线程处于停顿状态,这样核心的利用率是低下的。而SMT技术允许一个物理核心运行两个或更多的线程,可以根据当前的状况动态进行切换,如果一个线程处于停顿状态等待内存,另一个线程的指令则可以使用这个物理核心的所有执行单元,让物理核心利用的更加充分。

  为了让SMT正常工作,处理器的所有代码和存储部分需要被复制或分区。例如,一个双线程SMT处理器需要两套架构寄存器和重命名寄存器,一套给线程A,一套给线程B。另外组成指令窗口的共享指令队列要具备很大的空间,这样指令窗口才能容纳足够多的来自两个线程的指令,让执行单元可以保持在忙碌状态。最后,两个线程任何共享单元,比如处理管线不同部分的指令缓存,都不能被任一个线程独占。换句话说,SMT核心的两个线程需要和另一个紧密的共享资源,保证核心的缓存单元不会空置没有线程利用。


  推土机架构分析

  AMD“推土机”将采用32nmSOI工艺,这让“推土机”相比“马尼库尔”皓龙处理器可以在不增加功耗的前提下增加33%的核心数量、增加50%的吞吐量。与AMD之前所有处理器都有所不同的是,“推土机”采用了“模块化”的设计,每个“模块”包含两个处理器核心,这有些像一个启用了SMT的单核处理器。每个核心具有各自的整数调度器和四个专有的管线,两个核心共享一个浮点调度器和两个128位FMAC乘法累加器。

  所不同的,在K10架构中,ALU和AGU共享三个管线(平均1.5个),“推土机”中每个核心整数单元管线的数量增加为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)和一组完整的整数执行单元。

时间: 2024-11-03 08:37:32

CPU中推土机架构是什么的相关文章

CPU中Bulldozer是什么

  针对Intel规划的45nm工艺全新架构Nehalem,AMD准备的相应武器已经浮出水面,代号"Bulldozer"(推土机). 在标称自己的处理器的时候,Intel和AMD已经不约而同地改用"性能每瓦特"作为指标,对Bulldozer同样如此.AMD称,Bulldozer桌面版和移动版的性能每瓦特将是Barcelona的1.3倍,在服务器和高性能计算平台上则可以达到1.5-2.0倍.AMD对Bulldozer的期待是"有史以来最高性能的单线程和多线程

java在CPU中的一些个破事

其实写java的人貌似和CPU没啥关系,最多最多和我们在前面提及到的如何将CPU跑满.如何设置线程数有点关系,但是那个算法只是一个参考,很多场景不同需要采取实际的手段来解决才可以:而且将CPU跑满后我们还会考虑如何让CPU不是那么满,呵呵,人类,就是这么XX,呵呵,好了,本文要说的是其他的一些东西,也许你在java的写代码时几乎不用关注CPU,因为满足业务才是第一重要的事情,如果你要做到框架级别,为框架提供很多共享数据缓存之类的东西,中间必然存在很多数据的征用问题,当然java提供了很多conc

AMD发布“推土机”架构FX系列处理器

北京时间10月12日下午消息,经过漫长等待,AMD最终揭开了FX系列处理器的神秘面纱,这一系列处理器采用AMD耗时多年研发的新一代"推土机"架构. 据AMD介绍,该公司开发FX系列处理器是用以"满足那些寻求获得最高性能和17814.html">可升级性的用户的需求."换言之,AMD希望通过率先推出重磅产品引领业界潮流,今后还将推出价格更为低廉的组件. FX系列的旗舰产品是八核处理器FX-8150,基本频率为3.6GHz.FX-8150处理器CPU T

CPU中三级缓存是什么

  三级缓存是为读取二级缓存后未命中的数据设计的-种缓存,在拥有三级缓存的CPU中,只有约5%的数据需要从内存中调用,这进一步提高了CPU的效率.其运作原理在于使用较快速的储存装置保留一份从慢速储存装置中所读取数据且进行拷贝,当有需要再从较慢的储存体中读写数据时,缓存(cache)能够使得读写的动作先在快速的装置上完成,如此会使系统的响应较为快速. 分类 Cache(三级缓存),分为两种,早期的是外置,以后的升级产品都是内置的.而它的实际作用即是,L3缓存的应用可以进一步降低内存延迟,同时提升大

cpu中一级缓存是什么

  一级缓存都内置在CPU内部并与CPU同速运行,可以有效的提高CPU的运行效率.一级缓存越大,CPU的运行效率越高,但受到CPU内部结构的限制,一级缓存的容量都很小. CPU缓存(Cache Memory)是位于CPU与内存之间的临时存储器,它的容量比内存小的多但是交换速度却比内存要快得多.缓存的出现主要是为了解决CPU运算速度与内存读写速度不匹配的矛盾,因为CPU运算速度要比内存读写速度快很多,这样会使CPU花费很长时间等待数据到来或把数据写入内存.在缓存中的数据是内存中的一小部分,但这一小

CPU中超线程技术是什么

  超线程技术是在一颗CPU同时执行多个程序而共同分享一颗CPU内的资源,理论上要像两颗CPU一样在同一时间执行两个线程,P4处理器需要多加入一个Logical CPU Pointer(逻辑处理单元).因此新一代的P4 HT的die的面积比以往的P4增大了5%.而其余部分如ALU(整数运算单元).FPU(浮点运算单元).L2 Cache(二级缓存)则保持不变,这些部分是被分享的. 虽然采用超线程技术能够同时执行两个线程,但它并不象两个真正的CPU那样,每个CPU都具有独立的资源.当两个线程都同时

将规则集嵌入到由公共云托管的Web应用程序中的架构和流程

在本系列的第 2 部分中,我们将介绍用于将规则集嵌入到由公共云托管的 Web 应用程序中的架构和流程. 本专栏面向 http://www.aliyun.com/zixun/aggregation/13387.html">WebSphere Operational Decision Management 开发人员,并假设读者能够从开发人员的角度较好地理解该产品.参阅 参考资料 部分,了解完成本专栏介绍的步骤需要具备的知识.在撰写本专栏时,我使用的产品版本为 WebSphere Operati

windows下线程在cpu中运行情况

问题描述 windows下线程在cpu中运行情况 windows下用户级线程不是资源分配的单位,那么在执行的过程中对于4核的CPU,操作系统会将一个进程下的四个线程分别分配给四个核么以使得它们同时运行,提高效率? 解决方案 会,四个线程分别分配给四个核么以使得它们同时运行,提高效率 解决方案二: 多核CPU就是为了提高并发,可能4个线程泡在4,3,2,1个CPU都有可能

Oracle 12c CDB数据库中数据字典架构

数据字典就是元数据的集合,比如创建的表,列,约束,触发器等等这些都是元数据,需要保存到数据库中.除此之外,Oracle自身的一些数据库对象,如目录,PL/SQL代码等等这些都是元数据,都需要存放在数据字典中.随着12c 容器数据的普及,Oracle数据字典发生了哪些变化呢,下文即是具体描述. 一.数据字典及其形成 1.数据字典 数据字典是元数据的集合,从逻辑上和物理上描述了数据库及内容,存储于SYSTEM与SYSAUX表空间内的若干段. SYS用户拥有所有的数据字典表,数据字典基本一般以结尾,如