问答

汇集网友智慧,解决技术难题

21ic问答首页 - 为什么要对存储器分层呢

为什么要对存储器分层呢

shanshui8452021-01-12
为什么要对存储器分层呢
回答 +关注 0
140人浏览 1人回答问题 分享 举报
1 个回答
  • 分层是为了弥补CPU和存储器直接速度的差距。这种方式之所有有效,是因为应用程序的一个特性:局部性。
    我们知道计算机的体系是存储程序,顺序执行。所以在执行一个程序的指令时,它后面的指令有很大的可能在下一个指令周期被执行。而一个存储区被访问后,也可能在接下来的操作中再次被访问。这就是局部性的两种形式:
    时间局部性
    空间局部性
    对于现代计算机来说,无论是应用程序,操作系统,硬件的各个层次我们都是用了局部性。
    硬件:通过引入Cache存储器来保存最近访问的指令数据来提高对主存的访问速度。
    操作系统: 允许是用主存作为虚拟地址空间被引用块的高速缓存以及从盘文件的块的高速缓存。
    应用程序:将一些远程服务比如HTTP Server的HTML页面缓存在本度的磁盘中。
    我们知道数组在内存中是按照行的顺序来存储的。但是CODE1确实按列去访问,这可能就导致缓存不命中(需要的数据并不在Cache中,因为Cache存储的是连续的内存数据,而CODE1访问的是不联系的),也就降低了程序运行的速度。


您需要登录后才可以回复 登录 | 注册