cache存储器

CSAPP 存储器山数据的测量以及绘制,Cache lab part A:Cache simulator 一、存储器山的数据测量以及绘制 1.存储器山的数据测量(包含我所测试的数据) 这一部分很简单,因为代码已经由CMU提供给大家了,大家只需要简单地修改代码,将结果输出到txt文件即可,然后再用MATLAB或者Python写一个脚本读取该txt文件,然后将结果绘制出来即可。 首先,将结果输出到文件,很简单,这个大家都会。不过这里还是有一个要注意的点,将修改的代码编译时,(由于我是在Linux系统... 阅读详情

cache基本原理         

1.cache的功能

    cache是介于CPU和主存之间的小容量存储器,存取速度比主存快。它能高速地向CPU提供指令和数据,加快程序的执行速度。它是为了解决CPU和主存之间速度不匹配而采用的一项重要技术

2. cache的基本原理

    CPU与cache之间的数据交换是以字为单位,而cache与主存之间的数据交换是以块为单位。一个块由若干定长字组成的。当CPU读取主存中一个字时,便发出此字的内存地址到cache和主存。此时cache控制逻辑依据地址判断此字当前是否在 cache中:若是,此字立即传送给CPU;若非,则用主存读周期把此字从主存读出送到CPU,与此同时,把含有这个字的整个数据块从主存读出送到cache中。由始终管理cache使用情况的硬件逻辑电路来实现LRU替换算法

3.cache的命中率

  增加cache的目的,就是在性能上使主存的平均读出时间尽可能接近cache的读出时间。因此,cache的

命中率应接近于1。由于程序访问的局部性 ,这是可能的。 在一个程序执行期间,设Nc 表示cache完成存

取的总次数,Nm 表示主存完成存取的总次数,h定义为命中率,则有

           h=Nc/(Nc+Nm)   ...(3.4)

  若tc 表示命中时的cache访问时间,tm 表示未命中时的主存访问时间,1-h表示未命中率,则cache/主

存系统的平均访问时间ta 为:

           ta =htc +(1-h)tm           (3.5)

设r表示主存慢于cache的倍率,e表示访问效率,则有:

                                  r=tm /tc                           (3.6)

          e=tc /ta=tc/(htc+(1-h)tm)=1/(r+(1-r)h)=1/(h+1-h)r)

为提高访问效率,命中率h越接近1越好,r值以5—10为宜,不宜太大。命中率h与程序的行为、cache的容

量、组织方式、块的大小有关。

【例5】 CPU执行一段程序时,cache完成存取的次数为1900次,主存完成存取的次数为100次,已知cache

存取周期为50ns,主存存取周期为250ns,求cache/主存系统的效率和平均访问时间。

【解】

h=Nc /(Nc +Nm )=1900/(1900+100)=0.95

r=tm /tc =250ns/50ns=5

e=1/(r+(1-r)h)=1/(5+(1-5)×0.95)=83.3%

ta =tc /e=50ns/0.833=60ns

 

主存与cache的地址映射       

  cache的容量很小,它保存的内容只是主存内容的一个子集,且cache与主存的数据交换是以块为单位。

  地址映射 即是应用某种方法把主存地址定位到cache中。

  址映射方式有全相联方式 、直接方式 和组相联方式 三种

1.全相联映射方式

  主存中一个块的地址与块的内容一起存于cache的行中,其中块地址存于cache行的标记部分中。

  这种方法可使主存的一个块直接拷贝到cache中的任意一行上,非常灵活。

  它的主要缺点是比较器电路难于设计和实现,因此只适合于小容量cache采用。

 

直接映射方式

  这也是一种多对一的映射关系,但一个主存块只能拷贝到cache的一个特定行位置上去。

  cache的行号i和主存的块号j有如下函数关系:i=j mod m    (m为cache中的总行数)

 

组相联映射方式

  这种方式是前两种方式的折衷方案。它将cache分成u组,每组v行,主存块存放到哪个组是固定的,至

于存到该组哪 一行是灵活的,即有如下函数关系:m=u×v     组号 q=j mod u

 

 

替换策略                     

  cache工作原理要求它尽量保存最新数据,必然要产生替换。

  对直接映射的cache来说,只要把此特定位置上的原主存块换出cache即可。

 

