“推土机”架构处理器简介
桌面和服务器领域对性能的要求不断增加。
想要获得更好的效率与性能就必须得在架构上做文章。
一直以来AMD都在为处理器多线程性能而伤神。
而它的竞争对手Intel,则通过HT技术成功解决了这个问题。
AMD决定在推土机架构上运用一种模块化的方法来改变这一局面。
每一个推土机核心都有两个独立的整数簇,每一个簇都有专门的L1数据缓存,并且采用模块化设计共享L2缓存、浮点程序机以及两个最高支持256位浮点运算的128位浮点运算单元。
这种共享资源的方式不仅降低了处理器的功耗,同时也缩减了芯片面积,进而成本得以降低。
“推土机” 处理器结构图
处理器内部结构(两级分支目标缓冲)
线程结构
浮点程序机与缓冲器
数据预取器、共享2级缓存
“推土机”处理器特点
推土机架构拥有一条更深层的管线。
这条管线依靠改进型分支预测与预取器来解决由错误的分支预测造成的瓶颈问题。
与旧架构不同,预测与读取管线都运行在非耦合状态下。
未提取地址序列由预测器创建,允许取逻辑通过这个序列并与指令缓存中的数据进行对比。
推土机的另一个重大改变是功率门控技术。
每一个模块都可以独立控制频率与功耗,未使用的核心可以关闭掉,而其他活跃的核心则可以通过提高频率来达到加速的目的。
基于最新的32nm硅绝缘体技术制造,推土机架构处理器最多可拥有8个核心(操作系统识别为逻辑核心)这些核心由4个共享L3缓存和北桥资源的推土机架构模块构成。
这些模块经过特别设计可以动态调整共享资源与独立资源来使效率最大化,同时推土机架构处理器支持新的x86指令集,例如SSE4.1、SSE4.2、AVX、XOP以及FMAC,提供更强劲的性能、更广泛的适应性。
AMD计划将处理器的运算能力提高50%,而热设计功耗则保持和现有的AMD皓龙6100系列“magny-Cours”架构服务器级处理器相当。
重新设计的处理器架构
AMD对推土机的官方说法是,它介于传统的多核心结构和同步多线程结构(SMT)之间。
在传统结构中,每一个并存运行的线程工作在独立的核心中,而SMT结构则是两个或多个线程通过同步计算共享同样的核心。
AMD将推土机定位于两者之间,即两个线程共享一个单独的前端但是拥有单独的整数运算资源。
什么是同步多线程(SMT)?
传统的SMT主要针对的问题是:我们该如何在当前线程正在等待关键指令的时候继续让处理器保持工作?事实上,存储当前停滞的线程状态或者关掉它都要需要很长时间。
并且这一操作会多次读取内存。
所以SMT本质上就是保持处理器中有两个或者多个线程,而处理单元可以根据当前状态,动态的调节它们(很有可能是基于线程优先级)。
也就是说,一个线程在等待读取主内存信息时处于停滞状态,那么另一个未停滞的线程就能够马上处理信息,这期间不会产生任何的关联转换。
拿一个两路SMT处理器举例。
这颗处理器需要两套不同的架构重命名寄存器,一套为线程A服务,而另一套则为线程B服务。
此外,处理器还需要在共享指令序列中预留足够的空间,这样指令窗口才能够容纳足够的指令来保证执行单元的运行。
任意一个共享结构(通常是信道中不同部分的指令缓冲器)都需要被分割开以保证不会有线程被其他线程挤出去。
换句话说,两个线程的配合要恰当,最好是通过使用一些灵活的方案,而不是在没有第二个线程的情况下造成缓冲器过空。
由于增加了存储空间和记录功能,SMT会使处理器的核心面积增大,功耗也会略微升高。
但是如果SMT可以保证处理器在读取主内存信息时不会造成阻塞并且白白耗电,这一变动还是值得的。
同步多线程的优与劣
SMT尤其适合多线程任务,前提是没有某一个线程需要全力运行。
对于双路SMT来说,如果两个线程都在耗费时间等待读取主内存信息,那么双路SMT的两个线程就像双核处理器一样,不过效率要比双核处理器更高,因为从硬件本身的价值来说,它仅仅相当于一个多核心。
AMD宣称在实际使用中,一个双路SMT核心工作起来相当于1.3个常规核心,这是因为其工作线程不会等待读取主内存信息而是等待执行资源的释放。
换句话说,在主内存不是瓶颈的情况下,执行单元会迅速成为过剩资源,这时SMT核心的工作效率就会比传统的非SMT核心低(它就像单核心一样工作,但是它包含其它的硬件,所以总的来说,它的效率是略低的)。
所以说,效率的高低还是要取决于任务量。
当有过多的指令等待处理,而执行单元又太少的时候,SMT核心必然会受到影响。
“推土机”架构解决方案
AMD解决执行单元瓶颈的方法简单来说就是通过复制负责整数执行的硬件来使每一个线程都有一套整数单元。
传统SMT只是复制处理器的存储部分来使每一个线程都有一个证书寄存器页面文件。
推土机使这一机制更进一步,它通过复制整数单元,来保证每一个线程都有一个寄存器文件和一套完整的整数单元。
这也是推土机结构与传统双路SMT结构的主要区别。
所以,推土机实际上并不是双核心,它更像是1.5个核心,而传统的SMT处理器核心则相当于1.2个核心。
毋庸置疑的是推土机将会比传统SMT运行更好。
但是这是以堆加额外的整数执行单元为代价的。
如何发挥推土机的优势很大程度上取决于性能和推土机的缓存层次结构调整,取决于核心的内部缓冲器、取决于队列的大小是否正确配置的、取决于如何有效合理地为每一个线程分配队列空间(特别是在一个或两个线程过度使用共享资源时)。
AMD声称浮点运算单元是处理器的共享部分之一,所以在理想情况下推土机处理器应该具有非常不错的浮点运算能力。
如果内存带宽足够,这款处理器很可能是浮点运算的怪兽。
“推土机”可以拯救AMD吗?
推土机架构并不是一场博弈。
相比IBM,Intel等其他公司的SMT架构设计来说,推土机架构实际上要保守的多,更像是老架构进化的产物。
在处理器设计领域,进化远比变革要好。
激进的设计通常都会让人失望(比如Itanium,奔4,IBM CELL)。
而保守的、循序渐进的设计通常都会在最后胜出。
对于AMD来说,其新架构最大的进步就是添加了一套完整独立的整数单元。
这一技术的引入带来了诸多改进的同时,也带来了许多的细节设置问题(缓存大小,缓存结合性,缓存延迟,指令缓冲器大小,分割策略,解码带宽等等都需要通过调节来找到其正确的值)。
当然,这对于全新的设计来说是肯定会遇到的,但是对于AMD来说是冒险的,当设计成熟的时候,这些值通常已经调整到了最佳设置上,但是推土机架构在未来的一段时间内是不可能迅速成熟的。
AMD需要尽快发布推土机,AMD需要时间完善产品。
AMD的容错值几乎是零。
所以,即使第一款推土机架构产品按时发布,并且相比竞争对手Intel的产品,有足够的性价比,能耗比。
推土机也不太可能打出AMD需要的本垒打。
写在最后
AMD擅于攻击Intel的软肋进而取得胜利。
Intel的产品线出现漏洞的时候,AMD曾取得过巨大的胜利。
例如,当Intel宣布EPIC和Itanium将会向64位发展的时候,AMD以x80-64位展开反击,并且在服务器市场取得辉煌的胜利。
还有,当QPI的延迟迫使Intel继续使用其年迈的前端总线架构的时候,AMD推出了更高级的HT总线技术抢占多处理器服务器市场。
当Intel力推RAMBUS内存的时候,AMD则沿用更便宜的DDR内存,并且在平台能耗上取得优势。
就目前来说,Intel传统服务器平台并没有什么明显的破绽,至强产品线非常强大。
(移动领域就是另一回事了)而基于推土机架构的新一代处理器目标正是服务器市场。
此时此刻,AMD要攻击的是Intel最强硬的部分。
但是要注意前面说过的“传统服务器平台”。
Intel目前为数据中心提供的硬件仍然有一个明显的缺口。
那就是Intel并没有开发节能的分布式云服务器。
而这一缺口正在被ARM和SeaMicro这样的新兴企业,通过基于移动技术的分布式服务器来抢占。
最近发现一个比较怪异的事情,在访问和登录大部分国外主机商和域名商的时候都需要二次验证。常见的就是需要我们勾选判断是不是真人。以及比如在刚才要访问Namecheap检查前几天送给网友域名的账户域名是否转出的,再次登录网站的时候又需要人机验证。这里有看到"Attention Required"的提示。我们只能手工选择按钮,然后根据验证码进行选择合适的标记。这次我要选择的是船的标识,每次需要选择三个,一...
我们在去年12月分享过Hosteons新上AMD Ryzen9 3900X CPU及DDR4内存、NVMe硬盘的高性能VPS产品的消息,目前商家再次发布了产品更新信息,暂停新开100M带宽KVM套餐,新订单转而升级为新的Budget KVM VPS(SSD)系列,带宽为1Gbps端口,且配置大幅升级,目前100M带宽仅保留OpenVZ架构产品可新订购,所有原有主机不变,用户一直续费一直可用。Bud...
卢森堡商家gcorelabs是个全球数据中心集大成的运营者,不但提供超过32个数据中心的VPS、13个数据中心的cloud(云服务器)、超过44个数据中心的独立服务器,还提供超过100个数据中心节点的CDN业务。CDN的总带宽容量超过50Tbps,支持免费测试! Gcorelabs根据业务分,有2套后台,分别是: CDN、流媒体平台、DDoS高防业务、块存储、cloud云服务器、裸金属服务器...