海归网首页   海归宣言   导航   博客   广告位价格  
海归论坛首页 会员列表 
收 藏 夹 
论坛帮助 
登录 | 登录并检查站内短信 | 个人设置 论坛首页 |  排行榜  |  在线私聊 |  专题 | 版规 | 搜索  | RSS  | 注册 | 活动日历
主题: 给楼下的绽铃子大师提几个建议
回复主题   printer-friendly view    海归论坛首页 -> 海归商务           焦点讨论 | 精华区 | 嘉宾沙龙 | 白领丽人沙龙
  阅读上一个主题 :: 阅读下一个主题
作者 给楼下的绽铃子大师提几个建议   
所跟贴 在“内存墙”的困扰中寻找出路1 -- ssss - (1033 Byte) 2010-4-08 周四, 19:22 (640 reads)
ssss





头衔: 海归中尉


加入时间: 2010/04/08
文章: 36

海归分: 4121





文章标题: 在“内存墙”的困扰中寻找出路2 (640 reads)      时间: 2010-4-08 周四, 19:22   

作者:ssss海归商务 发贴, 来自【海归网】 http://www.haiguinet.com

降低“内存墙”影响的两条基本途径
内存的性能指标主要有“带宽”(Bandwidth)和“等待时间”(Latency),从这两项指标的基本概念出发,更便于我们理解与“内存墙”问题相关的技术发展。

1.内存带宽及其提升技术
内存带宽(Bandwidth)指内存在单位时间内通过总线传输的数据量,可以用公式“内存带宽=(传输倍率×总线位宽×工作频率)÷8”进行计算,单位为“字节/秒”(Byte/s)。总线位宽指内存数据总线的位数,工作频率也就是内存的时钟频率,传输倍率是指每条内存数据线在一个时钟脉冲周期内传输数据的次数。显然,提高内存带宽的基本方法当就是公式中决定内存带宽的三个因素,即总线位宽、工作频率和传输倍率。

提高内存总线位宽:在现有采用独立内存芯片的架构下,进一步增加内存位宽受到了内存芯片数据线引脚数量的限制,所以通过增加位宽来提升内存带宽的方式,需要采用能有效消除这种引脚限制的新型内存架构。例如受到广泛关注的“内存与处理器集成”技术,就具有通过增加内存位宽来明显提升内存带宽的特点。

提高内存工作频率:单纯依靠提高工作频率来提升内存带宽的方法,会受到内存芯片发热量和工艺难度增加等方面的制约,所以采用这种方法进一步提高内存带宽的空间非常有限。

提高内存传输倍率:通过增加传输倍率来提升内存带宽的方法对大家来说更为熟悉。例如DDR内存是双倍数据率(Double Data Rate),其每条数据线都能够从存储单元预取2位数据,并分别在时钟脉冲的上升沿和下降沿各传输1位数据,即在一个时钟周期的传输倍率为2,在相同频率下DDR内存的数据传输量是SDRAM内存的2倍。同理,DDR2内存、DDR3内存的传输倍率分别为4、8,而Rambus的“百万兆字节带宽”技术则可将传输倍率提高到32,从而大幅度提升内存的带宽。

2.内存等待时间及其屏蔽技术
内存等待时间(Latency),即从处理器向内存发出访问请求到内存发出数据所用的时间,一般用“纳秒”(ns)来度量。相对于处理器的高速处理能力而言,内存等待时间显得过长,在现有内存技术还不能从根本上大幅度降低等待时间的情况下,利用高速缓存技术和并行处理技术来尽量降低“内存墙”的影响目前仍然是有效的方法。

内存等待时间屏蔽技术:将处理器可能访问的数据和程序代码预先保存到高速缓存中,尽可能地减少处理器对内存的直接访问,而是从高速的缓存中获取数据,就是一种典型的内存等待时间屏蔽(Latency Hiding)技术。这种基于缓存机制的技术一直是降低“内存墙”影响的常规方法。

