请教CPU的cache中关于line,block,index等的理解

作者&投稿:博毕 (若有异议请与网页底部的电邮联系)
请教CPU的cache中关于line,block,index等的理解~

- cache子系统: 通常按照功能可以分成SRAM, tag RAM, cache controller三部分. 实际设计时, 三部分可以由多个芯片来实现, 也可以合并入单个芯片中.

- SRAM: 静态随机存储器, 与DRAM相对, 是cpu cache中用来承载数据的内存块. SRAM的大小决定了cache的大小.

- tag RAM: 一小片用来存储数据地址的SRAM, cache缓存了哪些主存中的数据, tag RAM中就会存储哪些地址.

- cache controller: 缓存控制器, 主要功能有: 实现snoop和snarf; 更新SRAM和tag RAM; 实现写策略; 确定内存访问请求是否能够被缓存. (并不是所有主存都有缓存需求, 哪些主存区域不需要缓存与设计有关. 例如, PC平台上主存中用于视频显示的内存区域是不需要缓存的); 确定内存访问请求是否命中cache

- 缓存页(cache page): 主存(也就是通常所说的内存, 存储器类型是DRAM)被分成多个大小相等的片段, 每一个片段称为一个cache page. cache page的大小依赖于cpu cache的大小以及cpu cache是如何组织的. 注: 这里的page与分页模式下的内存页没有直接的关系, 是不同的概念.

- 缓存行(cache line): 每一个cache page又被分成更小的片段, 每一个片段称为一个cache line. 通常翻译成缓存线, 而我一般翻译成缓存行. cache line的大小(有时候也称作宽度)取决于cpu以及cache的设计.

