主存和cache每一块相等_笔记:cpu中的cache(一)

前言:绝大部分内容来源于北京大学的慕课《计算机组成原理》,地址:

https://www.coursera.org/learn/jisuanji-zucheng

5dfaeb59ebdddb587ada9c566601939c.png
存储体系(《深入理解计算机系统》)

cache是为了解决cpu和内存速度不对等的问题。

一,cache的结构

当前较为普遍的cache配置是L1,L2,L3。

bd60f3de34ae82564303b87a119a3ccb.png
Core i7的多级高速缓存

L1 Cache:指令和数据分离,各32KB 8路组相联,命中时间4个周期 。

L2 Cache:统一的指令和数据,共256KB 8路组相联,命中时间11个周期 。

L3 Cache:统一的指令和数据,多核共享,共8MB 16路组相联,命中时间30~40个周期。

155d092a611eea6f22e2d3b4ef215a58.png
cache的结构

局部性:

计算机程序从时间和空间都表现出“局部性” 。

时间局部性(Temporal Locality) :最近被访问的存储器单元(指令或数据)很快还会被访问 。

空间局部性(Spatial Locality):正在被访问的存储器单元附近的单元很快会被访问。

缓存行(Cache Line):根据局部性结论可以知道,CPU为了高效,在获取数据不是一个字节一个字节,而是一块一块(block),也即Cache Line(常见的有64Byte)。

2d10fbcf01ce4a9c345a253c7f001cfb.png
cache与内存的映射模型

二,cache访问流程

94f42ab710ea132603650812597eed8e.png
cache访问流程

Cache命中时的写策略:

① 写穿透(Write Through):数据同时写入Cache和主存 。

② 写返回(Write Back):数据只写入Cache,仅当该数据块被替换时 才将数据写回主存。

Cache失效”时的写策略 :

① 写不分配(Write Non-Allocate):直接将数据写入主存 。

② 写分配(Write Allocate):将该数据所在的块读入Cache后,再将数 据写入Cache。

参考:

https://www.coursera.org/learn/jisuanji-zucheng

https://coolshell.cn/articles/20793.html

https://www.stardog.com/blog/writing-cache-friendly-code/

https://dzone.com/articles/optimizing-memory-access-with-cpu-cache

https://coolshell.cn/articles/10249.html

https://max.book118.com/html/2017/1007/136335602.shtm

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/294723.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

设计模式学习笔记(十七)——Command命令模式

设计模式学习笔记(十七)——Command命令模式 Command命令模式介绍: Command命令模式是一种对象行为型模式,它主要解决的问题是:在软件构建过程中,“行为请求者”与“行为实现者”通常呈现一种“紧耦合”的问…

MAUI中Maui.Graphics.Controls绘制控件

简介Microsoft.Maui.Graphics是一个完全采用C#的iOS,Android,Windows,macOS,Tizen和Linux的跨平台图形库。对于MAUI项目当中绘制的方案是使用不同平台的控件来而非自绘。当然MAUI当中也使用了Microsoft.Maui.Graphics,MAUI Previe…

BGP聚合as-set advertise-map

advertise-map xxx 用来挂汇总路由的,当route-map xxx 中的路由存在时,才会出现汇总路由。否则没有汇总路由只继承advertise-map xxx 中路由的属性当汇总路由携带了多个明细属性,可用advertise-map xxx 来移除某个明细路由的路由属性实验拓扑…

Android之如何解决popupWindow(pw.setFocusable(true))按返回键和menu键退出

先爆照: 问题: 使用过popupWindow的时候,我们为了让其它地方不可点击,我们一般会pw.setFocusable(true),但是当我们这样设置之后,问题出现了,按返回键或者menu菜单键没有反应,这是原因呢? PopupWindow 跟我们的 Activity 不一样,因为我们在构造 PW 的时候往往不是继…

上班骚扰男同事被抓到......

1 不同年代的辞职理由(素材来源网络,侵删)▼2 月壤不能种菜太让人失望了▼3 原来,我也努力过▼4 忘了上班还有监控(作者来源最右,ID:8943090 )▼5 这是台风被黑的最惨的一次&…

mysql8 修改权限_MySQL8修改重置root密码,远程连接权限设置

MySQL8 修改重置root密码这里要单独强调是MySQL8,因为在MySQL 8.04前,执行:SET PASSWORDPASSWORD([新密码]);可行,但是MySQL8.0.4开始,这样默认是不行的。因为之前,MySQL的密码认证插件是“mysql_native_pa…

用wordpress制作网站的总结

在没有自己的网站的时候很像拥有一个属于自己的网站,可以说是自己的一个愿望吧。但是当我真正的运行起来了之后觉得没有多么的兴奋,自己也折腾了几天wordpress,从买域名空间,到安装WP,遇到了一些问题,自己到处搜索答案…

Android之使用PopupWindow使用和总结

