存储墙问题

tommy整理

处理器的时钟频率和性能以超乎想象的速度增长;但是主存的访问速度(主要是DRAM)的增长却要缓慢的多;虽然Cache和预取能够对减少平均访存时间有所帮助,但仍然不能从根本上解决问题[1][2]。

 处理器和存储器之间的鸿沟越来越大,下一代高性能计算机系统必须突破存储墙问题(momory wall)。计算,存储,I/O的速度越来越不匹配,平衡体系结构的设计越来越困难。

微处理器速度增长的速度远远超过了了DRAM增长的速度。造成这种正常不平衡的原因是多方面的。其中最主要的原因是半导体工业界划分成了两个阵营:微处理器和存储器,并各自为阵。首先需要说的是,针对不同器件的需要半导体生产线被进行裁减和配置。针对微处理器的生产线强调提供更快的晶体管来制造更快的逻辑、更多的金属布线层来增加通讯和减小功耗。与此不同的是,针对DRAM的生产线强调更多的多晶硅(polysilicon)层来获得更小的DARM单元面积从而增大DRAM容量和更小的漏电流来减少DRAM刷新时间。不同的芯片也意味着不同的封装工艺,微处理器要求昂贵的封装来增加散热(通用CPU功耗已达5~100Watt),还要提供成百上千的引脚来增加与外存的连接带宽。但是DRAM的封装却往往采用便宜的方式,主要原因是其功耗较低(1Watt)引脚也大多只有几十个。不同的封装意味着计算机系统设计中存储芯片的扩展数目可以与芯片的扩展数目无关。

由于工业界分裂成了两大阵营:处理器生产商和芯片生产商,必然带来一些弊端。例如当前主流的商用微处理器主频已达3GHz以上,存储总线主频仅400MHz;处理器速度每年增长60%,存储器存取延迟每年仅改善7%。可见,虽然两方都还有可以挖掘的潜力,处理器性能的上升空间远远大于DRAM。由通信带宽和延迟构成的“存储墙(Memory wall)”成为提高系统性能的最大障碍,大量的结构复杂性花在了解决数据访问延迟问题上,如图[3]所示

由于存储器的访问延迟不断加大(相对于处理器的频率而言),片上存储器的作用显得更为重要,但是其限制也更为明显。由于存储墙问题的存在,增加处理器和存储器间的“有效”带宽显得及其重要,“有效”性强调的是供给处理器数据的实际带宽而不仅仅是峰值带宽。现在一些主要的缓解存储墙问题的方法包括[4]:

l         更宽更快的片外存储带宽,

实际上,带宽就是每秒钟能够传输的数据位总和。因此最自然也是最经典的提高存储带宽的方法就是提高存储器时钟频率或者增加总线宽度。但是对于传统DRAM来说,这种方法已经接近其物理极限。因为提高时钟频率将会对整个系统时钟提出更苛刻的要求,不仅芯片面临高频的种种问题,PCB版的设计和实现技术也必须有所突破。而增加总线宽度将会大幅增加芯片引脚数目、IO功耗,给封装和PCB版带来挑战。虽然现在芯片引脚数目已经有较大的增长,但是功耗、可靠性和成本等因素将使得引脚的增加变得越来困难。最近,新的存储系统接口例如Rambus(RDRAM)和SLDRAM号称可以将片外存储带宽提高到数个GB/S的水平。另外一个传统提高带宽的方法是采用交叉存储技术,但是这将会带来扩展成本和扩展性的问题。因此解决存储墙问题最重要的不是如何采用每一代最先进的技术提供最大的带宽,而是如何有效的“划算”的提供足够的带宽。

l         更大的片上Cache

在当代微处理器中,通过使用Cache已经避免了大量的存储延迟,许多先进的技术也帮助消除或隐藏一小部分的存储延迟。例如,乱序执行、预取、非阻塞Cache、写缓存和流水的系统总线等。然而,程序的第一次使用或循环的第一次访问将不可避免带来Cache不命中,从而导致流水线停顿。Cache的某一行数据常常在被访问之前就被别的数据替换了。对于空间局部性较好的应用,解决访存延迟问题可以通过对内存地址的预取来实现。这种方法对于像路由表更新这样的应用非常有效,但对于访存行为不规则的应用,由于经常预取的是不被马上使用的数据,可能反而会降低系统的存储带宽。通过网络访问远程处理器节点局部存储器上的数据将导致更大的延迟。而且,这样的远程存储访问延迟通常是不可预测的,使得一些填充流水线延迟槽的技术不再有效。例如,在SGI Origin 2000分布共享存储系统中,一级 Cache不命中的访问延迟为11个处理器周期;二级 Cache 不命中的延迟为60个周期;远程存储访问不命中的延迟达到180个周期。而且增加Cache容量将会大量增加处理器规模,增加功耗和成本。

l         动态访问调度