- cache的组织结构通常分成三种: 直接映射(direct map)型, 全关联(fully-associative)型, 组关联(set associative)型. 现在流行的英特尔x86_64一般采用的是组关联型cache.

  - cache子系统: 通常按照功能可以分成SRAM, tag RAM, cache controller三部分。 实际设计时, 三部分可以由多个芯片来实现, 也可以合并入单个芯片中。
  - SRAM: 静态随机存储器, 与DRAM相对, 是cpu cache中用来承载数据的内存块。 SRAM的大小决定了cache的大小。
  - tag RAM: 一小片用来存储数据地址的SRAM, cache缓存了哪些主存中的数据, tag RAM中就会存储哪些地址。

  1. - cache子系统: 通常按照功能可以分成SRAM, tag RAM, cache controller三部分. 实际设计时, 三部分可以由多个芯片来实现, 也可以合并入单个芯片中.

    - SRAM: 静态随机存储器, 与DRAM相对, 是cpu cache中用来承载数据的内存块. SRAM的大小决定了cache的大小.

    - tag RAM: 一小片用来存储数据地址的SRAM, cache缓存了哪些主存中的数据, tag RAM中就会存储哪些地址.

    - cache controller: 缓存控制器, 主要功能有: 实现snoop和snarf; 更新SRAM和tag RAM; 实现写策略; 确定内存访问请求是否能够被缓存. (并不是所有主存都有缓存需求, 哪些主存区域不需要缓存与设计有关. 例如, PC平台上主存中用于视频显示的内存区域是不需要缓存的); 确定内存访问请求是否命中cache

    - 缓存页(cache page): 主存(也就是通常所说的内存, 存储器类型是DRAM)被分成多个大小相等的片段, 每一个片段称为一个cache page. cache page的大小依赖于cpu cache的大小以及cpu cache是如何组织的. 注: 这里的page与分页模式下的内存页没有直接的关系, 是不同的概念.

    - 缓存行(cache line): 每一个cache page又被分成更小的片段, 每一个片段称为一个cache line. 通常翻译成缓存线, 而我一般翻译成缓存行. cache line的大小(有时候也称作宽度)取决于cpu以及cache的设计.

    - cache的组织结构通常分成三种: 直接映射(direct map)型, 全关联(fully-associative)型, 组关联(set associative)型. 现在流行的英特尔x86_64一般采用的是组关联型cache.

    - 全关联(fully-associative): 全关联cache仅仅使用line而不采用page, 主存和cache都被划分成等大的line, 主存中的某一line可以存入任意一cache line中. 全关联cache的优点是性能高, 缺点是实现起来电路复杂, 复杂性源于需要确定被请求的数据是否已经在cache中, 被请求的地址需要与存储在tag RAM中的每一个地址进行比较, 这需要大量的比较器, 从而增加了大容量cache的实现复杂度以及价格. 全关联结构通常仅仅用在小容量cache中, 典型容量不超过4K

    -直接映射(direct map): 主存被划分成多个cache page, 每一个cache page的大小等于cache的大小. 仅仅把的一些特定的内存line存入同一个cache line中, 例如把所有page中的line 0存储cache line 0中. page中的cache 1存储在cache line 1中, ...; 直接映射cache是三种cache结构中最简单的一种. 在直接映射cache中被请求的地址只需要与tag RAM中的一个地址相比较. 优点: 由于直接映射cache的简单性, 它的价格也比其它类型的cache便宜很多; 缺点: 灵活性很低, 导致性能也低很多, 尤其是在cache page之间跳转的时候. (考虑page 0和page 1的line 0都映射到cache line 0, 而程序又试图交替访问page 0和page 1中的line 0)

    - 组关联(set associative): cache被划分成多个等大小(典型的值是2, 4, 8, 16, ...)的部分, 每一个部分称作是一个 cache way; 而主存则会被划分成多个cache page, 每个cache page的大小等于一个cache way的大小. 然后每一个cache way被当成是一个小的直接映射cache. 由于比较器的数目等于cache way的数目, 因此组关联cache比全关联cache要简单, 价格也比全关联cache便宜. 一个两路组关联cache只需要两个比较器.

    有了以上概念就应该比较容易理解一些文章中对cpu cache的描述了。 如果仍然觉得理解有困难, 我们可以再进一步粗略的理解: 把cache看成是一个M行N列的二维表格, 每一个单元格就是一个cache line; 每一行就是一个set, 由横向的N个cache line构成; 每一列就是一个way, 由纵向的M行cache line构成; 当M为1时, 就是全关联cache; 当N为1时, 就是直接映射cache.

    没有完全回答你的问题, 不过应该能够辅助你理解你所看的文档了。



  - cache子系统: 通常按照功能可以分成SRAM, tag RAM, cache controller三部分。 实际设计时, 三部分可以由多个芯片来实现, 也可以合并入单个芯片中。
  - SRAM: 静态随机存储器, 与DRAM相对, 是cpu cache中用来承载数据的内存块。 SRAM的大小决定了cache的大小。
  - tag RAM: 一小片用来存储数据地址的SRAM, cache缓存了哪些主存中的数据, tag RAM中就会存储哪些地址。

  - cache子系统: 通常按照功能可以分成SRAM, tag RAM, cache controller三部分。 实际设计时, 三部分可以由多个芯片来实现, 也可以合并入单个芯片中。
  - SRAM: 静态随机存储器, 与DRAM相对, 是cpu cache中用来承载数据的内存块。 SRAM的大小决定了cache的大小。
  - tag RAM: 一小片用来存储数据地址的SRAM, cache缓存了哪些主存中的数据, tag RAM中就会存储哪些地址。
  - cache controller: 缓存控制器, 主要功能有: 实现snoop和snarf; 更新SRAM和tag RAM; 实现写策略; 确定内存访问请求是否能够被缓存。 (并不是所有主存都有缓存需求, 哪些主存区域不需要缓存与设计有关。 例如, PC平台上主存中用于视频显示的内存区域是不需要缓存的); 确定内存访问请求是否命中cache
  - 缓存页(cache page): 主存(也就是通常所说的内存, 存储器类型是DRAM)被分成多个大小相等的片段, 每一个片段称为一个cache page. cache page的大小依赖于cpu cache的大小以及cpu cache是如何组织的。 注: 这里的page与分页模式下的内存页没有直接的关系, 是不同的概念。
  - 缓存行(cache line): 每一个cache page又被分成更小的片段, 每一个片段称为一个cache line. 通常翻译成缓存线, 而我一般翻译成缓存行。 cache line的大小(有时候也称作宽度)取决于cpu以及cache的设计。
  - cache的组织结构通常分成三种: 直接映射(direct map)型, 全关联(fully-associative)型, 组关联(set associative)型。 现在流行的英特尔x86_64一般采用的是组关联型cache.
  - 全关联(fully-associative): 全关联cache仅仅使用line而不采用page, 主存和cache都被划分成等大的line, 主存中的某一line可以存入任意一cache line中。 全关联cache的优点是性能高, 缺点是实现起来电路复杂, 复杂性源于需要确定被请求的数据是否已经在cache中, 被请求的地址需要与存储在tag RAM中的每一个地址进行比较, 这需要大量的比较器, 从而增加了大容量cache的实现复杂度以及价格。 全关联结构通常仅仅用在小容量cache中, 典型容量不超过4K
  -直接映射(direct map): 主存被划分成多个cache page, 每一个cache page的大小等于cache的大小。 仅仅把的一些特定的内存line存入同一个cache line中, 例如把所有page中的line 0存储cache line 0中。 page中的cache 1存储在cache line 1中, …; 直接映射cache是三种cache结构中最简单的一种。 在直接映射cache中被请求的地址只需要与tag RAM中的一个地址相比较。 优点: 由于直接映射cache的简单性, 它的价格也比其它类型的cache便宜很多; 缺点: 灵活性很低, 导致性能也低很多, 尤其是在cache page之间跳转的时候。 (考虑page 0和page 1的line 0都映射到cache line 0, 而程序又试图交替访问page 0和page 1中的line 0)
  - 组关联(set associative): cache被划分成多个等大小(典型的值是2, 4, 8, 16, …)的部分, 每一个部分称作是一个 cache way; 而主存则会被划分成多个cache page, 每个cache page的大小等于一个cache way的大小。 然后每一个cache way被当成是一个小的直接映射cache. 由于比较器的数目等于cache way的数目, 因此组关联cache比全关联cache要简单, 价格也比全关联cache便宜。 一个两路组关联cache只需要两个比较器。
  有了以上概念就应该比较容易理解一些文章中对cpu cache的描述了。 如果仍然觉得理解有困难, 我们可以再进一步粗略的理解: 把cache看成是一个M行N列的二维表格, 每一个单元格就是一个cache line; 每一行就是一个set, 由横向的N个cache line构成; 每一列就是一个way, 由纵向的M行cache line构成; 当M为1时, 就是全关联cache; 当N为1时, 就是直接映射cache.


