内存层次结构_

标题:内存层次结构 在计算机体系结构中,内存层次结构根据响应时间将计算机存储区分为层次结构。由于响应时间,复杂性和容量都是相关的,因此这些级别还可以通过其性能和控制技术来区分[1]。内存层次结构影响计算机体系结构设计中的性能,算法预测以及涉及参考位置的较低级别编程结构。 设计高性能需要考虑存储器层次的限制,即每个组件的大小和功能。可以将各种组件中的每一个都视为存储器层次结构(m1,m2,...,mn)的一部分,其中每个成员mi通常比该层次结构的下一个最高成员mi 1更小且更快。为了限制高等级等待,较低等级将通过填充缓冲区并发信号通知激活传输来作出响应。 有四个主要的存储级别。[1] 这是一个通用的内存层次结构。许多其他结构是有用的。例如,在设计计算机体系结构时,可以将分页算法视为虚拟内存的级别,并且可以在在线和离线存储之间包括近线存储级别。 随着时间的推移,存储器层级中的级别数量和每个级别的性能都有所增加。例如,大约2013年的英特尔Haswell Mobile [6]处理器的内存层次结构是: 较低级别的层次 - 从磁盘向下 - 也称为分层存储。在线,近线和离线存储的正式区别是:[11] 例如,永远在线的磁盘处于联机状态,而旋转磁盘(如大量空闲磁盘阵列(MAID))则处于临近状态。可以像磁带库中那样自动加载的可移动介质(如磁带盒)近线,而必须手动加载的盒式磁带处于脱机状态。 大多数现代CPU的速度如此之快,以至于对于大多数程序工作负载而言,瓶颈是存储器访问的参考位置以及层次结构不同级别之间高速缓存和内存传输的效率[需要的引证]。结果,CPU花费大部分时间闲置,等待内存I / O完成。这有时称为空间成本,因为较大的内存对象更可能溢出小/快速级别,并且需要使用较大/较慢的级别。存储器使用中产生的负载称为压力(分别为记录压力,缓存压力和(主)内存压力)。从较高级别丢失数据以及需要从较低级别获取数据的术语分别是:注册溢出(由于注册压力:注册到缓存),缓存未命中(缓存到主内存)和(硬)页面错误(主内存到磁盘)。 现代编程语言主要采用两级存储器,主存储器和磁盘存储器,尽管在汇编语言和C语言的内联汇编器中,寄存器可以直接访问。要充分利用内存层次结构,需要程序员,硬件和编译器的协作(以及操作系统的底层支持): 许多程序员都假设有一个内存级别。这工作正常,直到应用程序击中性能墙。然后将在代码重构期间评估内存层次结构。

 


posted @ 18-10-11 06:47  作者:admin  阅读量:

powered by 摩臣2 @2014 RSS地图 html地图

Copyright 365建站 © 2013-2017 365建站器 版权所有