★最不经常使用(LFU)算法

    LFU算法将一段时间内被访问次数最少的那行数据换出。每行设置一个计数器。从0开始计数,每访

问一次, 被访行的计数器增1。当需要替换时,将计数值最小的行换出,同时将这些行的计数器都清零。

  这种算法将计数周期限定在对这些特定行两次替换之间的间隔时间内,不能严格反映近期访问情况。

★近期最少使用(LRU)算法

    LRU算法将近期内长久未被访问过的行换出。每行也设置一个计数器,cache每命中一次,命中行计

数器清零,其它各行计数器增1。当需要替换时,将计数值最大的行换出。

  这种算法保护了刚拷贝到cache中的新数据行,有较高的命中率。

★随机替换

  随机替换策略从特定的行位置中随机地选取一行换出。在硬件上容易实现,且速度也比前两种策略快。

  缺点是降低了命中率和cache工作效率。

 

cache的写操作策略  

  CPU对cache的写入更改了cache的内容。可选用写操作策略使cache内容和主存内容保持一致。

 

★写回法

  当CPU写cache命中时,只修改cache的内容,而不立即写入主存;只有当此行被换出时才写回主存。

  这种方法减少了访问主存的次数,但是存在不一致性的隐患。

  实现这种方法时,每个cache行必须配置一个修改位,以反映此行是否被CPU修改过。

★全写法

  当写cache命中时,cache与主存同时发生写修改,因而较好地维护了cache与主存的内容的一致性。

  当写cache未命中时,直接向主存进行写入。cache中每行无需设置一个修改位以及相应的判断逻辑。

  缺点是降低了cache的功效。

★写一次法

  基于写回法并结合全写法的写策略,写命中与写未命中的处理方法与写回法基本相同,只是第一次写命

中时要同时写入主存。这便于维护系统全部cache的一致性。

奔腾PC机的cache       

  奔腾PC机采用两级cache结构。安装在主板上的2级cache(L2)采用2路组相联映射方式,集成在CPU内的

1级cache(L1)也采用2路组相联映射方式,L1又是L2的子集,从而使L1未命中处理时间大大缩短。CPU中的

L1分设成各8KB的指令cache和数据cache,有利于CPU高速执行程序。

  数据cache采用2路组相联结构,采用LRU替换算法,一组两行共用一个LRU二进制位。数据cache的工作

方式受CPU控制寄存器CR0中CD和NW位组合状态控制,如下表3.8所示。

              表3.10 奔腾CPU片内数据cache工作方式

 CD  NW   新行填入   全写法   使无效
 0  0    允许   允许   允许
 1  0    禁止   允许   允许
 1  1    禁止   禁止   禁止

   其中CD=1,NW=1时复位后状态,而CD=0,NW=0时最佳使用状态

 

 

存储器3高速缓冲存储器(Cache)  高速缓冲存储器(Cache)高速缓存是位于CPU和主存之间的高层存储子系统。采用高速缓存的主要目的是提高存储器的平均访问速度,从而使存储器的速度也CPU的速度相匹配。1、Cache的基本工作原理和结构Cache通常由两部分组成,块表和快速存储器。Cache的工作原理是:处理机按主存地址访问存储器,存储器地址的高段通过主存-Cache地址映象机构借助查表判定该地址的存储单元是否在C 阅读详情

相关推荐

【计组原理学习小结】虚拟存储器、Cache访存过程中,TLB - Cache - Page的命中关系

TLB - Cache - Page命中关系小结 前置知识——CPU根据虚地址访存流程 ①访问虚地址读取虚页号 → 访问基址寄存器读取页表起始地址 → 拼接起始地址和虚页号得到页表地址 → 依据页表地址访问对应的页表项 → 根据装入位判断是否命中 ②命中 → 对应的实页号 + 页内地址 = 实地址 → 执行Cache的映射操作 ③未命中 → 利用 I/O 系统将页调入主存 → 执行第②步 ...

runmeat的博客 9018

主存储器与存储系统

主存储器与存储系统1、存储系统的组成1.1、存储器的分类按存储器在计算机系统中的作用分类:高速缓冲存储器:高速缓冲存储器(Cache)位于主存和CPU之间,用于存放正在执行的程序段和数据,以便CPU能高速地使用它们。Cache的存储速度与CPU的速度相匹配,但存储量较小,价格较高,一般制作在CPU芯片中主存储器:主存用来存放计算机运行期间所需要的程序和数据,CPU可直接随机地进行读写访问。主存有一