电脑桌面突然出现CPUcach是什么意思
Cache就是缓存文件,可以删除 1、单击“开始”,依次指向“所有程序”、“附件”、“系统工具”,然后单击“磁盘清理”。2、在“选择驱动器”对话框中的“驱动器”列表中,单击“C:”,然后单击“确定”。3、等待磁盘清理工具完成对该驱动器的检查。4、在“要删除的文件”列表中,单击以选中“Office ...

​Linux CPU 性能优化指南有哪些内容?
4. 精细化分析与工具运用 CPU使用情况由usr(用户空间)、sys(内核空间)、idl(空闲)、wai(等待I\/O)组成,而hiq(硬中断)和siq(软中断)则反映内存和磁盘I\/O的等待时间。内存使用情况包括used(使用)、buff(缓存)、cach(文件缓存)和free(空闲)。磁盘读写、网络收发数据,以及系统负载的1m...

以下关于CPU的英文怎么翻译?
6.CACH:高速缓冲存储器,以千字节(整数)7. CHMIN:最小通道单位(整数)8. CHMAX:最大通道单位(整数)

电脑高手进,关于cpu缓存的问题。
但是,CPU的处理速度依然远远大于内存,CPU依然需要等待大量的时间从内存读取数据,CPU性能被浪费,所以CPU引入了一级缓存,他的容量很小,只有几十K左右,但他的读写速度却已经与CPU处理速度非常接近了。但因为这样的一级缓存成本非常非常高,所以是不可能做的很大的,但这么小的几十K跟内存成百上千M...

cach为后缀的文件是什么用的?
缓存文件,因为Album软件关联所有图片格式的文件,每次启动它,它都要后台搜索你手机里面所有图像格式的文件进行预读,结果就会产生这个cache文件,有了它,就象产生记忆效应一样,下次再打开你打开过图片速度就快了许多。

谁能解释一下cach为什么分为i-cache和d-cache吗
分开就可以做得更小一些,容量小一些微cache寻址延迟低,访问速度自然快(这个是对于cache来说的)。主要是这个了,其实cache中只有L1的I cache和D cache是分离的,因为L1最接近CPU,所以访问速度要求比较高

采用地址Cache和数据Cache分离的主要目是 ( )。
【答案】:D D解析:当采用流水线机制时,cpu内容并行执行的多条指令有可能同时需要读取指令和数据,而cach同时只能提供一种服务,因此采用分立cach,可降低冲突。

CUP能不能直接访问处理器?还是内存处理器?
CPU是不能直接访问任何设备的.都必须是通过北桥芯片组.进行数据的交接.接口形式的都要通过南桥芯片组进行.例如IED SATA等等 北桥是离CPU最近的一组芯片,它连接着BIMM也就是内存.内存中存储大量的运行数据和CPU进行交接.FSB即前端总线.FSB带宽越大跟CPU进行交接的速度就越快....

CPU 内存 显卡对计算机的运算速度影响比重
CPU中的cach越大,cpu的速度会越快,还要看其前端总线的频率。内存也不是越大速度越快的,内存有工作频率,内存工作频率和前端总线频率越快计算机速度会有较大提升。自然内存大小也不能太小了。显卡在做图像处理时对计算机产生很大影响,多会影响计算机画面的流畅度和清晰度。显卡主要看GPU的性能。硬盘等...

