`
bigwave007
  • 浏览: 1217 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
最近访客 更多访客>>
社区版块
存档分类
最新评论

关于缓存

阅读更多

操作系统的任务主要是合理地调配系统的各种资源,为各种程序的运行提供环境,它可以看作是硬件和应用软件之间的一个媒介。其中对内存的管理是系统的最主要的职责,怎么样使有限的内存用在刀刃上,怎么要保证系统本身所需的内存(以防止死机,在win2000和winxp里这一点已经做的非常好了 
缓存是CPU的一部分,它存在于CPU中 
CPU存取数据的速度非常的快,一秒钟能够存取、处理十亿条指令和数据(术语:CPU主频1G),而内存就慢很多,快的内存能够达到几十兆就不错了,可见两者的速度差异是多么的大 
缓存是为了解决CPU速度和内存速度的速度差异问题 
内存中被CPU访问最频繁的数据和指令被复制入CPU中的缓存,这样CPU就可以不经常到象“蜗牛”一样慢的内存中去取数据了,CPU只要到缓存中去取就行了,而缓存的速度要比内存快很多 
什么是缓存区容量? 
在combo中缓存区容量指的是什么?是不是数字越大,价格便越高,并且性能越高,刻坏的几率越小 
这里要特别指出的是: 
1.因为缓存只是内存中少部分数据的复制品,所以CPU到缓存中寻找数据时,也会出现找不到的情况(因为这些数据没有从内存复制到缓存中去),这时CPU还是会到内存中去找数据,这样系统的速度就慢下来了,不过CPU会把这些数据复制到缓存中去,以便下一次不要再到内存中去取。 
2.因为随着时间的变化,被访问得最频繁的数据不是一成不变的,也就是说,刚才还不 
频繁的数据,此时已经需要被频繁的访问,刚才还是最频繁的数据,现在又不频繁了, 
所以说缓存中的数据要经常按照一定的算法来更换,这样才能保证缓存中的数据是被访 
问最频繁的 
3.关于一级缓存和二级缓存 
为了分清这两个概念,我们先了解一下RAM 
ram和ROM相对的,RAM是掉电以后,其中才信息就消失那一种,ROM在掉电以后信息也不会消失那一种 
RAM又分两种, 
一种是静态RAM,SRAM;一种是动态RAM,DRAM。前者的存储速度要比后者快得多,我们 现在使用的内存一般都是动态RAM。 
有的菜鸟就说了,为了增加系统的速度,把缓存扩大不就行了吗,扩大的越大,缓存的 
数据越多,系统不就越快了吗 
缓存通常都是静态RAM,速度是非常的快, 
但是静态RAM集成度低(存储相同的数据,静态RAM的体积是动态RAM的6倍), 
价格高(同容量的静态RAM是动态RAM的四倍), 
由此可见,扩大静态RAM作为缓存是一个非常愚蠢的行为, 
但是为了提高系统的性能和速度,我们必须要扩大缓存, 
这样就有了一个折中的方法,不扩大原来的静态RAM缓存,而是增加一些高速动态RAM做 为缓存, 
这些高速动态RAM速度要比常规动态RAM快,但比原来的静态RAM缓存慢, 
我们把原来的静态ram缓存叫一级缓存,而把后来增加的动态RAM叫二级缓存。 
一级缓存和二级缓存中的内容都是内存中访问频率高的数据的复制品(映射),它们的 
存在都是为了减少高速CPU对慢速内存的访问。 
通常CPU找数据或指令的顺序是:先到一级缓存中找,找不到再到二级缓存中找,如果还找不到就只有到内存中找了 
2.赛扬处理器与奔腾处理器的区别再哪里? 
赛扬处理器与奔腾处理器在运算内核上完全相同,不同的地方是二级缓存的大小不同。现有的台式机处理器P4的二级缓存大小是512KB,而P4赛扬的二级缓存大小是128KB。在笔记本上用的奔腾-M处理器的二级缓存大小是1MB,新出的赛扬M处理器的二级缓存大小是512KB,跟P4的一样。奔腾-M和赛扬M处理器除了二级缓存大小不同外,其余地方一样。 
什么是二级缓存? 
它是干什么用的? 二级缓存又叫L2 CACHE,它是处理器内部的一些缓冲存储器,其作用跟内存一样。 它是怎么出现的呢? 要上溯到上个世纪80年代,由于处理器的运行速度越来越快,慢慢地,处理器需要从内存中读取数据的速度需求就越来越高了。然而内存的速度提升速度却很缓慢,而能高速读写数据的内存价格又非常高昂,不能大量采用。从性能价格比的角度出发,英特尔等处理器设计生产公司想到一个办法,就是用少量的高速内存和大量的低速内存结合使用,共同为处理器提供数据。这样就兼顾了性能和使用成本的最优。而那些高速的内存因为是处于CPU和内存之间的位置,又是临时存放数据的地方,所以就叫做缓冲存储器了,简称“缓存”。它的作用就像仓库中临时堆放货物的地方一样,货物从运输车辆上放下时临时堆放在缓存区中,然后再搬到内部存储区中长时间存放。货物在这段区域中存放的时间很短,就是一个临时货场。 最初缓存只有一级,后来处理器速度又提升了,一级缓存不够用了,于是就添加了二级缓存。二级缓存是比一级缓存速度更慢,容量更大的内存,主要就是做一级缓存和内存之间数据临时交换的地方用。现在,为了适应速度更快的处理器P4EE,已经出现了三级缓存了,它的容量更大,速度相对二级缓存也要慢一些,但是比内存可快多了。 缓存的出现使得CPU处理器的运行效率得到了大幅度的提升,这个区域中存放的都是CPU频繁要使用的数据,所以缓存越大处理器效率就越高,同时由于缓存的物理结构比内存复杂很多,所以其成本也很高。 
什么叫虚拟内存,它与缓存有什么异同呢 虚拟内存是WINDOWS操作系统用来管理内存的一种方法 
虚拟内存说穿了就是把内存中的信息分出去一部分存在硬盘上 
这样从表面上看就扩大了内存容量(难怪内存中存了这么多东西,原来有一部分被转到了硬盘上) 
我们知道内存中存有很多数据和指令,但是这些数据和指令被访问的频率是不同的,有些要被经常访问,有些却被CPU冷落WINDOWS 是个落井下石的坏东西,它大声的说:既然你们被CPU冷落了,干脆把你们打入冷宫吧。于是这些被访问频率低或者不被访问的数据从内存中被赶到了硬盘上。但WINDOWS并非铁石心肠,它还说:如果CPU需要访问你们时,我就把你们送入内存,如果你们更加热门的时候,就可能被CPU带入缓存,如果你们被重新冷落时,我就会无情的把你们再打入冷宫。 
而那个冷宫就是硬盘上的虚拟内存。如果你刚才还不知道什么是虚拟内存是什么东西时,那么现在呢? 
我还看到有些网友问:虚拟内存和缓存有什么区别呢 
它们的原理都是局部时间内被访问的内存地址具有局部性。 
现在我们来看看它们的区别。 
1.缓存是一种硬件,是CPU的一部分;而虚拟内存并不是一种硬件,而是存在于硬盘上的一个文件,是根据WINDOWS的要求生成的(二者中的信息都是随时变化的) 
2.缓存的目的是加快系统的速度,而虚拟内存技术是为了使更多的程序能够在有限的内存中运行。

 

 

来源:fuping111 的博客!

分享到:
评论

相关推荐

    关于缓存的一点心得

    关于缓存的一点心得 1、缓存有页面缓存与数据缓存,页面缓存就是把显示的页面生成一个文件,数据缓存就是把数据生成一个文件,都有一个更新缓存的间隔时间,判断文件的修改时间或者生成时间的时间邮戳加上间隔时间的...

    关于缓存的一些资料 关于缓存的一些资料

    关于缓存的一些资料关于缓存的一些资料关于缓存的一些资料关于缓存的一些资料关于缓存的一些资料

    JavaEye的Boss分享关于缓存的理解

    JavaEye的Boss分享关于缓存的理解,讲的还可以。

    IOS中关于 缓存的代码

    缓存的实现,我只是选择了实现文件,相信.h文件大家一眼也能看出如何写来了,小弟就不多废话了。

    2024年浏览器缓存HTTP缓存机制(面试常考).zip

    此外,还探讨了缓存的高级话题,如缓存头字段、缓存与性能的关系,以及如何在面试中回答关于缓存的问题。 适用人群: 本博客主要面向网络技术初学者,特别是那些对浏览器缓存和HTTP缓存机制感兴趣,希望能够在面试中...

    缓存依赖.ppt

    关于 缓存依赖

    浏览器缓存机制面试常考.zip

    此外,还探讨了缓存的高级话题,如缓存头字段、缓存与性能的关系,以及如何在面试中回答关于缓存的问题。 适用人群: 本博客主要面向网络技术初学者,特别是那些对浏览器缓存感兴趣,希望能够在面试中表现出色的人。...

    缓存处理方法

    缓存的处理方法,节省了软件开发的内存,以及软件开发的缓慢

    深入理解MyBatis中的一级缓存与二级缓存

    主要给大家深入的介绍了关于MyBatis中一级缓存与二级缓存的相关资料,文中详细介绍MyBatis中一级缓存与二级缓存的工作原理及使用,对大家具有一定的参考性学习价值,需要的朋友们下面来一起看看吧。

    关于APP清理缓存

    关于APP清理缓存

    asp.net 缓存面试及答案

    关于缓存的面试题目及答案,相信大家一定能用的到。也是提高自己的好东东。

    关于vue里页面的缓存详解

    只有匹配的组件会被缓存 exclude: 字符串或正则表达式。任何匹配的组件都不会被缓存。 结合router缓存部分页面: 比较实用的例子: 思路:通过beforeRouterLeave这个钩子来对路由里面的keepAlive进行赋值。从而动态...

    SpringAOP结合ehCache实现简单缓存实例

    NULL 博文链接:https://honda418.iteye.com/blog/354945

    JSP 页面缓存以及清除缓存

    有关于jsp页面缓存的介绍及缓存的清除,缓存的解决办法有两种,一种是服务端方法,另一种是客户端方法

    .net下缓存项操作

    asp.net下关于缓存项的操作,对全面掌握缓存项有很好的效果!欢迎大家共同交流!

    缓存技术浅谈

    网上找的关于缓存技术的,感觉写的很好,特与大家共享下

    MysqL缓存的解决方案

    资料包括我自己在网络上收集的一些关于处理数据库缓存的资料还有自己总结的文档知识 希望可以帮到大家

    关于vue路由缓存清除在main.js中的设置

    /* 页面数据缓存 */ var _CACHE_OBJS = {}; function _init_cache(comp, key, cache) { var obj = cache[key]; if (obj !== undefined) { comp[key] = obj; } var deep = typeof comp[key] === 'object'; comp...

    深究标准IO的缓存

    在最近看了APUE的标准IO部分之后感觉对标准IO的缓存太模糊,没有搞明白,APUE中关于缓存的部分一笔带过,没有深究缓存的实现原理,这样一本被吹上天的书为什么不讲透彻呢?

Global site tag (gtag.js) - Google Analytics