储存Memory Hierarchy

硬盘、内存、 CPU寄存器,还有本节要讲的Cache,这些都是存储器,计算机为什么要有这么
多种存储器呢?这些存储器各自有什么特点?这是本节要讨论的问题。
由于硬件技术的限制,我们可以制造出容量很小但很快的存储器,也可以制造出容量很大但很
慢的存储器,但不可能两边的好处都占着,不可能制造出访问速度又快容量又大的存储器。因
此,现代计算机都把存储器分成若干级,称为Memory Hierarchy,按照离CPU由近到远的顺序
依次是CPU寄存器、 Cache、内存、硬盘,越靠近CPU的存储器容量越小但访问速度越快。


寄存器、 Cache和内存中的数据都是掉电丢失的,这称为易失性存储器( Volatile
Memory ,与之相对的,硬盘是一种非易失性存储器( Non-volatile Memory
除了访问寄存器由程序指令直接控制之外,访问其它存储器都不是由指令直接控制的,有
些是硬件自动完成的,有些是操作系统配合硬件完成的。
Cache从内存取数据时一次取一个Cache Line缓存起来,操作系统从硬盘取数据时一次取
几KB缓存起来,都是希望这些数据以后会被访问到。大多数程序的行为都具有局部性
Locality 的特点:它们会花费大量的时间反复执行一小段代码(例如循环),或者反
复访问一个很小的地址范围中的数据(例如访问一个数组)。所以预读缓存的办法是很有
效的: CPU取一条指令,我把它相邻的指令也都缓存起来, CPU很可能马上就会取
到; CPU访问一个数据,我把它相邻的数据也都缓存起来, CPU很可能马上就会访问到。
设想有两台计算机,一台有32KB的Cache,另一台没有Cache,而内存都是512MB的,
硬盘都是100GB的,虽然多出来32KB的Cache和内存、硬盘的容量相比微不足道,但由
于局部性原理,有Cache的计算机明显会快很多。高速存储器即使容量只能做得很小也能
显著提升计算机的性能,这就是Memory Hierarchy的意义所在。 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值