㈠ 存储结构的储存器方面的储存结构
储存系统的层次结构为了解决存储器速度与价格之间的矛盾,出现了存储器的层次结构。 在某一段时间内,CPU频繁访问某一局部的存储器区域,而对此范围外的地址则较少访问的现象就是
程序的局部性原理。层次结构是基于程序的局部性原理的。对大量典型程序运行情况的统计分析得出的结论是:CPU对某些地址的访问在短时间间隔内出现集中分布的倾向。这有利于对存储器实现层次结构。 目前,大多采用三级存储结构。
即:Cache-主存-辅存,如下图:
3、多级存储系统的性能
考虑由Cache和主存构成的两级存储系统,其性能主要取决于Cache和贮存的存取周期以及访问它们的
次数。(存取周期为: Tc,Tm ;访问次数为: Nc,Nm)
(1)Cache的命中率 H= Nc / (Nc+Nm)
(2)CPU访存的平均时间 Ta= H * Tc+ (1-H) Tm
Cache-主存系统的效率
e= Tc / Ta
=1/H+(1-H)Tm/Tc
根据统计分析:Cache的命中率可以达到90%~98%
当Cache的容量为:32KB时,命中率为86%
64KB时,命中率为92%
128KB时,命中率为95%
256KB时,命中率为98%
㈡ 计算机组成原理中的局部性原理是什么
时间局部性就是,最近被访问的存储单元,在之后很有可能会被再次访问到;
空间局部性就是,对于正在被访问的存储单元附近的位置,在之后很有可能会被访问到。
这个很容易理解,以一段常见的代码为例:
for(i = 0; i <= 100; i++) {
sum += array[i];
}
其中i、sum 这些元素现在正被访问,在之后也一定会被重复访问,这就是时间局部性;
而array这个数组,现在访问了array[0]的位置,那之后紧接着就会访问它附近的位置,比如array[1]、array[2]等等,这就是空间局部性。
根据局部性原理,可以做一些相关设计。比如cache就是利用局部性原理设计出来的。
㈢ 1. 简述存储系统层次结构的基本思想
制约计算机存储器设计的问题归纳起来有三个:容量多大?速度多快?价格多贵?
容量多大的问题似乎没有限制,不管容量多大,总要开发出应用来使用它。速度多快的问题在某种意义上更容易回答。为了获得多大的性能,存储器速度必须能够跟上处理器的速度,即当处理器执行指令时,我们不想使它停下来等待指令或操作数。最后一个问题也必须考虑,对于实用的系统,存储器的价格相对于其他部件必须是合理的。
正如人们所预料的,在存储器的3个关键特性即价格、容量和存取时间之间需要进行权衡。任何时候,都有各种技术可用来实现存储系统。在这个技术领域中,存在如下关系:
存取时间越短,每位的价格就越高;
容量越大,每位的价格就越低;
容量越大,存取时间就越长;
很显然,摆在设计者面前的难题是,不仅需要大容量,而且需要低的每位价格,因此希望采用提供大容量存储器的技术。但为了满足性能需求,设计者又必须使用昂贵、容量较小和存取时间快的存储器。
解决这个难题的方法是采用存储器层次结构,而不只是依赖单一的存储部件或技术。下图给出了一个通用存储层次结构,图中从上到下,出现下列情况:
每位价格降低;
容量增大;
存取时间增大;
处理器访问存储器的频度降低;
因此,容量较小、价格较贵、速度较快的存储器可作为容量较大、速度较慢的存储器的补充。这种组织方式成功的关键是最后一项,即处理器访问存储器的频度降低。
条件四有效的基础是访问局部性原理。在程序执行的过程中,处理器访问存储器中的指令和数据倾向于成簇(块)。程序通常通常包含很多迭代循环和子程序,一旦进入了一个循环和子程序,则需重复访问一小组指令。同样,对于表和数组的操作,包含存取一簇簇的数据。在一长段时间内,使用的簇是变动的;而在一小段时间内,处理器主要访问存储器中的固定簇。
因此,通过分层结构组织数据,有可能使存取较低层的百分比低于存取高层存储器的百分比。考虑刚才给出的二级存储器的例子,让第二级的存储器包含所有程序的指令和数据,当前的簇临时放在第一级,第一级的某些簇会不时地交换回第二级,为将要进入第一级的簇腾出空间。然而,平均来说,多数的访问是对第一级中的指令和数据。
这个原则可以应用到二级以上的存储器。考察图所示的分层结构,速度较快、容量较小且价格最贵的存储器是处理器的内部寄存器。下跳两层是主存储器,它是计算机中主要的内存系统。主存储器常用速度更快,容量更小的高速缓存来扩充。
(很多体系结构或组成原理相关的书籍上都有的。回答比较粗糙,建议你参考William Stalling的计算机组织与体系结构,这本书上有对该问题的完整的论述。)
㈣ 什么是程序访问的局部性存储系统中哪一级采用了程序访问的局部性原理
程序访问的局部性是指程序在执行时呈现出局部性规律,即在一段时间内,整个程序的执行仅限于程序中的某一部分。它们倾向于引用的数据项邻近于其他最近引用过的数据项,或者邻近于最近自我引用过的数据项。局部性通常有两种形式:时间局部性和空间局部性
存储系统中Cache-主存层次和主存-辅存层次均采用了程序访问的局部性原理。
㈤ 什么是分级的存储体系结构它主要解决了什么问题
分级存储是将数据采取不同的存储方式分别存储在不同性能的存储设备上,减少非重要性数据在一级本地磁盘所占用的空间,还可加快整个系统的存储性能。分级存储是根据数据的重要性、访问频率、保留时间、容量、性能等指标,将数据采取不同的存储方式分别存储在不同性能的存储设备上,通过分级存储管理实现数据客体在存储设备之间的自动迁移。
数据分级存储的工作原理是基于数据访问的局部性。通过将不经常访问的数据自动移到存储层次中较低的层次,释放出较高成本的存储空间给更频繁访问的数据,可以获得更好的性价比。这样,一方面可大大减少非重要性数据在一级本地磁盘所占用的空间,还可加快整个系统的存储性能。
(5)存储层次结构利用了时间局部性扩展阅读
在分级数据存储结构中,存储设备一般有磁带库、磁盘或磁盘阵列等,而磁盘又可以根据其性能分为FC磁盘、SCSI磁盘、SATA磁盘等多种,而闪存存储介质(非易失随机访问存储器(NVRAM))也因为较高的性能可以作为分级数据存储结构中较高的一级。一般,磁盘或磁盘阵列等成本高、速度快的设备,用来存储经常访问的重要信息,而磁带库等成本较低的存储资源用来存放访问频率较低的信息。
信息生命周期管理(Information Lifecycle Management,ILM)是StorageTek公司针对不断变化的存储环境推出的先进存储管理理念,ILM试图实现根据数据在整个生命周期过程中不断变化的数据访问需求而进行数据的动态分布。
分级存储和ILM在存储体系结构上基本相同,目标也都是使不同级别的数据在给定时间和不同级别的存储资源能够更好的匹配。二者本质差别是数据分级的标准不同:前者标准为数据近期被访问的概率;后者标准为数据近期对企业的价值。
㈥ 空间局部性和时间局部性的策略是什么
进程运行时,在一段时间里,程序的执行往往呈现高度的局部性,包括时间局部性和空间局部性。时间局部性是一旦一个指令被执行了,则在不久的将来,它可能再被执行。空间局部性是一旦一个指令一个存储单元被访问,那么它附近的单元也将很快被访问。
程序的局部性原理是虚拟存储技术引入的前提。虚拟存储的实现原理是,当进程要求运行时,不是将它全部装入内存,而是将其一部分装入内存,另一部分暂时不装入内存。
(6)存储层次结构利用了时间局部性扩展阅读:
时间局部性
如果在某一点时访问了存储器的特定位置,则很可能在不久的将来将再次访问相同的位置。在对相同存储器位置的相邻访问之间存在时间接近性。
在这种情况下,通常努力将访问过的数据的副本存储在可以被更快访问的特殊存储器中。时间局部性是空间局部性的特殊情况,即当预期位置与当前位置相同时。
空间局部性
如果特定存储位置在特定时间被访问,则很可能在不久的将来访问附近的存储位置。在这种情况下,通常尝试猜测当前访问周围的区域的大小和形状,对于该区域,值得准备更快的访问。
局部性的原因
局部性有几个原因。这些原因是某些方面要实现的目标或接受的情况。以下原因不是不相交的;事实上,下面的列表从最一般的情况到特殊情况:
可预测性:事实上,局部性只是计算机系统中一种可预测的行为。
程序结构
局部性通常因为创建计算机程序的方式而发生,用于处理可决定的问题。通常,相关数据存储在存储器中的附近位置。计算中常见的一种模式涉及几个项目的处理,一次一个。这意味着如果进行大量处理,则将访问单个项目多次,从而导致时间局部性。
此外,移动到下一项意味着将读取下一项,导致空间局部性,因为存储器位置通常被批量地读取。
线性数据结构
局部性通常因为代码包含循环,倾向于通过索引访问数组或其他数据结构。当相关数据元素被线性地排列和访问时,发生顺序局部性,即空间局部性的特殊情况。例如,从基地址到最高元素的一维数组中的元素的简单遍历将利用存储器中数组的顺序局部性。
当线性遍历在具有相同结构和大小的相邻数据结构的较长区域上,访问每个结构的相互对应的元素而不是整个结构时,发生更一般的等距局部性。这是当矩阵被表示为行的顺序矩阵并且需要访问矩阵的单个列时的情况。
内存层次结构的效率
虽然随机存取存储器使程序员能够在任何时间在任何地方读取或写入,但在实践中,等待时间和吞吐量会受到高速缓存的效率的影响,这通过增加访问局部性来改进。访问局部性差导致缓存抖动和缓存污染,为了避免它,具有弱局部性的数据元素可以从缓存旁路。
参考资料:网络-访问局部性
㈦ 什么是程序访问的局部性,存储系统中哪一级采用了程序访问的局部性原理
程序访问的局部性是指程序执行的局部规律,即在一段时间内,整个复制程序的执行仅限于程序的一部分。
他们倾向于引用与其他最近引用的项相邻的项,或者与最近自引用的项相邻的项。局部性通常有两种形式:时间局部性和空间局部性
在存储系统中,cache-mainmemory层次结构和main-secondarymemory层次结构采用了程序访问的本地原则。
程序局部性包括程序的时间局部性和空间局部性。
1.程序的时间位置:指的是要被raider程序使用的信息可能是当前正在使用的信息。
2.程序的空间定域性:指程序所使用的信息可能是相邻的,也可能是与空间中所使用的信息相邻的。
(7)存储层次结构利用了时间局部性扩展阅读:
丹宁根据程序的局部化理论,提出了工作集理论。工作集是进程运行时频繁访问的页面集合。
显然,我们知道,通过将程序的工作集完全保存在内存中,可以极大地减少进程中丢失的页面数量。否则,进程将在进程频繁的页面中断中运行,从而出现频繁的页面in/out现象100,导致系统性能下降,甚至出现“抖动”。
工作集的划分可以通过固定的时间长度或固定的页面长度来完成。当发生碰撞现象时,说明系统负荷过大。二是控制缺页率,当缺页率达到极限时,再增加内存分配量;当缺页率达到下限时,内存分配就会减少。
㈧ 局部性原理
局部性通常有两种形式:
时间局部性(temporal locality):在一个具有良好时间局部性的程序中,被引用过一次的内存位置很可能在不远的将来再被多次引用。
空间局部性(spatial locality)在一个具有良好空间局部性的程序中,如果一个内存位置被引用了一次,那么程序很可能在不远的将来引用附近的一个内存位置。
程序员应该理解局部性原理,一般而言,有良好局部性的程序比局部性差的程序运行得更快。
现代计算机系统的各个层次,从硬件到操作系统,再到应用程序,它们的设计都利用了局部性。
在硬件层,局部性原理允许计算机设计者通过引入小而快速的高速缓存存储器来保存最近被引用的指令和数据项,从而提高对主存的访问速度。
在操作系统级,局部性原理允许系统使用主存作为虚拟地址空间最近被引用块的高速缓存。类似的,操作系统用主存来缓存磁盘文件系统中最近被使用的磁盘块。
在应用程序的设计中,局部性原理也扮演者重要角色。如Web浏览器将最近被引用的文档放在本地磁盘上,利用的就是时间局部性。大容量的Web服务器将最近被请求的文档放在前端磁盘高速缓存中,这些缓存能满足对这些文档的请求,而不需要服务器的干预。
㈨ 简述程序局部性原理.这个原理在分级的存储体系结构中是怎样起作用的
首先说明,个人学习不好,以下仅仅参考,不要当真
存储的问题就是存储区大则搜索慢,存储区小搜索快
理论上,希望能快速搜索,需要用小存储区。
但是在存储区内一旦找不到数据,需要与进行数据交换。而交换数据比在大存储区内搜索更花时间
即,存储区小,搜索快,但是交换多
存储区大,搜索慢,交换少
所幸的是,一般下次可能使用的数据是在这次使用数据附近
所以,可以将这次在大存储区使用的数据附近的数据作为一块,整个读入小的更快的存储器。以供下次可能再次使用。则既可以在小存储器里快速读取而且可以以很高的概率在小存储器内读到。
由于学习不好,以上就当乱说,不要当真
㈩ 什么是存储访问的局部性原理,它分别成哪两个方面的局部性
程序局部性原理:虚拟存储管理的效率与程序局部性程序有很大关系。根据统计,进程运行时,在-
段时间内,其程序的执行往往呈现岀高度的局限性,包括时间局部性和空间局部性
1、时间局部性:是指若一条指令被执行,则在不久的将来,它可能再被执行
2、空间局部性:是指一旦一个存储单元被访问,那它附近的单元也将很快被访问