精华内容
下载资源
问答
  • Cache存储器

    2018-09-28 11:55:24
    Cache存储器:电脑中为高速缓冲存储器,是位于CPU和主存储器DRAM(DynamicRandomAccessMemory)之间,规模较小,但速度很高的存储器,通常由SRAM(StaticRandomAccessMemory静态存储器)组成。它是位于CPU与内存间的一种...

    Cache存储器:电脑中为高速缓冲存储器,是位于CPU主存储器DRAM(DynamicRandomAccessMemory)之间,规模较小,但速度很高的存储器,通常由SRAM(StaticRandomAccessMemory静态存储器)组成。它是位于CPU与内存间的一种容量较小但速度很高的存储器。CPU的速度远高于内存,当CPU直接从内存中存取数据时要等待一定时间周期,而Cache则可以保存CPU刚用过或循环使用的一部分数据,如果CPU需要再次使用该部分数据时可从Cache中直接调用,这样就避免了重复存取数据,减少了CPU的等待时间,因而提高了系统的效率。Cache又分为L1Cache(一级缓存)和L2Cache(二级缓存),L1Cache主要是集成在CPU内部,而L2Cache集成在主板上或是CPU上。

                                                                 ---来自百度百科 Cache存储器 

    展开全文
  • cache存储器

    千次阅读 2012-06-11 20:27:35
    1、cache是一种高速缓冲存储器,是为了解决CPU和主存之间速度不匹配而采用的一项重要技术 2、cache是介于CPU与主存M2 之间的小容量存储器 3、从功能上看,它是主存的缓冲存储器,由高速的SRAM组成 4、为追求...

    1、cache是一种高速缓冲存储器,是为了解决CPU和主存之间速度不匹配而采用的一项重要技术

    2、cache是介于CPU与主存M2 之间的小容量存储器


    3、从功能上看,它是主存的缓冲存储器,由高速的SRAM组成

    4、为追求高速,包括管理在内的全部功能由硬件实现因而对程序员是透明的

    5、目前,已将cache放入CPU中,其工作速度接近于CPU,从而能组成两级以上的cache系统

    6、cache除含SRAM外,还有控制逻辑; 如果cache在CPU芯片外,它的控制逻辑一般与主存的控制逻辑合成在一起,称为主存/cache控制器; 若在CPU芯片内,则由CPU提供它的控制逻辑

    7、CPU与cache之间的数据交换是以字为单位的; 而cache与主存之间是以块为单位的

    8、当CPU读取主存中一个字时,便发出此字的内存地址到cache和主存; 此时cache的控制逻辑依据地址判断此字当前是否在cache中,若是,此字立即传送给CPU; 若不是, 则用主存读周期把此字从主存中读出送给CPU,与此同时,把含有这个字的整个数据块从主存中读出送到cache中

    9、cache原理图


    10、分配给cache的地址存放在一个相联存储器CAM中,它是按内容寻址的存储器; 当CPU执行访存指令时,就把所要访问的字的地址送到CAM;


    11、cache命中率




    12、访问效率


    13、把主存地址定位到cache中叫做地址映射,在计算机中是用硬件实现的了当CPU访问存储器时,它给出的一个字的内存地址很快会变换成cache的地址

    14、全相联映射方式

    • cache的数据块的大小称为行, 主存的数据块的大小称为块
    • 在全相联映射中,将主存中一个块的地址(块号)与块的内容(字)一起存于cache的行中
    • 这种带全部块地址一起保存的方法可使主存的一个块直接拷贝到cache中的任意一行上,非常灵活
    • 全部标记用一个相联存储器来实现,全部数据用一个普通RAM来实现
    • 缺点是比较器电路难于设计和实现,只适合小容量的cache使用

    15、直接映射方式
    • 一个主存块只能拷贝到cache的一个特定的行位置上去
    • cache的行号i 和主存的块号j 有如下关系: i = j mod m; m 是cache中行的数目
    • 在直接映射中,cache将s 位的块地址分成两部分:r 位作为cache的行地址; s - r 位作为标记与块数据一起保存在该行上; 当CPU以一个给定的内存地址访问cache时,首先用r 位行号找到cache中的此一行, 然后用地址中的 s- r 位标记部分与此行的标记在比较器中做比较,若相符则命中,否则,未命中;
    16、组相联映射方式
    • 将cache分成u 组, 每组 v行
    • 主存块存放在哪个组是固定的,至于是哪一行是灵活的
    • m = u x v; 组号 q = j mod u
    • 块内存地址中s 位块号划分为两部分, 低位的d 位(2^d = u)用于表示cache的组号, 高位的 s- d位作为标记与块数据一起存放在此组的某行中

    17、替换策略
    • cache工作原理要求它尽量保存最新的数据
    • 最不经常用(LSU)算法; 应将一段时间内被访问次数最少的那行换出
    • 近期最少使用(LRU)算法; 将近期内长期未被访问过得行换出
    • 随机替换
    18、cache的写操作策略
    • 由于cache的内容只是主存部分内容的拷贝,它应当与主存内容保持一致
    • 写回法;当CPU写cache命中时,只修改cache的内容,而 不立即写入主存,只有在当此行被换出时才写回主存; 明显的,这样存在着内存与cache不一致性的隐患
    • 全写法;当CPU写cache命中时,cache与主存同时发生修改; 当未命中时,直接向主存进行写入;
    • 写一次法;在第一次写命中时要同时写回主存; 这是因为第一次写cache命中时,CPU要在总线上启动一个存储写周期,其他cache监听到此主存块地址及写信号后,即可拷贝该块或者是几时作废,以便维护系统全部cache的一致性

    展开全文
  • 有关cache存储器

    2010-03-22 08:48:00
    Cache存储器是多层存储概念的更深拓展。它的特点是容量小、价格高、速度快。Cache位于CPU和内存之间,是一种极快的存储缓冲区。  Cache包含一个地址的列表以及它们的内容。随着处理器不断引用新的内存地址,Cache...

    Cache存储器是多层存储概念的更深拓展。它的特点是容量小、价格高、速度快。Cache位于CPU和内存之间,是一种极快的存储缓冲区。

     

    Cache包含一个地址的列表以及它们的内容。随着处理器不断引用新的内存地址,Cache的地址列表也一直处于变化中。所有对内存的读取和写入操作都要经过Cache.当处理器需要从一个特定地址提取数据时,这个请求首先递交给Cache。如果数据已经存在于Cache,它就可以立即被提取。否则,Cache将向内存传递这个请求,进而进行缓慢的内存访问操作。

     

    Cache一般有两种类型:全写法(同步更新)和写回法(延迟更新,效率更高)。

     

    Cache和虚拟内存一样,对应用程序员都是透明的。但Cache的思想无处不在,是构建(开发)高效率程序所必须考虑的。Cache对程序性能的提高主要得益于两个特性:时间局部性和空间局部性。时间局部性是指刚刚访问的数据在未来一段时间内很有可能被再次访问,空间局部性是指刚刚访问数据“附近”的数据很有可能很快被访问。因此,对于程序的编写者而言,即使Cache对我们是透明的,我们也应该有意识的编写cache-friendly(也就是时间局部性和空间局部性都优良的程序)。

     

    当然,高级的编译器可能会对我们写的局部性不是那么良好的程序做一定程度的优化,有些库函数(例如memcpy)也会对特定的操作针对cache进行特定的优化,但编译器以及库函数都不是万能的,更多的时候会显得非常的dump,除此之外,在大型软件中,cache的思想也是无处不在。因此,我们写程序时需要有意识的让cache时刻缓存在我们的头脑之中。

    展开全文
  • 3.6 Cache存储器 3.6.1 Cache基本原理 使用Cache的原因 CPU速度越来越快,主存储器与CPU的速度差距越来越大,影响CPU的工作效率。 Cache的作用 在CPU和主存之间加一块高速的SRAM(Cache); 主存中将要被访问的数据...

    3.6 Cache存储器

    3.6.1 Cache基本原理

    使用Cache的原因
    CPU速度越来越快,主存储器与CPU的速度差距越来越大,影响CPU的工作效率。
    Cache的作用
    在CPU和主存之间加一块高速的SRAM(Cache);
    主存中将要被访问的数据提前送到Cache中;
    CPU访存时,先访问Cache,若没有再进行数据调度。
    使用Cache的依据 程序访问的局部性原理

    结构模块化
    CPU访问Cache或主存时,以字为单位;
    Cache和主存交换信息时,以块为单位,一次读入一块或多块内容;
    Cache的每行都设置有标记,CPU访问程序或数据时,先访问标记 。
    相邻层之间的数据传送单位
    CPU  高速缓存:字 (假设1个字包含4个字节)
    高速缓存  主存储器:块 (每块32个字节(8个字))
    主存  磁盘:页面 (每页4K字节,包含128块)

    存储体
    基本单位为字,若干个字构成一个数据块;
    地址映射变换机构
    用于将主存地址变换为Cache地址,以利用CPU发送的主存地址访问Cache;
    替换机构
    若要更新Cache中数据时使用的机制;
    相联存储器
    Cache的块表,快速指示所要访问的信息是否在Cache中;
    读写控制

    在这里插入图片描述
    命中率是指CPU要访问的信息在Cache中的比率;

    失效率=1- 命中率
    影响命中率的主要因素
    Cache 容量:过小时,局部信息装不完,命中率低。 过大时,对提高效率不明显,且成本高。
    Cache中块的大小: 一般用一个主存周期所能调出的单元数(字或字节)作为一个块大小。

    主存系统的平均访问时间

    在这里插入图片描述
    CPU执行一段程序时,Cache完成存取的次数为1900次,主存完成存取的次数为100次,已知Cache存取周期为50ns,主存存取周期为250ns,求Cache/主存系统的效率和平均访问时间。

    命中率
    h=Nc/(Nc+Nm)=1900/(1900+100)=0.95
    主存与Cache的速度倍率
    r=tm/tc=250ns/50ns=5
    访问效率
    e= 1 /(r+(1-r)h ) = =83.3%

    平均访问时间
    ta=tc/e=50ns/0.833=60ns

    3.6.2 主存与Cache的地址映射

    信息从主存→Cache中,如何定位?
    Cache的容量小于主存,需要采用某种算法确定主存和Cache中块的对应关系;
    地址映射
    主存中数据块调入Cache中时,主存数据块与Cache行之间的映射关系;
    地址变换
    CPU访存时,将主存地址按映射函数关系变换成Cache地址的过程;
    地址映射的方式
    全相联映射、直接映射、组相联映射;

    例:某机主存容量为1MB,划分为2048块,每块512B;cache容量为8KB,划分为16块;每块512B。
    主存地址共20位,块内地址9位,主存块号11位。
    在这里插入图片描述
    由于cache的块数远小于主存的块数,因此一个cache不能唯一地、永久地只对应一个存储块,在cache中,每一块外加有一个标记,指明它是主存的哪一块的副本(拷贝)。

    全相联映射(Associative Mapping)

    映射关系
    主存中的任意字块可调进Cache的任一行中;
    地址映射
    主存中数据块调入Cache时,可以调入Cache的任一空行;
    调入的同时,将主存标记和Cache的行号同时写入块表;
    地址变换
    CPU访存时,发出主存地址;
    将主存标记作为关键字,送入块表中检索每一个单元;
    命中时,读出对应单元中的Cache行号;
    使用Cache行号和主存地址中的块内地址访问Cache;
    在这里插入图片描述

    在这里插入图片描述

    全相联映射的主存地址格式

    在这里插入图片描述
    在这里插入图片描述

    全相联映射Cache的特点
    优点
    灵活性好(最理想)
    Cache中只要有空行,就可以调入所需要的主存数据块;
    缺点
    成本高
    块表单元字长为m+c位,需要较大容量的Cache块表;
    速度太慢
    访问Cache时,需将所有标记比较一遍,才能最后判出所需主存中的字块是否在Cache中;
    一般较少使用。

    【例1】设主存容量1MB,Cache容量16KB,块的大小为512B,采用全相联映射方式。

    写出Cache的地址格式。
    写出主存的地址格式。
    块表的容量多大?
    画出地址映射及变换示意图。
    主存地址为CDE8FH的单元,在Cache中的什么位置?

    写出Cache的地址格式
    Cache地址格式
    Cache的容量16KB
    块(行)的大小为512B
    行地址为14-9=5位
    写出主存的地址格式
    主存的地址格式为
    主存容量1MB
    块表的容量多大?
    块表的大小应为2c×(m + c) 位,即25×16位;
    画出地址映射及变换示意图。
    主存地址为CDE8FH的单元,在Cache中的什么位置?
    主存地址为CDE8FH的单元可映射到Cache中的任何一个字块位置;
    CDE8FH= 1100 1101 1110 1000 1111 B
    其块/行内地址为:010001111。

    直接映射(Direct Mapping)

    映射关系
    主存中的每一块数据只能调入Cache的特定行中;
    直接映射函数为: i = j mod 2c
    地址映射
    主存中数据块调入Cache时,只能调入Cache的特定行;
    同时,将主存标记写入块表中与Cache行地址相同的单元;
    地址变换
    CPU访存时,发出主存地址;
    从主存地址中截取出Cache行号,访问块表的对应单元;
    若该单元中数据与主存标记相同,则命中,否则未命中;
    命中时,使用Cache行号和块内地址(即主存地址中除主存标记位之外的其余位)访问Cache;

    在这里插入图片描述
    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    Cache标记由11位减少为7位,利用主存 地址按字段直接判断,就可知命中与否。
    优点:硬件实现简单,成本低。
    缺点:主存多个块对应唯一的cache块,即使cache别的地址空着也不能占用。cache空间无法充分利用,降低了命中率。
    在这里插入图片描述

    特点
    一个主存块只能调入Cache的一个特定行中 。
    优点
    该映射函数实现简单,查找速度快;
    主存地址的中间c位即为Cache的行地址;
    在块表对应单元中,使用高t位地址(主存标记)进行比较,决定是否命中;
    缺点
    灵活性差;
    主存的2t个字块只能对应唯一的Cache字块,即使Cache中别的字块空着也不能占用。

    组相联映射(Set-associative Mapping)

    组相联映射是直接映射和全相联映射的一种折中方案。
    映射关系
    将Cache中的行等分为若干组,主存中的每一块只能映射到Cache的特定组中,但是可调入到该组的任一行中;
    组间为直接映射,组内为全相联映射。
    设Cache共u组,每组r行,则映射函数如下
    组号 q= j mod u
    当Cache的一组包含r行时,通常称为r路组相联映射。

    在这里插入图片描述

    当Cache为2路组相联映射,共4组时, 映射函数为q=j mod 4;

    特点:
    灵活性:比直接映射灵活(主存可映射到组内任一块);
    快速性:比全相联比较次数少,只需组内全部比较;
    由于比较次数少,电路也较易于实现。

    地址映射
    主存中数据块调入Cache时,只能调入Cache的特定组;
    在该组内,可选择任一行调入数据;
    调入的同时,将主存标记和Cache的组内行号写入块表;
    地址变换
    CPU访存时,发出主存地址;
    从主存地址中截取出Cache组号,找到块表的对应组;
    在组内,使用主存标记进行检索;
    命中时,使用Cache组号、Cache组内行号和块内地址访问Cache;

    在这里插入图片描述
    cache 读
    CPU发出有效的主存地址;
    查找相联存储器,判断所要访问的信息是否在Cache中;
    若命中,经地址变换机构,变换为相应的Cache地址;
    CPU直接读取Cache获取数据;
    若未命中,则CPU访问主存,并判断Cache是否已满;
    若Cache未满,将该数据所在块从主存中调入Cache;
    若Cache已满,使用某种替换机制,使用当前数据块替换掉Cache中的某些块。
    cache 写
    CPU发出有效的主存地址;
    查找相联存储器,判断所要访问的信息是否在Cache中;
    若命中,经地址变换机构,变换为相应的Cache地址;
    使用某种写策略将数据写入Cache或主存。
    若未命中,则使CPU直接写主存数据;
    同时根据写策略,决定是否将该块内容调入Cache

    Cache的替换策略 ——最不经常使用(LFU)算法

    替换原则
    将一段时间内被访问次数最少的那行数据替换出去;
    使用方法
    每行设置一个计数器,从0开始计数;
    每访问一次, 被访行的计数器增1;
    当需要替换时,将计数值最小的行换出,同时将这些行的计数器都清零。
    特点
    这种算法将计数周期限定在对这些特定行两次替换之间的间隔时间内,不能严格反映近期访问情况。

    Cache的替换策略 ——近期最少使用(LRU)算法

    替换原则
    将近期内长久未被访问过的行替换出去。
    使用方法
    每行也设置一个计数器;
    每访问一次,被访行的计数器清零,其它各行计数值加1;
    当需要替换时,将计数值最大的行换出。
    特点
    这种算法保护了刚调入到Cache中的新数据行,使Cache的使用率较高。

    Cache的替换策略 ——随机替换算法

    替换原则
    从特定的行位置中随机地选取一行换出。
    特点
    在硬件上容易实现,且速度也比前两种策略快。
    但降低了命中率和Cache工作效率。

    Cache的写策略 ——写回式

    写入策略
    只修改Cache的内容,而不立即写入主存;
    只有当此行被换出时才写回主存。
    优点
    减少了访问主存的次数;
    缺点
    存在Cache与主存不一致性的隐患。
    实现该方法时,Cache行必须配置一个修改位,以反映此行是否被CPU修改过。

    Cache的写策略 ——全写式

    这种策略又称写透式
    写入策略
    Cache与主存同时发生写修改,因而较好地维护了Cache与主存的内容的一致性。
    Cache中无需设置修改位以及相应的判断逻辑。  
    缺点是降低了Cache的功效。
    每次同时写入主存和Cache,使写入速度变低。

    Cache的写策略 ——写一次法

    写入策略
    基于写回法,并结合全写法的写策略;
    写命中与写未命中的处理方法与写回法基本相同,只是第一次写命中时要同时写入主存。
    该写入策略适用于包含多个Cache的系统中;
    第一次Cache写命中时,将数据写入主存和一个Cache中;
    使系统中的其它Cache可以及时更新或废止该块内容,从而维护系统中该块数据的一致性。

    展开全文
  • 为啥要用Cache存储器??? 因为CPU和主存之间存在读取速度的差异,所以要用Cache来充当主存和CPU之间的缓冲,注意Cache只是主存的子集Cache里的存储数据在主存中都可以找到,所以计算机的存储空间不包括cache 原理 ...
  • Cache存储器系统地址映象及替换算法的简单动态演示程序VC源码
  • 计算机组成原理--cache存储器的直接映像与变换 Cache 存储器的直接映像与变换1. 直接映像的映像规则在 Cache 存储器的直接映像中,Cache 的块内地址就是主存地址格式中的块内地址, Cache 的块号等于主存块号除以 ...
  • 计算机组成原理cache存储器及直接映像及变换Cache存储器的直接映像与变换? ? 1.直接映像的映像规则? ? 在Cache存储器的直接映像中,Cache的块内地址就是主存地址格式中的块内地址,Cache的块号等于主存块号除以Cache...
  • 文档介绍:Cache存储器的直接映像与变换1.直接映像的映像规则在Cache存储器的直接映像中,Cache的块内地址就是主存地址格式中的块内地址,Cache的块号等于主存块号除以Cache的总块数取余。设主存块号为i,Cache块号为j,...
  • cache存储器、寄存器

    2021-03-19 19:58:37
    1.SRAM和DRAM的刷新方式 静态RAM(SRAM) 由MOS电路构成的双稳触发器保存二进制信息 (1)访问速度快,只要不掉电可以永久保存...动态存储器DRAM刷新方式:以存储矩阵的行为单位刷新。在固定时间内对所有.
  • 文档介绍:Cache存储器的直接映像与变换1.直接映像的映像规则在Cache存储器的直接映像中,Cache的块内地址就是主存地址格式中的块内地址,Cache的块号等于主存块号除以Cache的总块数取余。设主存块号为i,Cache块号为j,...
  • Cache存储器 Cache(高速缓冲存储器) 高速缓冲存储器是位于主存与CPU之间的一级存储器,有静态存储芯片(SRAM)组成,容量比较小,速度比主存高得多,接近于CPU的速度,单位成本比内存高。Cache存储了频繁访问内存的...
  • 本节书摘来自华章出版社《计算机存储与外设》一书中的第1章,第2节,作者Computer Organization and Architecture: Themes and Variations[英]艾伦·克莱门茨(Alan Clements) 著,沈 立 ...1.2 Cache存储器...
  • cache的功能:为了解决CPU和主存之间速度不匹配的一种技术,其原理基于程序运行中具有的空间局部性和时间局部性 cpu和cache之间的数据交换是以字为单位的,而cache和主存之间的数据交换是以块为单位的 cache的命中...
  • 替换产生原因:cache工作原理要求它尽量保存最新数据,当一个新的主存块需要拷贝到cache中,而允许存放此块的行位置都被其他主存块占满时,就要产生替换 替换策略: 最不经常使用算法(LFU),近期最少使用算法...
  • 1.1内存(存储器)的存取速度大大低于cpu的速度,导致cpu等待造成资源浪费 1.2cpu的访存权限不如i/o设备,避免cpu与i/o设备争夺访存 1.3指令和数据在内存的地址分布不是随机的,访问具有相对的局部性(程序访问的局部...
  • Cache 功能:提高CPU数据的输入输出的效率,突破 冯诺依曼瓶颈,特点是价格高、容量小、速度快 相联存储器(CAM:Central Address Memory) 概念: 是一种基于内容进行访问的存储设备,而不是地址 写入:直接...
  • Cache存储器和虚拟存储器 任何足够先进的技术都与魔法无异。 ——Arthur C. Clark 名字有什么关系?我们把玫瑰叫成别的名字,闻起来还是一样的芬芳。 ——莎士比亚,《罗密欧与朱丽叶》 存储层次(Memory ...
  • Cache存储器,电脑中为高速缓冲存储器,是位于CPU和主存储器DRAM之间。计算机(computer)俗称电脑,是现代一种用于高速计算的电子计算机器,可以进行数值计算,又可以进行逻辑计算,还具有存储记忆功能。是能够按照...
  • Cache存储器,电脑中为高速缓冲存储器,是位于CPU和主存储器DRAM之间。计算机(computer)俗称电脑,是现代一种用于高速计算的电子计算机器,可以进行数值计算,又可以进行逻辑计算,还具有存储记忆功能。是能够按照...
  • 高速缓存(cache)存储器

    万次阅读 多人点赞 2017-03-30 16:06:02
    高速缓存(cache)存储器:这里先说明一下(高速缓存)cache和(高速缓冲)buffer的区别: buffer主要作用是在一定程度上减少对IO设备访问的次数,可以起到流量整形的作用,也提升了系统的性能,毕竟IO操作和内存和cpu的...
  • Cache存储器,电脑中为高速缓冲存储器,是位于CPU和主存储器DRAM之间。计算机(computer)俗称电脑,是现代一种用于高速计算的电子计算机器,可以进行数值计算,又可以进行逻辑计算,还具有存储记忆功能。是能够按照...
  • Cache 高速缓冲存储器

    2018-04-12 19:49:00
    Cache(即高速缓冲存储器(Cache Memory),是我们最常听到的一个词了。在老鸟们眼中,这个词或许已没有再谈的必要,因为他们对Cache从设计的必要性到工作原理、工作过程等等都已了如指掌了;而对菜鸟朋友们而言,这些...
  • Cache存储器的作用 用于解决CPU和主存之间速度不匹配的问题。 CPU要取数据,先从Cache中查找,,如果每次都能查找到,就相当于CPU是与Cache打交道,变相提高了CPU访问主存的速度。如果没有与主存建立连接查找,...
  • 存储器——Cache

    2020-04-26 01:38:45
    2、Cache是COU和内存之间设置的一个小容量存储器,保存的内容是主存内容的子集 3、Cache用SRAM实现,存取速度比主存快 4、可采用两级或多级Cache 5、Cache功能全由硬件调度,对用户透明,运行过程无需软件设置和参与...
  • cache高速缓冲存储器

    千次阅读 2012-08-08 10:37:30
    高速缓冲存储器Cache)其原始意义是指存取速度比一般随机存取记忆体(RAM)来得快的一种RAM,一般而言它不像系统主记忆体那样使用DRAM技术,而使用昂贵但较快速的SRAM技术,也有快取记忆体的名称。 基本概念 在...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 44,228
精华内容 17,691
关键字:

cache存储器