hbrqlpf的专栏 7306

DDR内存Prefetch机制详解:从DDR1到DDR4的技术演进与性能提升

本文深入解析DDR内存Prefetch机制从DDR1到DDR4的技术演进与性能提升。通过分析Prefetch技术的实现原理与Burst传输的协同机制,揭示DDR1的2n Prefetch、DDR2的4n Prefetch、DDR3的8n Prefetch以及DDR4的Bank Group架构创新如何显著提升内存带宽与系统性能。

weixin_30369041的博客 537

关于CPU cache

cpu cache

zhongzhenxing7961的博客 1548

『言善信』Fiddler工具 — 1、Fiddler介绍与安装

文章目录1、Fiddler简介2、Fiddler功能3、Fiddler工作原理4、Fiddler安装 1、Fiddler简介 Fiddler是强大的抓包工具之一,它能记录所有客户端和服务器之间的HTTP和HTTPS请求,是web调试的利器。 Fiddler是位于客户端和服务端之间的HTTP代理,它的原理是以web代理服务器的形式进行工作的,使用的代理地址是:127.0.0.1,端口默认为8888,我们也可以通过设置进行修改。 Fiddler可以抓取支持HTTP代理的任意程序的数据包,如果要抓取https会

繁华似锦Fighting 1468

【python数据挖掘课程】二十八.基于LDA和pyLDAvis的主题挖掘及可视化分析

这是《Python数据挖掘课程》系列文章,前面很多文章都讲解了数据挖掘、机器学习,这篇文章主要讲解LDA和pyLDAvis算法,同时讲解如何读取CSV文本内容进行主题挖掘及可视化展示。文章比较基础,希望对你有所帮助,提供些思路,也是自己教学的内容。推荐大家购买作者新书《Python网络数据爬取及分析从入门到精通(分析篇)》,如果文章中存在错误或不足之处,还请海涵。 目录: 一.显示结果及安装 二.LDA主题挖掘 三.pyLDAvis可视化分析 四.小结

杨秀璋的专栏 1万+

PC_高速缓冲存储器cache和局部性原理

cpu欲访问的信息在cache中的比率称为cache的命令率。为了提高访问效率,命中率H越高(越接近1)越好。一个程序执行期间,cache的总命中次数为。设cpu采用同时访问cache和主存的策略。设cpu采用同时访问cache和主存的策略。采用cache后性能提升为几倍。一次性地从主存调入Cache。cache命中率为H=95%访问cache的速度为5v。访问主存并替换Cache。假设访问主存的速度v。

xuchaoxin1375的博客 1812

QGIS之二十六pbf转osm转shp

QGIS之二十六pbf转osm转shp

yilvyangguang520的博客 7499

4.2 计算机体系结构——存储层次结构——cache工作原理

cache是小容量、高速缓冲存储器,由SRAM组成,速度几乎和CPU一样快。一般将cache和主存的存储空间都划分为若干大小相同的块

知识,既贵,又便宜。 2万+

YOLO26优化:注意力魔改 | 用于微小目标检测的上下文增强和特征细化网络ContextAggregation,助力小目标检测,暴力涨点

用于微小目标检测的上下文增强和特征细化网络ContextAggregation,助力小目标检测

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 490

【图像去噪】论文复现:超分思想助力荧光显微图像自监督去噪!N2SR的Pytorch源码复现,图文详细教程跑通源码,框架结构原理示意图与代码对应,注释详细,补充三个实用功能代码!

论文题目:Noise2SR: Learning to Denoise from Super-Resolved Single Noisy Fluorescence Image —— Noise2SR:从超分辨率单噪声荧光图像中学习去噪【图像去噪】论文精读:Noise2SR: Learning to Denoise from Super-Resolved Single Noisy Fluorescence Image(N2SR)N2SR框架结构和原理都比较简单,创新点是加入超分,有很多类似的自监督框架;

主要更新底层视觉(去噪、超分等)相关的科研内容,形式为【论文精读】+【论文复现】 632

cpu,cache,Ram,harddisk存储速度