伪相联的基本思想是什么?其优点是什么?
伪相联的基本思想是映像思想的拓展,其优点是具有良好的低频特性。伪相联的详细释义:伪相联基本思想及工作原理在逻辑上把直接映象Cach的空间上下平分为两个区。对于任何一次访问,伪相联Cace先按直接映象Cache的方式去处理。若命中,则其访问过程直接映象Cach的情况一样。若不命中,则再到另一区相应的位置...

带岭区15299314773: CPU中 L1 L2 L3缓存在CPU起到的作用是什么 -
当涂姣中诺: 高速缓冲存储器Cache是位于CPU与内存之间的临时存储器,它的容量比内存小但交换速度快.在Cache中的数据是内存中的一小部分,但这一小部分是短时间内CPU即将访问的,当CPU调用大量数据时,就可避开内存直接从Cache中调用,从...

带岭区15299314773: CPU的L1 CacheL,2 CacheL,3 Cache各有什么用? -
当涂姣中诺: l1最快,内存最慢,l2l3速度在它们之间由于高速的缓存很多都是静态存储器,价格很高,所以不能做太大,会严重提高cpu的售价很久之前,l2/l3缓存有些是在主板上的

带岭区15299314773: CPU中有一级高速缓存L1和二级高速缓存L2,它们有哪些作用?它们对CPU的性能有什么影响? -
当涂姣中诺: 缓存(Cache) 缓存就是系统中用于临时处理的存储器.CPU的运行速度是内存的好几倍甚至十多倍.这样的速度差异会导致实际运行速度很慢,浪费资源.一种解决办法是把内存速度提高,另一种就是使用少量的快速内存,就是缓存.由于...

带岭区15299314773: cache 是什么意思 它包括的L1,L2,L3分别是什么东西? -
当涂姣中诺: CPU缓存 缓存大小也是CPU的重要指标之一,而且缓存的结构和大小对CPU速度的影响非常大,CPU内缓存的运行频率极高,一般是和处理器同频运作,工作效率远远大于系统内存和硬盘.实际工作时,CPU往往需要重复读取同样的数据块,...

带岭区15299314773: CPU一级缓存,二级缓存,三级缓存是什么意思 -
当涂姣中诺: CPU缓存: 是位于CPU与内存之间的临时存储器,它的容量比内存小的多但是交换速度却比内存要快得多.高速缓存的出现主要是为了解决CPU运算速度与内存读写速度不匹配的矛盾,因为CPU运算速度要比内存读写速度快很多,这样会使...

带岭区15299314773: CPU的缓存 -
当涂姣中诺: cpu缓存现在都分两个级别,一及缓存称L1 cache,二级缓存称为L2 cache. 当然对于不同cpu,两及缓存的作用是不同的.但总体来说,缓存是储存cpu急需处理的数据的地方,当cpu要处理东西的时候,缓存中就开始储存这些数据,由于缓存速度...

带岭区15299314773: L1/L2高速缓存在CPU中有什么作用啊,谢谢 -
当涂姣中诺: 缓存就是指可以进行高速数据交换的存储器,它先于内存与CPU交换数据,因此速度极快,所以又被称为高速缓存.与处理器相关的缓存一般分为两种——L1缓存,也称内部缓存;和L2缓存,也称外部缓存.例如Pentium4“Willamette”内核产...

带岭区15299314773: BIOS里面的CPU L2 Cache ECC Checking,关了有大碍吗 -
当涂姣中诺: 那个是cpu的二级缓存检查的,建议不用关

带岭区15299314773: 关于cpu缓存工作原理问题,一级缓存,二级缓存,三级缓存... -
当涂姣中诺: 二级缓存容量比内存小的多但是交换速度却比内存要快得多.缓存主要是为了解决CPU运算速度与内存读写速度不匹配的矛盾.因为CPU运算速度要比内存读写速...

带岭区15299314773: 什么是CPU里的L2?
当涂姣中诺: L2高速缓存,指CPU第二层的高速缓存 高速缓冲存储器Cache是位于CPU与内存之间的临时存储器,L2 cache是CPU的第二存储器,它的容量比内存小但交换速度快.在Cache中的数据是内存中的一小部分,但这一小部分是短时间内CPU即将访问的,当CPU调用大量数据时,就可避开内存直接从Cache中调用,从而加快读取速度.由此可见,在CPU中加入Cache是一种高效的解决方案,这样整个内存储器(Cache+内存)就变成了既有Cache的高速度,又有内存的大容量的存储系统了.Cache对CPU的性能影响很大,主要是因为CPU的数据交换顺序和CPU与Cache间的带宽引起的.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网