不废话,先爆照 说明: 那个灰色背景是不能滑动里ListView里面的内容的 第一步:我们需要背景view 下面是我的background.xml文件 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/t…

Cell发文!施一公科研团队取得重大突破

全世界只有3.14 % 的人关注了爆炸吧知识本文来源&#xff1a;科学网&#xff08;有删减&#xff09;北京时间2020年12月29日凌晨0时&#xff0c;《细胞》&#xff08;Cell&#xff09;发表中科院院士、西湖大学校长施一公课题组的一项新研究。研究首次报道了γ-分泌酶&#xff…

MAUI 跨平台播客应用程序(Conf 2021)

介绍在.NET Conf 2021大会上&#xff0c;微软展示了基于.NET6 跨平台应用程序, 具有ASP.NET Core、Blazor、.NET MAUI、微服务等功能。浏览由 ASP.NET Core 和 Blazor 提供支持的 .NET Podcasts 应用的实时运行版本&#xff1a;https://dotnetpodcasts.azurewebsites.net/项目体…

Android之如何实现通讯录的搜索并且让匹配到的数据变颜色

不废话,先爆照 第一步:实现搜索 已经实现了通讯录功能,但是需要搜索,可以支持中文名字搜索,写入电话号码搜索,还有名字拼音,以及名字第一个字的首字母来搜索,这里介绍名字搜索,然后数据是我们公司TCL(020)所有员工的信息,目前还没有写到后…

dotnet 将自动代码格式化机器人带入团队 GitLab 平台

给团队带入一个 代码格式化机器人 能提升团队的幸福度&#xff0c;让团队的成员安心写代码&#xff0c;不用关注代码格式化问题&#xff0c;将格式代码这个粗活交给机器人去做。同时也能减少在代码审查里撕格式化问题的时间&#xff0c;让更多的时间投入到更有价值的工作上本文…

Android 之自定义view实现水波纹效果

在实际的开发中&#xff0c;很多时候还会遇到相对比较复杂的需求&#xff0c;比如产品妹纸或UI妹纸在哪看了个让人兴奋的效果&#xff0c;兴致高昂的来找你&#xff0c;看了之后目的很明确&#xff0c;当然就是希望你能给她&#xff1b; 在这样的关键时候&#xff0c;身子板就一…

FFLIb Demo CQRS

使用FFLIB 构建了一个demo&#xff0c;该demo模拟了一个常见的游戏后台架构&#xff0c;该demo主要有一下亮点&#xff1a; FFLIB 实现进程间通信非常方便基于CQRS 思想构建LogicServer使用Event Publish/Subscribe&#xff0c; 实现各个模块的解耦合基于Event 实现实体对象的单…

【自定义标签开发】01-标签简介和开发第一个标签

自定义标签简介自定义标签主要用于移除Jsp页面中的java代码。要使用自定义标签移除jsp页面中的java代码&#xff0c;只需要完成以下两个步骤:1.编写一个实现Tag接口的java类&#xff0c;把页面java代码移到这个java类中(标签处理器类)。2.编写标签库描述(tld)文件&#xff0c;在…

三联《少年》创刊,各领域佼佼者畅言新知,帮少年建立思维素养体系!

▲点击查看很多中国小孩的成长是断层的。10岁前被视作可爱稚子&#xff0c;被大人护着走&#xff1b;18岁猛然被定义为成年人&#xff0c;要选择大学、专业&#xff0c;开始面对感情。中间的人生呢&#xff1f;“你是个学生&#xff0c;学习是本职&#xff0c;现在谈什么人生&a…

趁爸妈不在家约男朋友回家吃饭,然而......

1 有没有男主很脆弱的电影&#xff1f;&#xff08;素材来源网络&#xff0c;侵删&#xff09;▼2 成长期-成熟期-完全体-究极体▼3 千万别在家乱放星巴克的袋子&#xff08;素材来源网络&#xff0c;侵删&#xff09;▼4 发生了很奇怪的事情▼5 只有你想不到&#xff0c;没…

java泛型不是计算运行时的数据类型

2019独角兽企业重金招聘Python工程师标准>>> package com.ada.data.entity;import java.io.Serializable;import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.MappedSuper…

C#内建接口:IComparable

这节开一个新的系列&#xff1a;C#内建接口。主要给大家讲一下C#内部给我们定义的一些常用的接口&#xff0c;以及它们是怎么使用的。基本上一节讲一个吧&#xff0c;本节先从IComparable开始。01了解IComparable一般的&#xff0c;值类型的数据比较大小&#xff0c;就是看它俩…

script的defer和async

我们常用的script标签&#xff0c;有两个和性能、js文件下载执行相关的属性&#xff1a;defer和async defer的含义【摘自https://developer.mozilla.org/En/HTML/Element/Script】 This Boolean attribute is set to indicate to a browser that the script is meant to be exe…