光速V为3x10^8m/s, 1ns=1x10^-9s  1ns x V=30cm cpu大小为1cm, 所以cpu物理极限速度大约为30G , 现在工艺最好速度为4G 如果CPU速度为4G, 执行一条指令的时间为 0.25ns CACHE的速度和cpu有的一拼 RAM存取一条指令时间为100ns CPU是RAM速度的20-400倍呀,对于CPU来说,是严重的浪费  CACHE占

yazhouren的专栏 1996

《手把手教你修复过期K8s集群证书:记一次K8s集群起死回生实录》

今天本想打开半年前部署的K8s测试集群跑个Demo,结果`kubectl`直接报错`certificate has expired`!作为一名云原生老司机,我决定把这次'抢救'过程记录下来,手把手带大家解决这个运维常见问题。

✨ 欢迎来到【Seal ^_^ 的优快云博客】!✨ 3778

存储器、cache、cache line解析

存储器 理想的存储器:速度与CPU的速度一样,这样CPU执行命名就不会受到存储器速度的限制. 但现代存储器无法同时满足三个条件(速度极快、充分大、非常便宜)。 存储器类型: 寄存器 与CPU相同的材料制成,速度与CPU相同;典型容量32位CPU是32 * 32;64位是64 * 64 高速缓存cache: 多由硬件控制,主要作用是减少CPU访问内存的次数: cache分成多个组,每个组分成多个cache line,linesize是cache的基本单位,从主存向cache迁移数据都是按照linesiz

cswhl的博客 2502

黑猫带你学UFS协议第1篇:全网最全UFS协议中文详讲,这份学习框架图,你值得拥有!!!(持续更新中...)

本文由黑猫学长撰写,深入解析UFS协议,覆盖从基础概念到高级特性的全方位教程。适合存储芯片行业从业者和嵌入式开发者,旨在帮助读者快速掌握UFS协议,适用于高端智能手机、平板等智能设备。预计15万字,涵盖UFS 3.1协议,讲解UFS协议栈、物理层、链路层、传输层等内容。

黑猫奥利奥的博客 3696

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Cache存储器概述

Cache是连接主存与CPU的高效桥梁,虽然容量小,但速度快,借助程序运行中的局部性原理,在不显著增加硬件成本的前提下大幅提升系统整体性能。理解Cache的基本机制与存在问题,是掌握存储系统结构和优化的核心基础。

Wanganchuan的博客 1296

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

CACHE存储器

Cache存储器,电脑中为高速缓冲存储器,是位于CPU和主存储器DRAM(Dynamic Random Access Memory)之间,规模较小,但速度很高的存储器,通常由SRAM(Static Random Access Memory静态存储器)组成。它是位于CPU与内存间的一种容量较小但速度很高的存储器。CPU的速度远高于内存,当CPU直接从内存中存取数据时要等待一定时间周期,而Cache则可以保存CPU刚用过或循环使用的一部分数据,如果CPU需要再次使用该部分数据时可从Cache中直接调用,这样就避

qq_57774704的博客 2662

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Cache存储器

主存存取速度远低于CPU工作速度 解决方法:CPU和主存之间设置小容量的高速缓冲存储器(Cache),存放主存信息的副本 目的:减少访存次数,加快运行速度

olivia12344321的博客 632

存储器(下)——高速缓冲存储器(Cache),辅助存储器

避免CPU空等现象CPU和主存(DRAM)的速度差异用来保存程序,数据,文档,映像资料,不直接与 CPU 交换信息。如果想要调用,那就先调入到主存储器。

qq_74811378的博客 1061

第三章———并行存储器与cache存储器

一、并行存储器 由于CPU和主存储器之间在速度上是不匹配的,这种情况便成为限制高速计算机设计的主要问题。为了提高CPU和主存之间的数据传输率,除了主存采用更高速的技术来缩短读出时间外,还可以采用并行技术的存储器。 1、双端口存储器 ①双端口存储器的逻辑结构 双端口存储器由于同一个存储器具有两组相互独立的读写控制电路而得名。由于进行并行的独立操作,因而是一种高速工作的存储器,在科研和工程中非常有用。举例说明, 双端口存储器IDT7133的逻辑框图。如下图 ②无冲突读写控制:当两个端口的地址不相.

chy3232的博客 3097
上一篇: 高速存储器(双端口存储器 && 多模块交叉存储器 && 相联存储器)
下一篇: 虚拟存储器
Non_Recursive
博客等级 码龄18年 57粉丝 34原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值