硬件支持的并行处理技术:虽然由硬件支持的多线程、乱序执行等并行处理技术并不能直接解决“内存墙”问题,但多线程和乱序执行的并行处理机制,能够更有效地减少在处理任务过程中处理器资源被闲置的情况,当处理器处理大量任务时其“资源不被闲置”所产生的累积效应,就能使吞吐量明显增加,因此整体的处理效率就相应地有所提升,从而在一定程度上屏蔽了“内存墙”的影响。 现实中如何降低内存等待时间
由于提升内存的工作频率难度很大,因此在降低内存等待时间时,厂商并非直接改进内存,而是将目光集中在如何优化处理器对内存的使用上。从最新的Intel Core i7和AMD Phenom Ⅱ等四核处理器中可以看到,用于降低内存等待时间的缓存和预取、多线程和乱序执行等技术被进一步改进,同时处理器集成内存控制器进一步降低了内存等待时间。

1.增强的多级缓存和预取技术
当处理器需要读取数据时,首先会在自己的缓存中查找,如果找到就高速读取到核心中处理,这被称为“缓存命中”,访问缓存的命中次数与总访问次数的比率称为“命中率”(Hit Rate)。利用缓存有效降低内存等待时间的关键是要尽可能提高缓存命中率,目前多核处理器缓存技术的发展趋势是采用更大容量的、更多级的缓存结构,以及更为有效的缓存管理和数据预取技术。


多核处理器的三级缓存设计

增强的大容量多级缓存设计:增加缓存的容量可保存更多的数据,显然能提高缓存命中率。而增加缓存的层级是提高缓存命中率的另一种途径,例如两级缓存中L1、L2的理论命中率均为80%左右,两级缓存总的命中率大约为(80+0.2×80)%=96%,依此类推缓存级层越多命中率越高。因此在Core i7和Phenom Ⅱ等新一代四核处理器中,都采用了大容量的三级缓存结构,每个处理器核心都具有独立的L1、L2两级缓存,共享大容量L3缓存,其中Phenom Ⅱ的L3缓存容量为6MB,Core i7的L3缓存容量更达到了8MB,并且Core i7的微架构中还采用了易扩展设计,为今后继续增大L3缓存容量埋下了伏笔。

更有效的缓存管理技术:对于多核处理器的缓存系统而言,采用更有效的缓存管理技术也是非常重要的。例如Core i7采用了“先进的智能缓存”(Advanced Smart Cache,ASC)技术,可根据各个核心的处理负载动态分配共享的L3缓存,从而提高了各核心从共享的L3中读取数据的效率。

ASC对共享的L3缓存采用了“包容性”(Inclusive)机制,即L1、L2中的数据都包含在L3中,当一个核心访问L3没有命中时,会立即转向访问内存读取数据,从而有效降低了继续查找L1、L2所产生的侦听通信量和时间延迟。ASC还引入了基于L3包容性机制的“侦听过滤”(Snoop Filter)技术,当处理器访问L3命中时并不直接从速度较慢的L3读取所需数据,而是转向速度更快的L1或L2读取,从而减少了处理器获取数据的时间。

更有效的数据预取技术:即基于一定的预测机制,把处理器最可能用到的数据预先从内存读取到缓存中,从而提高缓存命中率。数据预取可通过处理器内置的预取器(Prefetcher)以硬件预取方式实现,也可在程序中调用处理器的预取指令以软件预取方式实现。例如Phenom Ⅱ的每个核心有1个指令预取器和1个数据预取器,并采用了“先进的内存预取器”(Advanced Memory Prefetcher,AMP)技术。AMP可绕过L2将数据直接从内存读取到L1中,避免了L2的延时,也减轻了L2的负载。AMP技术具有“自适应预取”(Adaptive Prefetch,AP)机制,可基于对内存请求的监测和分析预取任何地址的数据。AMP还引入了置于内存控制器中的“DRAM预取器”,可配合AP机制监测整体的内存访问请求,把可能用到的数据预先提取到DRAM预取缓冲器中,以便在需要时以更快的速度传送这些数据。

2.多线程和乱序执行技术
“超线程”(Hyper-Threading,HT)也称作“同步多线程”(Simultaneous Multi-Threading,SMT)。HT技术起源于Pentium 4处理器,由于处理器核心的寄存器等多个部件都配置了两套,所以可以在处理器中增加一个线程调度单元,将两个线程的指令序列分配到这些两套部件中,就相当于同时激活了两个线程。当一个线程因等待数据而处于停顿状态时,立即让另一线程执行任务,从而避免了处理器资源被闲置,提升了处理效率。在Core i7处理器中,同样使用了HT技术,并且指令执行机制更高效,缓存容量和内存带宽更大,配合高度线程化的应用程序,Core i7处理器的HT技术在降低内存等待时间、提升整体的处理效率方面更为有效。


