码迷,mamicode.com
首页 > 其他好文 > 详细

程序的局部性原理2

时间:2014-05-01 03:57:54      阅读:393      评论:0      收藏:0      [点我收藏+]

标签:style   div   c   t   size   sp   ext   width   color   ble   re   

当CPU发出写操作命令时,也要根据它产生的主存地址分为两种情形:一种是不命中时,只向主存写入信息,不必同时把这个地址单元所在的整块内容调入Cache中;另一种是命中时,这时会遇到如何保持Cache与主存的一致性问题,通常有三种处理方式:     
1.直写式(write through)即CPU在向Cache写入数据的同时,也把数据写入主存以保证Cache和主存中相应单元数据的一致性,其特点是简单可靠,但由于CPU每次更新时都要对主存写入,速度必然受影响。 
   
 2.缓写式(post write)即CPU在更新Cache时不直接更新主存中的数据,而是把更新的数据送入一个缓存器暂存,在适当的时候再把缓存器中的内容写入主存。在这种方式下,CPU不必等待主存写入而造成的时延,在一定程度上提高了速度,但由于缓存器只有有限的容量,只能锁存一次写入的数据,如果是连续写入,CPU仍需要等待。   
 
  3.回写式(write back)即CPU只向Cache写入,并用标记加以注明,直到Cache中被写过的块要被进入的信息块取代时,才一次写入主存。这种方式考虑到写入的往往是中间结果,每次写入主存速度慢而且不必要。其特点是速度快,避免了不必要的冗余写操作,但结构上较复杂。  
  此外,还有一种设置不可Cache区(Non-cacheable Block)的方式,即在主存中开辟一块区域,该区域中的数据不受Cache控制器的管理,不能调入Cache,CPU只能直接读写该区域的内容。由于该区域不与Cache发生关系,也就不存在数据不一致性问题。目前微机系统的BIOS设置程序大多允许用户设置不可Cache区的首地址和大小。 
 
 
 
进程运行时,在一段时间里,程序的执行往往呈现高度的局部性,包括时间局部性和空间局部性。
时间局部性是一旦一个指令被执行了,则在不久的将来,它可能再被执行。 空间局部性是一旦一个指令一个存储单元被访问,那么它附近的单元也将很快被访问。 程序的局部性原理是虚拟存储技术引入的前提。 虚拟存储的实现原理是,当进程要求运行时,不是将它全部装入内存,而是将其一部分装入内存,另一部分暂时不装入内存。 虚拟存储管理分为虚拟页式,虚拟段式,虚拟段页式。
 
 
 
 
 
进程运行时,在一段时间里,程序的执行往往呈现高度的局部性,包括时间局部性和空间局部性。 
 
 
时间局部性是一旦一个指令被执行了,则在不久的将来,它可能再被执行。  
空间局部性是一旦一个指令一个存储单元被访问,那么它附近的单元也将很快被访问。 
 
 
程序的局部性原理是虚拟存储技术引入的前提。 
 
虚拟存储的实现原理是,当进程要求运行时,不是将它全部装入内存,而是将其一部分装入内存,
另一部分暂时不装入内存。  
虚拟存储管理分为虚拟页式,虚拟段式,虚拟段页式。
 
程序在执行时所访问地址的分布不是随机的,而是相对地簇聚:这种簇聚包括指令和数据两部分。
 
程序的时间局部性:程序即将用到的信息很可能就是目前正在使用的信息。
程序的空间局部性:程序即将用到的信息很可能与目前正在使用的信息在空间上相邻或者临近。
 
CPU对内存的访问在某一时间段内集中于某个局部,而不是均匀分布的。包括两种局部性规律:
 
时间局部性:如果一个存储单元被访问,则这个存储单元会再次被访问的频率很高。这是由于
循环程序的执行,相应的数据要重复访问。
 
空间局部性:如果一个存储单元被访问,则这个存储单元及其相邻单元被访问的概率较高。这
是由于程序的顺序执行时,一条指令和下一条指令在存储器中的位置是相邻活相近的。
 

程序的局部性原理2,码迷,mamicode.com

程序的局部性原理2

标签:style   div   c   t   size   sp   ext   width   color   ble   re   

原文地址:http://www.cnblogs.com/a12436109/p/3702116.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!