快取( 五 )


快取

文章插图
快取设计其实,快取是CPU的一部分,它存在于CPU中 CPU存取数据的速率非常的快,一秒钟能够存取、处理十亿条指令和数据(术语:CPU主频1G),而记忆体就慢很多,快的记忆体能够达到几十兆就不错了,可见两者的速率差异是多幺的大 快取是为了解决CPU速率和记忆体速率的速率差异问题 记忆体中被CPU访问最频繁的数据和指令被複製入CPU中的快取,这样CPU就可以不经常到象“蜗牛”一样慢的记忆体中去取数据了,CPU只要到快取中去取就行了,而快取的速率要比记忆体快很多 这里要特别指出的是: 1.因为快取只是记忆体中少部分数据的複製品,所以CPU到快取中寻找数据时,也会出现找不到的情况(因为这些数据没有从记忆体複製到快取中去),这时CPU还是会到记忆体中去找数据,这样系统的速率就慢下来了,不过CPU会把这些数据複製到快取中去,以便下一次不要再到记忆体中去取 。2.因为随着时间的变化,被访问得最频繁的数据不是一成不变的,也就是说,刚才还不频繁的数据,此时已经需要被频繁的访问,刚才还是最频繁的数据,现在又不频繁了,所以说快取中的数据要经常按照一定的算法来更换,这样才能保证快取中的数据是被访问最频繁的 3.关于一级快取和二级快取为了分清这两个概念,我们先了解一下RAM ram和ROM相对的,RAM是掉电以后,其中信息才消失的那一种,ROM是在掉电以后信息也不会消失的那一种 。RAM又分两种: 一种是静态RAM、SRAM;一种是动态RAM、DRAM 。磁碟快取磁碟快取分为读快取和写快取 。读快取是指,作业系统为已读取的档案数据,在记忆体较空闲的情况下留在记忆体空间中(这个记忆体空间被称之为“记忆体池”),当下次软体或用户再次读取同一档案时就不必重新从磁碟上读取,从而提高速率 。写快取实际上就是将要写入磁碟的数据先保存于系统为写快取分配的记忆体空间中,当保存到记忆体池中的数据达到一个程度时,便将数据保存到硬碟中 。这样可以减少实际的磁碟操作,有效的保护磁碟免于重複的读写操作而导致的损坏,也能减少写入所需的时间 。
快取

文章插图
磁碟快取 根据写入方式的不同,有写通式和回写式两种 。写通式在读硬碟数据时,系统先检查请求指令,看看所要的数据是否在快取中,在的话就由快取送出回响的数据,这个过程称为命中 。这样系统就不必访问硬碟中的数据,由于SDRAM的速率比磁介质快很多,因此也就加快了数据传输的速率 。回写式就是在写入硬碟数据时也在快取中找,找到就由快取就数据写入盘中,多数硬碟都是採用的回写式快取,这样就大大提高了性能 。快取英文名为 Cache 。CPU 快取也是记忆体的一种,其数据交换速率快且运算频率高 。磁碟快取则是作业系统为磁碟输入输出而在普通物理记忆体中分配的一块记忆体区域 。硬碟的缓冲区,硬碟的缓冲区是硬碟与外部汇流排交换数据的场所 。硬碟的读数据的过程是将磁信号转化为电信号后,通过缓冲区一次次地填充与清空,再填充,再清空,一步步按照PCI汇流排的周期送出,可见,缓冲区的作用是相当重要的 。它的作用也是提高性能,但是它与快取的不同之处在于:一、它是容量固定的硬体,而不像快取是可以由作业系统在记忆体中动态分配的 。二、它对性能的影响大大超过磁碟快取对性能的影响,因为没有缓冲区,就会要求每传一个字(通常是4位元组)就需要读一次磁碟或写一次磁碟 。快取分类静态页面的快取可能有2种形式:其实主要区别就是CMS是否自己负责关联内容的快取更新管理 。1、静态快取:是在新内容发布的同时就立刻生成相应内容的静态页面,比如:2003年3月22日,管理员通过后台内容管理界面录入一篇文章后,并同步更新相关索引页上的连结 。2、动态快取:是在新内容发布以后,并不预先生成相应的静态页面,直到对相应内容发出请求时,如果前台快取伺服器找不到相应快取,就向后台内容管理伺服器发出请求,后台系统会生成相应内容的静态页面,用户第一次访问页面时可能会慢一点,但是以后就是直接访问快取了 。静态快取的缺点:複杂的触发更新机制:这两种机制在内容管理系统比较简单的时候都是非常适用的 。但对于一个关係比较複杂的网站来说,页面之间的逻辑引用关係就成为一个非常非常複杂的问题 。最典型的例子就是一条新闻要同时出现在新闻首页和相关的3个新闻专题中,在静态快取模式中,每发一篇新文章,除了这篇新闻内容本身的页面外,还需要系统通过触发器生成多个新的相关静态页面,这些相关逻辑的触发也往往就会成为内容管理系统中最複杂的部分之一 。旧内容的批量更新: 通过静态快取发布的内容,对于以前生成的静态页面的内容很难修改,这样用户访问旧页面时,新的模板根本无法生效 。在动态快取模式中,每个动态页面只需要关心,而相关的其他页面能自动更新,从而大大减少了设计相关页面更新触发器的需要 。软道语录快取是把最常用的东西放在最容易取得的地方 。快取映射根据E的数值,高速快取可以被分为不用的类,包括直接映射快取,组相联快取和全相联快取 。