著名的“超线程”HT技术的实质就是降低内存等待时间

乱序执行(Out-of-Order Execution,OOOE)是一种指令级并行计算的处理器设计。支持OOOE的处理器可以不按程序中原有的指令顺序执行任务,而是通过OOOE引擎监测和分析哪些处理器单元会被闲置、程序中的哪些指令可不按顺序提前执行,再将这些指令分配给闲置的处理单元开始执行,然后将其运算结果按程序中的原有顺序重新排列。OOOE利用并行处理机制避免了处理器资源的闲置,与HT技术一道提升了处理器的整体处理效率。最新的多核处理器均强化了OOOE的设计,例如Core i7中“重排序缓冲器”(Re-Order Buffer,ROB)等关键OOOE单元的规模被明显加大,Intel“智能内存访问”(Smart Memory Access,SMA)技术则提高了OOOE的效率。SMA除了指令级的预取管理功能之外,还具有“内存数据相关性预测”(Memory Disambiguation)机制,能对指令之间的相关性进行分析,智能化地预测将要执行的指令,并提前将其所需数据预取到缓存中,使这些指令执行时能快速获取所需数据,从而有效降低了等待数据的延迟。

3.集成式内存控制器
“集成式内存控制器”(Integrated Memory Controller,IMC)技术大家应该也不陌生。在消费级处理器上,该技术最早应用在AMD Athlon处理器上。它将原来北桥芯片组中的内存控制器集成在处理器芯片中,缩短了处理器访问内存的物理路径,从而降低了读取内存的延迟;同时可使内存控制器与处理器运行在相同的时钟频率下,能够在很大程度上减少处理器访问内存数据的等待时间。


集成内存控制器的多核处理器

在Phenom Ⅱ处理器中,集成的是双通道DDR2 1066和DDR3 1333内存控制器;Core i7处理器则首次集成了三通道DDR3 1333内存控制器。再配合AMD HyperTransport 3.0、Intel QuickPath Interconnect(QPI)总线技术,可有效提升各核心对内存的存取效率。

作者:ssss海归商务 发贴, 来自【海归网】 http://www.haiguinet.com









相关主题
[波儿的条子]给绽绫子大师一点小建议 海归酒吧 2008-10-22 周三, 07:10
[问题]求教。。绽铃子大师,我要不要改个名字? 海归酒吧 2011-4-07 周四, 14:37
“龙芯之父”胡伟武:“国产超级计算机2011年底将告别国外芯片,使用‘中国... 海归商务 2011-3-07 周一, 05:43
[原创]苏州精品一碗面 - 送给绽铃子大师 春秋茶馆 2010-10-29 周五, 10:38
[问题]趁热打铁,再请绽铃子大师和各位高人指点:主卧的床该如何摆? 海归茶馆 2010-6-26 周六, 05:19
[问题]绽铃子大师请进,有关房间斜门的风水问题==》 海归茶馆 2010-6-25 周五, 06:54
绽铃子大师在吗? 海归酒吧 2010-2-09 周二, 23:10
绽铃子大师请进,有事请教 海归茶馆 2010-1-27 周三, 12:01

返回顶端
阅读会员资料 ssss离线  发送站内短信
显示文章:     
回复主题   printer-friendly view    海归论坛首页 -> 海归商务           焦点讨论 | 精华区 | 嘉宾沙龙 | 白领丽人沙龙 所有的时间均为 北京时间


 
论坛转跳:   
不能在本论坛发表新主题, 不能回复主题, 不能编辑自己的文章, 不能删除自己的文章, 不能发表投票, 您 不可以 发表活动帖子在本论坛, 不能添加附件不能下载文件, 
   热门标签 更多...
   论坛精华荟萃 更多...
   博客热门文章 更多...


海归网二次开发,based on phpbb
Copyright © 2005-2024 Haiguinet.com. All rights reserved.