这种方法通过将数据组织成流最大化存储器性能(例如,信号/图像处理器,多媒体编解码器等)。这种方法基于访问的规则性,通过调度存储访问请求的顺序减少存储器访问的随机性,对于绝大多数DRAM来说成块访问或连续访问的带宽大大高于单个数据访问的带宽。这种技术通过软件或硬件的方法动态组织数据,通过数据访问的规则提高访问效率。还可以结合缓冲技术,有效隐藏访问延迟。

l         更有效的片上存储器和存储带宽层次

虽然Cache可以有效的捕捉局域性较好的数据重用,但是仍然是以一种“粗犷”的方式在使用片上存储器。新的片上存储技术例如软件可管理的片上存储器,强调用更精细的方法利用宝贵的片上存储器和片上带宽,减小对片外存储的依赖。开发更为有效的存储带宽层次如图[5]据存取延迟:寄存器文件能够在一个周期内存取;离运算单元很近的存储器中存放那些极有可能很快就要访问的数据以便能最小化存储器操作的延迟;较慢的DRAM被用来提供大容量的存储空间好存放那些在存储器层次中放不下的数据。

l         逻辑/DRAM 集成技术

将存储器和逻辑高度集成在一起,例如片上存储技术。片上存储技术提出将处理器与存储器做在同一块芯片上,这样可使访存延时减少5-10倍以上,存储器带宽增加50-100倍以上。在大多数情况下,整个应用在运行期间都可放到片上存储器里。但是传统逻辑工艺中实现DRAM单元存储密度做不高,估计密度仅能达到优化的DRAM工艺的5~25%;而在DRAM工艺中实现逻辑电路则速度做不上去,因此需要更为先进的工艺。同时PIM也存在扩展性的问题

基于上述技术,现在已经涌现出一批瞄准存储墙问题的高性能处理器。例如:

2003年6月投片成功的VIRAM[6]C.Berkeley分校的Dave Patterson等开发的一种用于媒体处理的向量型芯片。VIRAM主要针对处理器性能不断增强,相应对存储系统的带宽和延迟要求提高,而目前片外访存通信代价大、速度慢,使得存储系统成为瓶颈的问题。其目标是要充分利用现有VLSI的集成能力,通过向量和片上DRAM技术的结合,获得更高的带宽、更短的延迟和更低的功耗。VIRAM的主要思想是尝试将向量处理器和DRAM存储器(13M)都做到片上,从而消除片外访存并减少访问层次。

2002年4月投片成功的Imagine[7]福大学的W.J.Dally等开发的流体系结构(stream architecture)原型芯片,其体系结构如图1.5。主要针对现代VLSI工艺条件下,片外通信昂贵,片内运算单元相对廉价,但是大部分片上面积被通信管理等单元占据使得计算能力未被充分利用的问题。目标是通过开发符合流应用特点的流式处理程序和三级带宽存储减少访问片外存储器,使片内运算能力得到充分利用,并且在一定程度上避免了存储墙问题。在Imagine的基础上,面向科学计算应用领域,Stanford大学目前正在进行Merrimac[8]机的研制。

其它一些能够缓解存储墙问题的处理器还有,MIT大学的Raw[9]构,Texas大学提出的万亿次运算可靠智能自适应的处理系统TRIPS[10]、索尼、东芝三家公司在2005年联合推出的第一代CELL[11]等

总之,目标应用的特征直接决定了处理器的体系结构。没有哪个体系结构在运行所有的应用时都能达到最优性能,因此解决存储墙问题必需调整体系结构设计来适应目标应用的要求。

参考文献:

[1]M. Wilkes. The memory wall and the CMOS end-point. ACM SIGArch Computer Architecture

News, 1995.

[2]W. Wulf and S. McKee. Hitting the wall: Implications of the obvious. ACM SIGArch Computer Architecture News, 23(1):20{24, Mar. 1995.

[3] Keith Underwood,Implications of a PIM Architectural Model for MPI,Sandia National Laboratories

[4] Nihar R. Mahapatra and Balakrishna Venkatrao The Processor-Memory bottleneck: Problems and Solutions.

[5]ane Irwin ( www.cse.psu.edu/~mji )

[6]   C. E. Kozyrakis et al, Scalable Processors in the Billion-Transistors Era: IRAM. IEEE Computer, Vol 30 Issue 9, 1997.9

[7]   MScott Rixner, Stream Processor Architecture, Kluwer Academic Publishers. Boston, MA, 2001

[8]   William J.Dally, Patrick Hanrahan, Mattan Erez et al, Merrimac: Supercomputing with Streams. SC'03, November 15-21, 2003, Phoenix, Arizona, USA

[9]   M. B. Taylor et al, Evaluation of the Raw Microprocessor: An Exposed-Wire-Delay Architecture for ILP and Streams. ISCA2004, 2004

[10] Karthikeyan Sankaralingam et al, Exploiting ILP, TLP, and DLP with the Polymorphous TRIPS architecture. 30th Annual International Symposium on Computer Architecture, May 2003

[11] J. A. Kahle et al, Introduction to the Cell multiprocessor, IBM J. RES. & DEV., VOL 49, NO.4/5, July/September 2005

 

文章转自:http://masa.nudt.blog.163.com/blog/static/756953562008314115842366/

  • 8
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值